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

一、HTTP报文首部

HTTP请求报文,报文首部

  • 请求行(方法、URI、HTTP版本)
  • 请求首部字段
  • 通用首部字段
  • 实体首部字段
  • 其他

HTTP响应报文,报文首部

  • 状态行(HTTP版本、状态码)
  • 响应首部字段
  • 通用首部字段
  • 实体首部字段
  • 其他

二.HTTP首部字段

使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容

结构——————首部字段名:字段值

eg:Content-Type:text/html      (Content-Type表示报文主体的对象类型)

 

四种HTTP首部字段类型:

 

HTTP首部字段一览

通用首部字段

首部字段名说明
Cache-Control控制缓存的行为
Connection逐跳首部、链接的管理
Date创建报文的日期时间
Pragma报文指令
Trailer

报文末端的首部一览

Transfer-Encoding指定报文主体的传输编码方式
Upgrade升级为其他协议
Via代理服务器的相关信息
Warning错误通知

请求首部字段

首部字段名说明
Accept用户代理可处理的媒体信息
Accept-Charset优先的字符集
Accept-Encoding优先的内容编码
Accept-Language优先的语言(自然语言)
AuthorizationWeb认证信息
Expect期待服务器的特定行为
Form用户的电子邮箱地址
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-AgentHTTP客户端程序的信息

响应首部字段

首部字段名说明
Accept-Ranges是否接受字节范围请求
Age推算资源创建经过时间
ETag资源的匹配信息
Location

令客户端重新定向至指定URI

Proxy-Authenticate代理服务器对客户端的认证信息
Retry-After对再次发起请求的时机要求
ServerHTTP服务器的安装信息
Vary代理服务器缓存的管理信息
WWW-Authenticate服务器对客户端的认证信息

实体首部字段

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

 

HTTP首部字段将定义成缓存代理和非缓存代理的行为,分成:

  • 端到端首部(End-to-end Header) 分到次类别中的首部会转发给请求/响应对应的最终接受目标,且 必须保存在由缓存生成的响应中,必须被转发

       除逐跳首部字段外其他字段

  • 逐跳首部(Hop-by-hop Header)  分在此类别的首部支队单次转发有效,会因缓存或代理而不再转发             

       包括Connection、Keep-Alive、Proxy-Authenticate、Proxy-Authorization、Trailer、TE、Transfer-Encoding、Upgrade

 

三、HTTP/1.1 通用首部字段

1.Chache-Control:能够控制缓存的行为

  • Chache-Control:no-cache 客户端不接受缓存过的信息,伪雷防止缓存中返回国企的资源
  • Chache-Control:no-store 不进行缓存,按时请求或响应中包含机密信息
  • Chache-Control:max-age=604800(单位:秒) 一定时间内不必再确认缓存是否过期
  • Chache-Control:min-fresh=60() 要求缓存服务器返回至少还未超过指定时间的缓存资源,否则即使有效也不用
  • Chache-Control:max-stale=3600()可指示缓存资源,过期照收
  • Chache-Control:only-if-chached   客户端尽在缓存服务器本地缓存目标的资源情况也才要求返回
  • Chache-Control:must-revalidate 代理向元服务器再次验证即将返回的响应缓存目前是否仍然有效,会忽略max-stale指令
  • Chache-Control:proxy-revalidate 返回响应之前再次验证缓存的有效性
  • Chache-Control:no-transform 无论在请求还是响应中,缓存都不能改变实体主体的媒体类型

2.Connection

作用:1.控制不再转发给代理的首部字段

             Connection:不再转发的字段名

           2.管理持久连接

              默认持久连接,服务器想断开时   Connection:close

             请求/响应持久连接   Connectionn:Keep-Alive

 

3.Date    表明创建HTTP报文的日期和时间

Date: Tue,03 Jul 2012 04:40:59 GMT

 

4.Pragram

Pragram:no-chache       属于通用首部字段,但只用于请求中。客户端会要求所有的中间服务器不返回缓存的资源,与Chache-Control:no-cache 可一起使用

 

5.Trailer  事先说明在报文主体后记录了哪些首部字段

6.Transfer-Encoding 规定传输报文时报文主体用编码方式

7.Upgrade  用于检测HTTP协议及其他协议是否可使用更高级的版本进行通信,其参数值可以指定一个完全不同的通信协议,使用时,需额外指定  Connection:Upgrade

8.Via 追踪客户端与服务器之间的请求和响应报文的传输路径 可以避免请求回环的发生,在经过代理时必须附加

   各个代理服务器会往Via首部添加自身服务器信息

9.Warning 告知客户一些于换成相关的问题的警告

 

四、请求首部字段

