首页 > 技术文章 > http 协议

universe-cosmo 2019-09-30 17:05 原文

  1. http 协议是客户端与服务器端的数据传输的格式规范,简称为“超文本传输协议”。
  2. http 请求由三部分组成,分别是:请求行(包含请求方式、请求链接、协议版本),请求头(一般为key值对[referer:代表网页的来源,user-agent:客户端浏览器类型等]),请求体(post请求方式中的请求参数)。
  3. 常用的http方法有GET(用于请求访问已经被URI识别的资源,可以通过URL传参给服务器)、POST(用于传输信息给服务器,主要功能与Get相似),
    其它方法有:
    PUT(更新资源、传输文件)HEAD(HEAD和GET本质是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息,一般用于验证URI是否有效。)
    DELETE(删除文件,与PUT方法相反,删除对应URI位置的文件。)
    OPTIONS(用于获取当前URL所支持的方法。若请求成功,则它会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。)
  4. GET方法与POST方法的区别:
    1. GET重点在于获取服务器资源,POST在于向服务器发送数据;
    2. GET传输数据是通过URL以key值对的形式传递的,POST是利用http的POST机制将字段与对应值封存在实体中发送给服务器的,不可见;
    3. GET传输数据量小,因为受URL长度限制,但效率高;POST可传输数据量大,所以传输文件只能使用这种方法;
    4. GET因为在URL可见,所以不安全,容易泄露信息;POST相对更加安全;
    5. GET只支持ASCII字符,向服务器传输数据可能会乱码,而POST支持标准字符集
  5. 常见的HTTP响应状态码:
    返回的状态:
    1xx: 指示信息:表示请求已接收,继续处理;
    2xx: 成功:代表请求已成功被服务器接收、理解、并接受;
    3xx: 重定向:要完成请求必须要进行更进一步的操作;
    4xx: 客户端错误:请求有语法错误或请求无法实现;
    5xx: 服务器错误:服务器未能实现合法的请求。
    200: 请求被正常处理;
    204: 请求被受理但是没有资源返回;
    206: 客户端只是请求资源的一部分,服务器只对请求的部分资源执行了GET操作,相应报文中通过Content-Range来指定资源的范围;
    301: 永久性重定向;
    302: 临时重定向;
    303: 与302功能相似,只是它希望客户端在请求URI的时候可以通过GET方法重定向到另一个URI上;
    304: 发送附带条件的请求时,条件不满足时返回,与重定向无关;
    307: 临时重定向,与302相似,只是强制使用POST方法;
    400: 请求报文有语法错误,服务器无法识别;
    401: 请求需要认证;
    403: 请求对应资源禁止访问;
    404: 请求资源无法找到;
    500: 服务器内部错误;
    403: 服务器正忙。
  6. HTTP的缺点与HTTPS:
    a、通信使用明文不加密,内容可能被窃听;
    b、不验证通信方身份,可能遭到伪装;
    c、无法验证报文完整性,可能被篡改;
    HTTPS就是HTTP加上加密处理(一般是SSL安全通信线路)+ 认证 + 完整性保护。

推荐阅读