《图解HTTP》-第六章-HTTP首部

380 阅读4分钟

每天做个总结吧,坚持就是胜利!

    /**
        @date 2021-06-29
        @description 《图解HTTP》-第六章-HTTP首部
    */

壹(序)

  1. HTTP协议的请求和响应报文中必定包含HTTP首部,首部内容为客户端和服务器端分别处理请求和响应提供需要的信息

HTTP报文结构.jpg 2. HTTP首部字段是构成HTTP报文的重要要素之一,在HTTP通信过程中,起到传递额外重要信息的作用,使用首部字段是为了给客户端和服务器提供报文主体大小,使用的语言,认证信息等内容

贰(通用首部字段)

通用首部字段:请求报文和响应报文都会使用到的首部字段,主要有以下指令:

  1. Cache-Control:操作缓存的工作机制 缓存请求指令: 缓存请求指令.jpg 缓存响应指令:

缓存响应指令.jpg 2. Connection:两个作用:一是控制不再转发给代理的首部字段,二是管理持久连接

不再转发给代理.jpg

管理持久连接.jpg 3. Date:表明创建HTTP报文的日期和时间 4. Pragma:属于通用首部字段,但只用在客户端发送请求时,定义的形式唯一Pragma: no-cache,作用是要求中间服务器不返回缓存的资源 5. Transfer-Encoding:规定传输报文主体时使用的编码方式,HTTP/1.1的传输编码方式仅对分块传输编码有效 6. Via:追踪客户端与服务器端的请求和响应报文的传输路径,报文经过代理或网关时,会在首部字段Via中添加该服务器的信息,再进行转发 7. Warning:告知用户与缓存相关的问题的警告

叁(请求首部字段)

请求首部字段:客户端往服务器端发送请求时请求报文所使用的字段

  1. Accept:告知服务器用户代理能够处理的媒体类型及优先级
  2. Accept-Charset:告知服务器用户代理支持的字符集及优先级
  3. Accept-Encoding:告知服务器用户代理支持的内容编码及优先级
  4. Accept-Language:告知服务器用户代理能够处理的自然语言及优先级
  5. Authorization:告知服务器用户代理的认证信息
  6. Expect:告知服务器期望出现的某种特定行为
  7. Host:告知服务器请求的资源所处的互联网主机名和端口号,HTTP/1.1中唯一一个必填的请求首部字段
  8. IF-xxx系列:条件请求,服务器接受到附带条件的请求后,必须条件为真时才会执行请求,相关首部字段有If-MatchIf-Modifyed-SinceIf-None-MatchIf-RangeIf-Unmodified-Since
  9. Range:对于范围请求,使用Range首部字段告知服务器资源的指定范围
  10. User-Agent:将创建请求的浏览器及用户代理名称等信息传递给服务器

肆(响应首部字段)

响应首部字段:服务器端向客户端返回响应时响应报文所使用的字段

  1. Accept-Range:告知客户端服务器端是否能够处理范围请求,不能返回none,可以返回bytes
  2. Age:告知客户端源服务器在多久前创建了响应
  3. ETag:告知客户端资源的实体标识,分为强ETag值(资源无论发生多么细微的改变都会改变ETag的值)及弱ETag值(只有资源发生根本性的改变,才会改变ETag的值)
  4. Location:与3xx状态码配合使用,指定重定向后的地址
  5. Server:告知客户端当前服务器上安装的HTTP服务器应用程序的信息

伍(实体首部字段)

实体首部字段:包含在请求报文与响应报文中的实体部分所使用的字段

  1. Allow:通知客户端能够支持访问资源的所有方法(如返回GET,HEAD),当服务器接收到不支持的方法时,会返回405状态码,并返回Allow字段
  2. Content-Encoding:告知客户端服务器对实体主体部分选用的内容编码方式
  3. Content-Language:告知客户端实体主体使用的自然语言
  4. Content-Length:告知客户端实体主体大小
  5. Content-Location:给出与报文主体部分相对应的URI
  6. Content-MD5:一串由MD5算法生成的值,目的在于检查报文主体在传输过程中是否保持完整,以及确认传输到达
  7. Content-Range:告知客户端响应返回的实体中哪个部分符合范围请求
  8. Content-Type:说明了实体主体内对象的媒体类型
  9. Expires:告知客户端资源失效日期
  10. Last-Modified:说明资源最终修改时间

陆(Cookie相关)

Cookie用来处理用户识别及状态管理,与Cookie相关的首部字段如下:

Cookie首部字段.jpg

  1. Set-Cookie:响应首部字段,当服务器准备开始管理客户端状态时,会告知各种信息

Set-Cookie.jpg 2. Cookie:请求首部字段,当客户端想要获得HTTP状态管理支持时,就会在请求中包含从服务器接收到的Cookie