菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
428
0

《图解HTTP》HTTP首部(2)

原创
05/13 14:22
阅读数 32061

四、请求首部字段

  请求首部字段是由客户端往服务器端发送请求报文汇总使用的字段,用于补充请求的附加信息、客户端信息、对响应内容相关的优先级等内容

1、Accept

  Accept用于通知服务器,用户代理能够处理的媒体类型和媒体类型的优先级

  可以使用type/subtype这种形式,一次指定多种媒体类型

    

  下面是几种常见的媒体类型

  • 文本文件

    text/html,text/plain,text/css...

    application/xhtml+xml,application/xml...

  • 图片文件

    image/jpeg, image/gif, image/png

  • 视频文件

    video/mpeg, video/quicktime

  • 应用程序使用的二进制文件

    application/octet-stream,application/zip...

  给媒体类型增加优先级

    可以使用q=来额外表示权重值,用分号(;)进行分隔。

    权重q的范围是0~1,且1是最大值。不指定权重q值时,默认权重q=1.0

    当服务器可以提供多种内容时,会首先返回权重值最高的媒体类型

2、Accept-Charset

  通知服务器,用户代理支持的字符集和字符集的优先顺序,应用于内容协商机制的服务器驱动协商

  

 

 3、Accept-Encoding

  通知服务器,代理的内容编码以及内容编码的优先顺序。另外也使用*作为通用符,指定任意的编码格式

    

  几种内容编码的例子:

  • gzip
  • cpmpress
  • deflate
  • identity

4、Accept-Language

  通知服务器和代理能够处理的自然语言(中文或英文) 以及自然语言的优先级

  

 

 5、Authorization

  通知服务器和代理的认证信息,通常会先返回401响应,然后客户端在输入认证信息,浏览器将首部字段Authorization字段加入报文重新发给服务器。

  

6、Expect

  告诉服务器期望出现的某种特定的行为如果服务器无法理解客户端的期望,会返回状态码417 Expectation Failed。HTTP/1.1规定只定义了100-continue。(客户端可以利用Expect写明所期望的扩展)

  

 

 7、From

  告诉服务器使用用户代理的用户的电子邮件地址

  目的:显示代理用户的电子邮件联系方式。

  使用代理时,应尽可能包含From首部字段(因代理不同,电子邮箱地址可能记录在User-Agent首部字段)

  

 

 8、Host

  虚拟主机运行在同一个ip上,因此用Host区分

  Host字段是唯一一个HTTP/1.1规定必须被包含在请求头内的首部字段

  首部字段会告诉服务器请求的资源所处的互联网主机名和端口号(当服务器未设置主机名时,直接发送一个空值)

  

9、If-match

  条件请求:使用首部  If-xxx  发出的请求。

  当服务器接收条件请求时,只有条件为真才会执行请求。

  只有If-matche的字段和Etag的值一致时,服务器才接受,否则412 Precondition Failed

  

  

10、If-Modified-Since  

  在If-modify-Since字段指定的时间之后资源更新,服务器会接受请求,否则返回304 Not Modified

   

 

 

 11、If-None-Match

  If-None-Match字段和Etag值不一样时,可处理该请求

  

 12、If-Range

  指定的If-Range字段值和请求资源一致时,会请求处理,反之返回全体资源。

  若不适用If-Range字段,服务器会返回304,然后客户端再发请求,服务器才会返回全体资源。

  

13、 If-Unmodified-Since

   在If-Unmodify-Since字段指定的时间之内资源更新,服务器会接受请求,否则返回412 Precondition Failed

14、Max-Forwards

  经过的服务器最大数目。,每经过一个服务器减1,当Max-Forward减到0时,请求不在转发,直接返回响应。

  作用:可以了解以返回的那台服务器为终点,所经过的服务器通信情况。避免由于服务器转发失败导致客户端没有响应。

  

 

15、Proxy-Authorization

  发生在客户端与代理服务器之间的认证质询,与Authorzation认证字段相似(客户端与服务器之间的认证质询)。

16、Range

   获取部分资源的范围请求。若可以处理,返回206 PratialContent,若不能处理,返回200及全部资源。

