HTTP学习笔记7 请求和响应首部字段

请求首部字段:

①**Accept:**告知服务器,用户代理支持的媒体类型及相对优先级

Accept:text/html,image/jpeg,*/*;q=0.8

优先级用q表示,以分号分隔跟随在指定优先级的媒体类型后面。取值范围0-1,默认值为1,值越大,优先级越高)
常见的媒体类型:

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

②**Accept-Charset:**告知服务器,用户代理支持的字符集及相对优先级,格式与Accept类似,常应用于服务器驱动协商

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

③**Accept-Encoding:**告知服务器,用户代理支持的内容编码及相对优先级,格式与Accept类似,可指定多种编码

Accept-Encoding: gzip, deflate

④**Accept-Language:**告知服务器,用户代理支持的自然语言及相对优先级,格式与Accept类似

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

Authorization:告知服务器,用户代理的认证信息(证书值),通常在401 Unauthorized 响应后将其加入请求头部

Expect:告知服务器,期望出现的某种特定行为
例如在POST大数据时,征询服务器是否能处理,若能,则返回100-continue状态码,否则返回417 Expectation Failed状态码

Expect:100-continue

From:告知服务器,使用用户代理的用户电子邮箱地址

Host:告知服务器,请求资源所处的互联网主机及端口号
在Http/1.1中,该字段必须被包含在首部字段中,可设置为空值。常用于区分运行在同一IP之上的多台虚拟主机

Host: www.zjw666.top

If-Match:条件请求,只有判断请求条件为真时,才会执行请求
只有当该字段值与请求资源的ETag值一致时(非弱ETag值),才会执行请求,否则返回412 Precondition Failed响应
当用“*”号表示该字段值时,表明只要资源存在就执行请求

If-Match: "123456"

If-Modified-Since:条件请求,若请求的资源在该字段指定的日期时间之后有过更新,则执行请求,否则返回304 Not Modified响应

If-Modified-Since:Thu, 15 Apr 2004 00:00:00 GMT

If-None-Match:与If-Match字段相反,用法类似

If-Range:用于范围请求
若该字段值与请求资源的ETag值或更新日期一致,则执行范围请求,否则返回全部资源

GET /index.html
If-Range:"123456"
Range:bytes=5001-10000

If-Unmodified-Since:与If-Modified-Since字段相反,用法类似

Max-Forward:使用TRACE或OPTIONS请求方法时,该字段以十进制整数形式限定请求可经过的服务器最大数目
其数值每经过一个服务器就会减1,当值为0时,则直接返回响应,不再转发

Max-Forward:10

Proxy-Authorization:与Authorization字段类似,但用于客户端与代理服务器之间,告知代理认证信息

Range:用于范围请求,告知服务器请求资源的范围,若处理成功,则返回206 Partial Content响应,否则返回全部资源

Referer:告知服务器请求发出来源的URI,可用于查看请求是从哪个Web页面发出的

Referer: https://www.zjw666.top/index.hm

TE:告知服务器,客户端支持的传输编码方式及优先级,其限定于两个节点之间的传输过程,注意是传输编码方式,而不是内容编码方式(可以将其非正式称为 Accept-Transfer-Encoding, 这个名称显得更直观一些),如果传输编码和内容编码不清楚区别,可以看看这篇文章

TE: gzip, deflate;q=0.5

除指定传输编码外,还可指定伴随trailer字段的分块传输编码的方式,只需将trailers赋值给该字段即可

TE: trailers

User-Agent:告知服务器,创建请求的浏览器和用户代理名称等信息
如果请求经过代理,则可能会附加代理服务器的名称

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0

响应请求字段

Accept-Ranges:告知客户端,服务器是否能处理范围请求,若能,该字段值为bytes,否则为none

Age:告知客户端,源服务器在多久之前创建了该响应。若创建响应的服务器是缓存服务器,则age值代表该缓存从源服务器生成开始经历的时间(秒),当代理创建响应时,该字段必须被加入

Age:600

ETag:资源标识符
每个资源都对应着一个唯一的标识符,当资源更新时,标识符也随之更新

  • 强ETag值:无论资源实体发生多么细微的变化,该值都会改变
  • 弱ETag值:只有资源发生了根本的变化,产生差异时,才会改变值,这时,会在该字段值的前方附加W/
ETag: W/"123456"

Location:重定向的URI地址
该字段会配合3XX Redirection响应,提供重定向的URI地址,几乎所有浏览器在接收到该字段时,都会尝试去访问

Location: https://www.zjw666.top/index.html

Proxy-Authenticate:将代理服务器所要求的认证信息发送给客户端

Retry-After:告知客户端多久之后再次发送请求
常配合503 Service Unavaliable或3XX 重定向响应,字段值可以是日期时间,也可以是创建响应后的秒数

Retry-After: 120

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

Server:Apache/2.2.17 (Unix)

Vary:控制缓存
源服务器用该头部的内容告诉缓存服务器,在什么条件下才能用本响应所返回的资源响应后续的请求。
假如源服务器在接到第一个请求消息时,其响应消息的头部为:Content-Encoding: gzip; Vary: Content-Encoding ,那么缓存服务器会分析后续请求消息的头部,检查其 Accept-Encoding,是否跟先前响应的 Vary 头部值一致,即是否使用相同的内容编码方法,这样就可以防止缓存服务器用自己缓存里面压缩后的实体响应给不具备解压能力的浏览器。
Vary字段可以指定多个字段值,控制缓存的使用条件。

Vary: 字段名1,字段名2....
Vary:Accept-Language,User-Agent

WWW-Authenticate:用于HTTP访问认证,告知客户端适用于访问的认证方案(Basic 或 Digest)和带有参数提示的质询,在401 Unauthorized响应中,会添加此字段。

WWW-Authenticate:Basic realm="Usagidesign Auth"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值