图解HTTP之HTTP首部

HTTP协议的请求和响应报文中必定包含HTTP首部,只是我们平时在使用Web的过程中感受不到它。

1.HTTP报文首部

HTTP协议的请求和响应报文中必定包含HTTP首部。首部内容为客户端和服务器分别处理请求和响应提供所需要的信息。报文首部由几个字段组成,请求报文中由方法、URI、HTTP版本、HTTP首部字段等部分构成。响应报文由HTTP版本、状态码(数字和原因短语)、HTTP首部字段3部分构成。HTTP首部字段包含的信息最为丰富。首部字段同时存在于请求和响应报文内,并涵盖HTTP报文相关的内容信息。它能起到传递额外信息的作用,包括提供报文主体大小、所使用的语言、认证信息等内容。

2.4种HTTP首部字段类型

通用首部字段(General Header Fields):请求报文和响应报文两方都会使用的首部
请求首部字段(Request Header Fields):从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息。
响应首部字段(Response Header Fields):从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息。
实体首部字段(Entity Header Fields):针对请求报文和响应报文的实体部分使用的首部,补充了资源内容更新时间等与实体有关的信息。

3.HTTP/1.1首部字段一览

通用首部字段:
Cache-Control:控制缓存的行为
Connection:逐跳首部、连接的管理
Date:创建报文的日期时间
Pragma:报文指令
Trailer:报文末端的首部一览
Transfer-Encoding:指定报文主体的传输编码方式
Upgrade:升级为其他协议
Via:代理服务器的相关信息
Warning:错误通知
请求首部字段
Accept:用户代理可处理的媒体类型
Accept-Charset:优先的字符集
Accept-Encoding:优先的内容编码
Accept-Language:优先的语言
Authorization:Web认证信息
Expect:期待服务器的特定行为
From:用户的电子邮箱信息
Host:请求资源所在服务器
If-Match:比较实体标记(ETag)
If-Modified-Since:比较资源的更新时间
If-None-Match:比较实体标记(与If-Match相反)
If-Range:资源未更新时发送实体Byte的范围请求
If-Unmodified-Since:比较资源的更新时间(与If-Modified-Since相反)
Max-Forwards:最大传输逐跳数
Proxy-Authorization:代理服务器要求客户端的认证信息
Range:实体的字节范围请求
Referer:对请求中URI的原始获取方
TE:传输编码的优先级
User-Agent:HTTP客户端程序的信息
响应首部字段:
Accept-Ranges:是否接受字节范围请求
Age:推算资源创建经过时间
ETag:资源的匹配信息
Location:令客户端重定向至指定URI
Proxy-Authenticate:代理服务器对客户端的认证信息
Retry-After:对再次发起请求的时机要求
Server:HTTP服务器的安装信息
Vary:代理服务器的安装信息
WWW-Authenticate:服务器对客户端的认证信息
实体首部字段:
Allow:资源可支持的HTTP方法
Content-Encoding:实体主体适用的编码方式
Content-Language:实体主体的自然语言
Content-Length:实体实体的大小(单位:字节)
Content-Location:替代对应资源的URI
Content-MD5:实体主体的报文摘要
Content-Range:实体主体的位置范围
Content-Type:实体主体的媒体类型
Expores:实体主体过期的日期时间
Last-Modified:资源的最后修改日期时间
HTTP首部字段将定义为缓存代理和非缓存代理的行为,分为端到端首部和逐跳首部两种,端到端首部会转发请求/响应对应的最终接收目标,且必须保存在由缓存生成的响应中,另外规定它必须被转发。逐跳首部只对单次转发有效,会因通过缓存或代理而不再转发。HTTP/1.1和之后的版本中,如果要使用hop-by-hop首部,需提供Connection字段。

4.为Cookie服务的首部字段

Cookie的工作机制时用户识别及状态管理。Web网站为了管理用户的状态会通过Web浏览器,把一些数据临时写入用户的计算机内。当用户访问该网站时,可通过通信方式取回之前发放的Cookie。

5.其他首部字段

HTTP首部字段时可以自行扩展的。接下来对一些常用的首部字段说明
X-Frame-Options:属于HTTP响应首部,用于控制网站内容在其他Web网站的Frame标签内显示的问题。其主要目的是为了防止点击劫持攻击。
X-XSS-Protection:属于HTTP响应首部,它是针对跨站脚本攻击(XSS)的一种对策,用于控制浏览器XSS防护机制的开关。
DNT:数据HTTP请求首部,其中DNT是Do Not Track的简称,意为拒绝个人信息被收集,是表示拒绝被精准广告追踪的一种方法。
P3P:HTTP响应首部,通过利用P3P技术,可以让Web网站上的个人隐私变成一种仅供程序可理解的形式,以达到保护用户隐私的目的。

你可能感兴趣的:(图解HTTP之HTTP首部)