17、Referfer 

   告知服务器请求的原始资源的URL

  

 18、TE

  告知服务器客户端能够处理响应的传输编码方式以及相应优先级,与Accept-Ecoding功能类似,但是只用于传输编码。

 19、User-Agent

  会将创建请求的浏览器和用户代理名称等信息传达给服务器

五、响应首部字段

1、Accept-Ranges

  告诉客户端是否能处理范围请求,获取服务器某部分的资源。可以处理返回byte,不能处理返回none

2、Age

  告诉客户端,服务器在多久前创建了响应

  

3、Etage

  告知客户端实体标识

  强Etage:无论实体发生多么细微的变化都会改变其值

  弱Etage:提示资源是否相同,只有资源发生根本改变,才会改变其值。在最开始附加W/

  

 4、Location

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

  浏览器接收这个字段后会强制性地尝试访问重定向资源

   

 5、Proxy-Authenticate

  把代理服务器所要求的的认证信息发送给客户端

6、Retry-After

  告诉客户端多久后再次发请求

7、Server

  告知客户端当前服务器上安装的HTTP服务器应用层程序的信息。可能包括软件应用名称、版本号和安装时启动的可选项。

 8、Vary  

  Vary可对缓存进行控制,用于源服务器向代理服务器传达关于本地缓存使用方法的命令。

  当代理服务器收到Vary首部字段指定获取资源的请求时,若Accept-Langusge请求值相同时,直接从缓存读取响应,否则先从源服务端获取资源后才能作为响应返回。

9、WWW-Authenticate

  用于HTTP访问认证

六、实体首部字段

1、Allow

  通知客户端,它能够支持的HTTP方法。若服务器不支持HTTP,则返回405 Method Not Allowed并把所支持的方法写入Allow

2、Content-Enconding

  告知客户端对实体部分内容编码方式

3、Content-Language

  告诉客户端主体使用的自然语言

4、Content-Length

  表明实体主体部分的大小

5、Content-Location

  报文主体返回资源对应的URI

6、Content-MD5

  是一串由MD5算法生成的值,用于检查主体在传输过程中是否保存完整,以及确认传输到达。

7、Content-Range

  告知客户端作为响应返回的实体的哪个部分范围请求。字段值以字节为单位,表示当前发送部分及整个实体大小

8、Content-Type

  实体主体内对象的媒体类型

9、Epires

  将资源失效的日期告知客户端。缓存服务器在接收到含有Expires的响应后,会以缓存响应请求。

  

10、Last-Modified

  资源最后被修改的时间

七、为Cookie服务的首部字段  

  Cookies的工作机制是用户识别及状态管理

  将cookies临时写入计算机,调用cookies时验证,有效期、域、路径、协议等内容

  

 1、Set-Cookie

  

  expires属性:浏览器可发送cookies的有效期。当expries省略,应用程序关闭cookies失效。cookies不能删除,只能覆盖

  path属性:指定cookies发送范围的文件目录

  domain属性:通过cookies指定域名。不指定domain属性更安全。

  secure属性:限制Web页面仅在HTTPS安全连接时,才可以发送cookies。

          Set-Cookie:name=vale;secure

  HttpOnly属性:使js脚本无法获取cookies,防止XSS对cookies的信息窃取

          Set-Cookie:name=value;HttpOnly 

2、Cookie

  cookie:status=enable

  请求中包含从服务器收到的cookie,可以是多个

八、其他首部字段

1、X-Frame-Options

  控制网站内容在其他web网站的frame标签的显示问题

  X-Frame-Options:DENY   (拒绝)

  X-Frame-Options:SAMEORIGN   (允许源域名下的页面匹配)

   

2、X-XSS-Protection

  是针对跨站脚本攻击的一种对策,控制浏览器XSS防护机制的开关

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

  1:将XSS过滤设置成有效状态

3、DNT

  拒绝个人信息被收集,拒绝被精准广告追踪

  0:统一被追踪

  1:拒绝被追踪

4、P3P

  目的:保护用户隐私

  

 

  

  

发表评论

0/200
428 点赞
0 评论
收藏
为你推荐 换一批