学习笔记 图解HTTP 第六章:HTTP首部

HTTP报文首部

在这里插入图片描述
HTTP协议的请求和响应报文中必定包含HTTP首部。其提供所需要的信息给客户端和服务器。

HTTP请求报文

下图为请求报文的构成:
在这里插入图片描述
示例:
GET /api/v1/zy?pageNo=1&pageSize=10 HTTP/1.1
Host: 121.41.5.5
Connection: keep-alive
Accept: application/json, text/plain, /
Access-Token:xxxxxx
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8

HTTP响应报文

在这里插入图片描述
示例:
HTTP/1.1 200 OK
Server: nginx/1.10.3 (Ubuntu)
Date: Sat, 18 Jul 2020 12:21:59 GMT
Content-Type: application/json
Content-Length: 550
Connection: keep-alive
Content-Encoding: gzip
Vary: Accept-Encoding
Access-Control-Allow-Origin: *

在报文众多的字段当中,HTTP首部字段包含的信息最为丰富,首部字段同时存在于请求和响应报文内,并涵盖HTTP报文相关的内容信息。

HTTP首部字段

HTTP首部字段传递重要信息

HTTP首部字段是构成HTTP报文的要素之一。使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容。

HTTP首部字段结构

HTTP首部字段是由首部字段名和字段值构成的,中间采用冒号:分隔。同时字段值可以由多个值构成。
例如:Keep-Alive: timeout=15, max=100

如果HTTO首部字段重复了会如何?
答:这种情况在规范内尚未明确,根据浏览器内部处理逻辑的不同,结果可能并不一致。

4种HTTP首部字段类型

HTTP首部字段根据实际用途被分为以下4种类型

  • 通用首部字段(General Header Fields):请求报文和响应报文都会使用的首部。
  • 请求首部字段(Request Header Fields):从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、相应内容相关优先级等信息。
  • 响应首部字段(Response Header Fields):从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息。
  • 实体首部字段(Entity Header Fields):针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息。

HTTP/1.1 首部字段一览

HTTP/1.1规范了如下47种首部字段(RFC2616)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

非 HTTP/1.1 的首部字段

我们在HTTP协议通信交互种使用到的首部字段,不限于RFC2616中定义的那47种首部字段,还有Cookie,Set-Cookie和Content-Disposition等在其他RFC中定义的首部字段,使用频率也很高。
这些非正式的首部字段统一归纳在RFC4229 HTTP Header Field Registrations中。

End-to-end首部和Hop-by-hop首部

HTTP首部字段将定义成缓存代理和非缓存代理的行为,分成2种类型。

  • 端到端首部(End-to-end Header)
    分在此类别中的首部会转发给请求/响应对应的最终接受目标,且必须保存在由缓存生成的响应中,另外规定它必须被转发。
  • 逐跳首部(Hop-by-hop Header)
    分在此类别中的首部只对单次转发有效,会因通过缓存或代理而不再转发。HTTP/1.1和之后版本中,如果要使用hop-by-hop首部,需提供C
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值