【计算机网络基础】HTTP通用首部有哪些,分别是什么作用(意思)

【计算机网络基础】HTTP响应首部都代表什么意思?


首先说 通用首部字段是什么意思?
通用首部是指:请求报文和响应报文双方都会使用的首部.

废话不多说,直接上干货

1. Cache-control

通过指定首部字段Cache-control的指令,就能操作缓存的工作机制。

指令的参数是可选的,多个指令之间通过“,”分隔。首部字段 CacheControl 的指令可用于请求及响应时。

Cache-Control 指令一览:
缓存请求指令:

指令参数说明
no-cache强制向源服务器再次验证
no-store不缓存请求或响应的任何内容
max-age=[ 秒]必需响应的最大Age值
max-stale( = [ 秒])可省略接收已过期的响应
min-fresh = [ 秒]必须期望在指定时间内的响应仍有效
no-transform代理不可更改媒体类型
only-if-cached从缓存获取资源
cache-extension-新指令标记(token)

缓存响应指令:

指令参数说明
public可向任一方提供响应的缓存
private可省略仅向特定用户返回响应
no-cache可省略缓存前必须确认其有效性
no-store不缓存请求或响应的任何内容
no-transform代理不可更改媒体类型
must-revalidate可缓存带必须向源服务器进行取人
proxy-revalidate要求中间缓存服务器对缓存的响应有效性再进行确认
max-age = [ 秒]必需响应的最大Age值
s-maxage = [ 秒]必需公共缓存服务器响应的最大Age值
cache-extension-新指令标记(token)

//Cache-Control 指令分别是什么作用及其深层含义?后面会出一篇,本篇不做过多介绍


2.Connection

Connect首部字段具备如下两个作用。

  • 控制不再转发给大力的首部字段
  • 管理持久连接

控制不再转发给代理的首部字段

Connection: 不再转发的首部字段名

在客户端发送请求和服务器返回响应内,使用 Connection 首部字 段,可控制不再转发给代理的首部字段(即 Hop-by-hop 首 部)。

管理持久连接

Connection: close

HTTP/1.1 版本的默认连接都是持久连接。为此,客户端会在持 久连接上连续发送请求。当服务器端想明确断开连接时,则指定 Connection 首部字段的值为 Close。

Connection: Keep-Alive

HTTP/1.1 之前的 HTTP 版本的默认连接都是非持久连接。为 此,如果想在旧版本的 HTTP 协议上维持持续连接,则需要指定 Connection 首部字段的值为 Keep-Alive。


3.Date

首部字段Date表明创建HTTP报文的日期和时间

HTTP/1.1协议使用在 RFC1123 中规定的日期时间的格式,如下 示 例。

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

之前的 HTTP 协议版本中使用在 RFC850 中定义的格式,如下所示。

Date: Tue, 03-Jul-12 04:40:59 GMT

4.Pragma

Pragma 是 HTTP/1.1 之前版本的历史遗留字段,仅作为与 HTTP/1.0 的向后兼容而定义。

唯一的规范定义格式:

Pragma: no-cache

该首部字段属于通用首部字段,但只用在客户端发送的请求中,客户端会要求所有的中间服务器不返回缓存的资源。

所有的中间服务器如果都能以 HTTP/1.1 为基准,那直接采用 CacheControl: no-cache 指定缓存的处理方式是最为理想的。但要整体掌握 全部中间服务器使用的 HTTP 协议版本却是不现实的。因此,发送的 请求会同时含有下面两个首部字段。

Cache-Control: no-cache 
Pragma: no-cache

5.Trailer

首部字段 Trailer 会事先说明在报文主体后记录了哪些首部字段。该 首部字段可应用在 HTTP/1.1 版本分块传输编码时。
例子如下:

HTTP/1.1 200 OK 
Date: Tue, 03 Jul 2012 04:40:56 GMT 
Content-Type: text/html 
... Transfer-Encoding: chunked 
Trailer: Expires 
...(报文主体)... 
0 
Expires: Tue, 28 Sep 2004 23:59:59 GMT 

以上用例中,指定首部字段 Trailer 的值为 Expires,在报文主体之后 (分块长度 0 之后)出现了首部字段 Expires。


6. Transfer-Encoding

首部字段 Transfer-Encoding 规定了传输报文主体时采用的编码方式

HTTP/1.1 的传输编码方式仅对分块传输编码有效。


7.Upgrade

首部字段 Upgrade 用于检测 HTTP 协议及其他协议是否可使用更高的 版本进行通信,其参数值可以用来指定一个完全不同的通信协议。

使用首部字段 Upgrade 时,还需要额外指定 Connection:Upgrade。

对于附有首部字段 Upgrade 的请求,服务器可用 101 Switching Protocols 状态码作为响应返回。


8.Via

使用首部字段 Via 是为了追踪客户端与服务器之间的请求和响应报文 的传输路径。

报文经过代理或网关时,会先在首部字段 Via 中附加该服务器的信 息,然后再进行转发。这个做法和 traceroute 及电子邮件的 Received 首部的工作机制很类似。
首部字段 Via 不仅用于追踪报文的转发,还可避免请求回环的发生。 所以必须在经过代理时附加该首部字段内容。

Via 首部是为了追踪传输路径,所以经常会和 TRACE 方法一起使 用。比如,代理服务器接收到由 TRACE 方法发送过来的请求(其中 Max-Forwards: 0)时,代理服务器就不能再转发该请求了。这种情况 下,代理服务器会将自身的信息附加到 Via 首部后,返回该请求的响 应。


9.Warning

HTTP/1.1 的 Warning 首部是从 HTTP/1.0 的响应首部(Retry-After)演 变过来的。该首部通常会告知用户一些与缓存相关的问题的警告。

Warning 首部的格式如下。最后的日期时间部分可省略。

Warning: [警告码][警告的主机:端口号][警告内容]([日期时间])

HTTP/1.1 中定义了7种警告。警告码对应的警告内容仅推荐参考。 另外,警告码具备扩展性,今后有可能追加新的警告码。

HTTP/1.1 警告码

警告码警告内容说明
110Response is stale(响应已过期)代理返回已过期的资源
111Revalidation failed(再验证失败)代理再验证资源有效性时失败(服务 器无法到达等原因)
112Disconnection operation(断开连接操 作)代理与互联网连接被故意切断
113Heuristic expiration(试探性过期)响应的使用期超过24小时(有效缓存 的设定时间大于24小时的情况下)
199Miscellaneous warning(杂项警告)任意的警告内容
214Transformation applied(使用了转换)代理对内容编码或媒体类型等执行了 某些处理时
299Miscellaneous persistent warning(持久 杂项警告)任意的警告内容

//希望以上内容能够帮助到大家😄
往期计算机网络基础内容:

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GengMS_DEV

你的鼓励就是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值