每天做个总结吧,坚持就是胜利!
/**
@date 2021-06-29
@description 《图解HTTP》-第六章-HTTP首部
*/
壹(序)
- HTTP协议的请求和响应报文中必定包含
HTTP首部,首部内容为客户端和服务器端分别处理请求和响应提供需要的信息
2. HTTP首部字段是构成HTTP报文的重要要素之一,在HTTP通信过程中,起到
传递额外重要信息的作用,使用首部字段是为了给客户端和服务器提供报文主体大小,使用的语言,认证信息等内容
贰(通用首部字段)
通用首部字段:请求报文和响应报文都会使用到的首部字段,主要有以下指令:
- Cache-Control:操作
缓存的工作机制 缓存请求指令:缓存响应指令:
2. Connection:两个作用:一是
控制不再转发给代理的首部字段,二是管理持久连接
3. Date:表明创建HTTP报文的
日期和时间
4. Pragma:属于通用首部字段,但只用在客户端发送请求时,定义的形式唯一Pragma: no-cache,作用是要求中间服务器不返回缓存的资源
5. Transfer-Encoding:规定传输报文主体时使用的编码方式,HTTP/1.1的传输编码方式仅对分块传输编码有效
6. Via:追踪客户端与服务器端的请求和响应报文的传输路径,报文经过代理或网关时,会在首部字段Via中添加该服务器的信息,再进行转发
7. Warning:告知用户与缓存相关的问题的警告
叁(请求首部字段)
请求首部字段:客户端往服务器端发送请求时请求报文所使用的字段
- Accept:告知服务器用户代理能够处理的
媒体类型及优先级 - Accept-Charset:告知服务器用户代理支持的
字符集及优先级 - Accept-Encoding:告知服务器用户代理支持的
内容编码及优先级 - Accept-Language:告知服务器用户代理能够处理的
自然语言及优先级 - Authorization:告知服务器用户代理的
认证信息 - Expect:告知服务器期望出现的某种
特定行为 - Host:告知服务器请求的资源所处的互联网
主机名和端口号,HTTP/1.1中唯一一个必填的请求首部字段 - IF-xxx系列:条件请求,服务器接受到附带条件的请求后,必须条件为真时才会执行请求,相关首部字段有
If-Match,If-Modifyed-Since,If-None-Match,If-Range,If-Unmodified-Since - Range:对于范围请求,使用Range首部字段告知服务器资源的
指定范围 - User-Agent:将创建请求的浏览器及用户代理名称等信息传递给服务器
肆(响应首部字段)
响应首部字段:服务器端向客户端返回响应时响应报文所使用的字段
- Accept-Range:告知客户端服务器端是否能够处理范围请求,不能返回
none,可以返回bytes - Age:告知客户端源服务器在
多久前创建了响应 - ETag:告知客户端资源的
实体标识,分为强ETag值(资源无论发生多么细微的改变都会改变ETag的值)及弱ETag值(只有资源发生根本性的改变,才会改变ETag的值) - Location:与
3xx状态码配合使用,指定重定向后的地址 - Server:告知客户端当前服务器上安装的HTTP服务器应用程序的信息
伍(实体首部字段)
实体首部字段:包含在请求报文与响应报文中的实体部分所使用的字段
- Allow:通知客户端能够
支持访问资源的所有方法(如返回GET,HEAD),当服务器接收到不支持的方法时,会返回405状态码,并返回Allow字段 - Content-Encoding:告知客户端服务器对实体主体部分选用的
内容编码方式 - Content-Language:告知客户端实体主体使用的
自然语言 - Content-Length:告知客户端实体主体
大小 - Content-Location:给出与报文主体部分相对应的
URI - Content-MD5:一串由
MD5算法生成的值,目的在于检查报文主体在传输过程中是否保持完整,以及确认传输到达 - Content-Range:告知客户端响应返回的实体中哪个部分符合
范围请求 - Content-Type:说明了实体主体内对象的
媒体类型 - Expires:告知客户端资源
失效的日期 - Last-Modified:说明资源
最终修改的时间
陆(Cookie相关)
Cookie用来处理用户识别及状态管理,与Cookie相关的首部字段如下:
- Set-Cookie:响应首部字段,当服务器准备开始管理客户端状态时,会告知各种信息
2. Cookie:请求首部字段,当客户端想要获得HTTP状态管理支持时,就会在请求中包含从服务器接收到的Cookie