图解HTTP(六)

第六章 HTTP首部

HTTP首部字段
  • 作用:传递额外重要信息,给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容
  • 首部字段重复了的影响:根据浏览器内部处理逻辑不同,结果可能并不一致。有些会优先处理第一次出现的首部字段,有些则会有限处理最后出现的
  • 4种HTTP首部字段类型:通用首部字段(请求报文和响应报文两方都会使用的首部)、请求首部字段、响应首部字段、实体首部字段
  • 常见47种首部字段

1.通用首部字段
Cache-Control:控制缓存行为
Connection:逐跳首部、连接的管理
Date:创建报文的日期时间
Pragma:报文指令
Trailer:报文末端的首部一览
Transfer-Encoding:指定报文主体的传输编码方式
Upgrade:升级为其他协议
Via:代理服务器的相关信息
Warning:错误通知

2.请求首部字段引用块内容
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客户端程序的信息

3.响应首部字段
Accept-Ranges:是否接受字节范围请求
Age:推算资源创建经过时间
ETag:资源的匹配信息
Location:令客户端重定向至指定URI
Proxy-Authenticate:代理服务器对客户端的认证信息
Retry-After:对再次发起请求的时机要求
Server:HTTP服务器的安装信息
Vary:代理服务器缓存的管理信息
WWWW-Authenticate:服务器对客户端的认证信息

4.实体首部字段
Allow:资源可支持的HTTP方法
Content-Encoding:实体主体适用的编码方式
Content-Language:实体主体的自然语言
Content-Length:实体主体的大小(单位:字节)
Content-Location:替代对应资源的URI
Content-MD5:实体主体的报文摘要
Content-Range:实体主体的位置范围
Content-Type:实体主体的媒体类型
Expires:实体主体过期的日期时间
Last-Modified:资源的最后修改日期时间

非HTTP/1.1首部字段

Cookie、Set-Cookie、Content-Disposition

端到端首部
  • Connection
  • Keep-Alive
  • Proxy-Authenticate
  • Proxy-Authorization
  • Trailer
  • TE
  • Transfer-Encoding
  • Upgrade
其他
  • HTTP/1.1之前的HTTP版本的默认连接都是非持久连接
  • Cache-Control:only-if-cached,表示客户端仅在缓存服务器本地缓存目标资源返回,若请求无响应,返回504 Gateway Timeout
  • Expect:100-continue,客户端用首部字段Expect告知服务器期望出现的某种特定行为,服务器无法理解没做回应发生错误时,返回417 Expectation Failed
  • 形如If-XXX这种样式的请求首部字段,都可称为条件请求
  • 实体标记(ETag)是与特定资源关联的确定值,。资源更新后ETag也会随之更新,只有当If-Match和ETag值匹配一致时,服务器才会接受请求,否则返回412 Precondition Failed。还可使用星号(*)指定If-Match的字段值,这种情况,服务器会忽略ETag的值,只要资源存在就处理请求
  • 生成ETag值并没有统一的算法规则,而仅仅是由服务器来分配,ETag有强弱之分:
    —-强ETag值:不论实体发生多么细微的变化都会改变其值
    —-弱ETag值:只用于提示资源是否相同,只有资源发生了根本变化,产生差异时才会改变ETag的值,这时,会在字段值最开始处附加W/
  • If-Modified-Since属附带条件之一,会告知服务器若If-Modified-Since字段值早于资源的更新时间,则希望能处理改请求,而在之后,如果请求的资源都没有过更新,则返回304 Not Modified
  • If-Range发送请求,如果请求范围无效,返回412 Precondition Failed
  • User-Agent会将创建请求的浏览器和用户代理名称等信息传达给服务器
  • 当省略expires属性时,其有效期仅限于维持浏览器会话(Session)时间段内
  • Set-Cookie:HTTPOnly,为防止跨站脚本攻击(XSS)对Cookie的信息窃取
  • 首部字段X-XSS-Protection属于HTTP响应首部,针对跨站脚本攻击的一种对策,用于控制浏览器XSS防护机制的开关
  • DNS:1,Do Not Track,拒绝个人信息被收集,拒绝被精准广告追踪的一种方法;0:同意被追踪;1:拒绝被追中;只有IE默认打开,也有人说这是浪费流量,遵守全靠自律
  • P3P:保护用户隐私
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值