TCP/IP协议族(二)HTTP报文头解析

本篇博客主要详细讲一下HTTP协议的常用头部字段,当然还是将其分为请求头和响应头进行阐述。下方是报文头每个字段的格式,首先是头部字段的名称,如Accept;冒号后方紧跟的是该字段名所对应的值,每个值之间有逗号分隔。如果该值需要优先级,那么在值的后方跟上优先级q=0.8(q的值由0~1,优先级从低到高)。值与优先级中间由分号相隔。

头部字段名:值1,值2;q=0.8

下方就是截取的网络请求中Request Headers的部分内容,红框中的Accept-Language就是头部字段名,冒号后边就是该字段相应的值了。如图所示:

HTTP头部字段可以分为通用头部字段,请求头部字段,响应头部字段以及实体头部字段,下面将详细的介绍。

一、通用头部字段(General Header Fields)

该字段在请求头和响应头都会使用到,下方是常用的通用头部字段:

1、Cache-Control

用来操作缓存的工作机制,下方截图响应头中的Cache-Control的参数为private和max-age=10。private缓存是私有的,仅向特定用户提供相应的缓存信息。如果是public,就意味着可向任意方提供相应的缓存信息。max-age=10表示缓存有效期为10秒。从下方的Expires(过期时间)和Last-Modified(最后修改时间)就可以看出,这两者之间的差值正好是10秒。

该字段还可以对应其他的参数:

  • no-cache:如果是客户端的话,说明客户端不会接收缓存过的响应,要请求最新的内容。而服务器端则表示缓存服务器不能对相应的资源进行缓存
  • no-store:表示缓存不能再本地存储
  • max-age:该参数后方会被赋值上相应的秒数,在请求头中表示如果缓存时间没有超过这个值就返回给我。而在相应头中时,则表示资源在缓存服务器中缓存的最大时间
  • only-if-cached:表示客户端仅仅请求缓存服务器上的内容,如果缓存服务器上没有请求的内容,那么返回504 Gateway Timeout
  • must-revalidata:表示缓存服务器在返回资源时,必须向资源服务器确认其缓存的有效性
  • no-transform:无论请求还是响应,都不能在传输的过程中改变报文体的媒体类型

2、Connection

该字段可以控制不转发给代理服务器的首部字段以及管理持久连接,下方这个响应报文头中的Connection就是用来管理持久连接的,其参数为keep-alive,就是保持持久连接的意思。可以使用close参数将其关闭。

3、Transfer-Encoding

该字段表示报文在传输过程中采用的编码方式,在HTTP/1.1的报文传输过程中仅仅对分块编码有效。下方这个截图就是Transfer-Encoding

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值