1.Accept 通知服务器用户代理能够处理的媒体类型以及相对优先级

   Accept:text/html,application/xhtml+xml;q=0.9,*/*;q=0.8

q=   表示权重,分号隔开

  • 文本文件:text/html,text/plain,text/css...                application/xhtml+xml,application/xml....
  • 图片文件:image/jpeg,image/jif,image/png...
  • 视频文件:video/mpeg,video/quicktime...
  • 应用程序使用的二进制文件:application/octet-stream,application/zip...

2.Accept-Charset 通知服务器用户代理支持的字符集以及优先顺序

   Accept-Charset:iso-8859-5,unicode-1-1;q=0.8

3.Accept-Encoding:告知服务器用户代理支持的内容编码以及优先顺序(q=)

   内容编码的例子

  • gzip 文件压缩程序生产的编码格式
  • compress UNIX文件压缩程序生产的
  • deflate       zlib格式以及deflate压缩算法生产的编码格式
  • identity  不执行压缩或者不会变化的默认编码格式     

4.Accept-Language:zh-cn,zh;q=0.7,en-us,en;q=0.3

5.Authorization 告知服务器用户代理的认证信息

6.Expect 客户端告知服务器期望出现的某种特点行为

7.Form:info@hackr.jp    告知服务器使用用户代理的电子邮件地址

8.Host  告知服务器请求的资源所处的互联网主机名和端口号,必须包含

   Host:www.hackr.jp

9.If-Match:"123456"   条件请求 与实体标记(ETag)值相同时,服务器接收请求

10.If-Modified-Since  告知若字段值早于更新时间,则希望处理该请求 用于确认代理或客户端拥有的本地资源的有效性

11.If-None-Match   与ETag值不一致时,处理请求

12.If-Range   与ETag值或时间 一致 处理

13.If-Unmodified-Since 告知若字段值在指定日期之后,则处理该请求

14.Max-Forwards 服务器在往下一个服务器转发请求之前,将Max-Forwards值-1后重新赋值

15.Proxy-Authorization 告知服务器认证所需要的信息

16.Range:bytes=5001-10000  范围请求

17.Referer:http://www.hackr.jp/index.htm   告知服务器请求的原始资源的URI

18.TE 告知服务器客户端能够处理响应的传输编码方式以及相对优先级

19.User-Agent 用于传达浏览器的种类 将创建请求的浏览器和用户名等信息传送给服务器

 

五、响应首部字段

1.Accept-Ranges告知客户端服务器是否能处理范围请求,一指定获取服务器端某个部分的资源

  可处理 bytes   反之 none

2.Age:600  告知客户端,源服务器在多久之前创建了响应

3.ETag:“13216546”       告知客户端实体标识 为每份资源分配ETag值

  强Etag值,细微变化改变

  弱ETag值,根本资源改变才变

4.Location   将响应接收方引导至与某个请求URI位置不同的资源

5.Proxy-Authenticate  把由代理服务器所要求的认证信息发送给客户端

6.Retry-After:120    告知客户端应在多久之后再次发送请求 字段值可以说具体日期时间,也可以是创建相应后的秒数

7.Server 告知客户端当前服务器上安装的HTTP服务器应用程序的信息

8.Vary:Accept-Language 可对缓存进行控制。源服务器会向代理服务器传达关于本地缓存使用方法的命令

9.WWW-Authenticate 用于HTTP访问认证

 

六、实体首部字段

1.Allow:GET,HEAD 通知客户端能够支持指定资源的所以HTTP方法

2.Content-Encoding :gzip  告知客户端服务器对实体的主体部分选用的内容编码方式

3.Content-Language:zh-CN 告知客户端,实体主体使用的自然语言

4.Content-Length:15000  表明了实体主体部分大小(字节)

5.Content-Location:HTTP://。。。。。。。    给出与报文主体部分相对应的URI

6.Content-MD5  客户端会对接受的报文主体执行相同的MD5算法,然后与首部字段的Content-MD5的字段值进行比较

7.Content-Range:bytes 5001-10000/10000 告知客户端最为响应返回的实体的哪个部分符合范围请求

8.Content-Type 说明了实体主体内对象的媒体类型

9.Expires 将资源失效日期告知客户端

10.Last-Modified  指明资源最终修改时间

 

七、为Cookie服务的首部字段

Cookie工作机制时用户识别以及状态管理

与Cookie有关的首部字段:

  • Set-Cookie 开始状态管理所使用的Cookie信息 属于响应首部字段

      属性

   

属性

说明

NAME=VALUE赋予Cookie的名称和其值(必须项)
expires=DATECookie的有效期(默认 浏览器关闭前为止)
path=PATH将服务器上的文件目录作为Cookie的适用对象
domain=域名作为Cookie适用对象的域名
Secure仅在HTTPS安全通信时才会发送Cookie
HttpOnly加以限制,使Cookie不能被JavaScript脚本访问
  • Cookie

      Cookie:status=enable  告知服务器当客户端想获得HTTP状态管理支持时,就会在请求中包括从服务器接收到的Cookie

 

八、其他首部字段

常用:

  • X-Frame-Options   控制网站内容在其他Web网站的Frame标签内显示,防止点击劫持攻击

                                      DENY  拒绝                SAMEORIGIN 仅同源域名下的页面许可

  • X-XSS-Protection  响应首部 针对跨站脚本攻击(XSS)的对策

                                     0:将XSS过滤设置成无效状态

                                     1:....有效状态

  • DNT    请求首部  拒绝被精准广告追踪

                   0:同意被追踪

                   1:拒绝被追踪

  • P3P   响应首部  利用P3P(在线隐私偏好平台)让Web网站上的个人隐私变成仅供程序理解的形式
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值