图解HTTP:请求首部字段

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

Client: 我要发送过来了哦
  • Accept
Client: 那份资源最好发给我HTML格式的,如果没有,发给我TEXT格式的也行啊

首部字段Accept可通知服务器,用户代理能够处理的媒体类型及媒体类型的相对优先级。可使用type/subtype这种形式一次指定多种媒体类型。

若想要给显示的媒体类型增加优先级,则使用q=来额外表示权重值,用分号;进行分隔。权重值q的范围是0~1,且1为最大值。不指定权重q值时,默认权重为q=1.0

  • Accept-Charset
Client: 我想以这个字符集阅读返回的页面

该首部字段应用于内容协商机制的服务器驱动协商。

  • Accept-Encoding
Client: 报文主体被压缩也没关系的

可使用星号*作为通配符指定任意的编码格式。

  • Accept-Language
Client: 我想要中文版的
Server: 嗨,发送给你中文版的页面
  • Authorization
Server: 该页面需要HTTP认证,把你的认证信息发给我
Client: 来,我把认证信息发送给你
  • Except
Client: 你能做到这个吗?
Server: 我只能做到100 Continue

HTTP/1.1规范只定义了100-continue

  • From
Client: 如果有事请联系这个电子邮箱
  • Host
Client: 我有事要找他
Virtual Host: 啊,是在找我

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

  • If-Match
Server: 如果你能符合条件,我就会接受你的请求

只有当If-Match的字段值跟ETag值匹配一致时,服务器才会接受请求。

  • If-Modified-Since

如果在If-Modified-Since字段指定的日期时间后,资源发生了更新,服务器会接受请求。

If-Modified-Since用于确认代理或客户端拥有的本地资源的有效性。获取资源的更新日期时间,可通过确认首部字段Last-Modified来确定。

  • If-None-Match

只有在If-None-Match的字段值与ETag值不一致时可处理该请求。与If-Match首部字段的作用相反。

在GET或HEAD方法中使用首部字段If-None-Match可获取最新的资源。

  • If-Range

If-Range字段值若是跟ETag值或更新的日期时间匹配一致,那么就作为范围请求处理。若不一致,则忽略范围请求,返回全部资源。

  • If-Unmodified-Since

告知服务器,指定的请求资源只有在字段值内指定的日期时间之后未发生更新的情况下,才能处理请求。

  • Max-Forwards

每次转发数值减1,当数值变0时返回响应。

Client: 怎么不见响应返回呢

# 由于未知原因导致请求失败、请求陷入循环 
  • Proxy-Authorization

  • Range

  • Referer

Client: 这个请求的URI是从我这里发起的
Server: 只要查看Referer就能知道请求的URI是从哪个Web页面发起的 
  • TE

首部字段TE除指定传输编码之外,还可以指定伴随trailer字段的分块传输编码的方式。应用后者时,只需把trailer赋值给该字段值。

  • User-Agent

User-Agent用于传达浏览器的种类。

(最近更新:2019年09月18日)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值