HTTP笔记(五)

 备注:未经博主允许禁止转载

个人笔记(整理不易,有帮助,收藏+点赞+评论,爱你们!!!你的支持是我写作的动力)

笔记目录学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客

个人随笔工作总结随笔_8、以前工作中都接触过哪些类型的测试文档-CSDN博客

一:HTTP报文首部

这个图(上图是请求报文)可以看出HTTP报文的结构,由这几块组成:

报文首部
(有客户端和服务端需要的信息)
空行(CR+LF)
报文主体
(有用户和资源信息)

(1)请求报文

报文首部
(有客户端和服务端需要的信息)
请求行方法,URI,HTTP版本
请求首部字段
通用首部字段
实体首部字段
HTTP首部字段
其他

(2)响应报文

报文首部
(有客户端和服务端需要的信息)
状态行HTTP版本,状态码
响应首部字段
通用首部字段
实体首部字段
HTTP首部字段
其他

(3)首部字段作用

给浏览器和服务器提供报文主体大小,所使用的语言,认证信息等内容

(4)首部字段结构

首部字段名:字段值,字段值可以有多个

keep-Alive:timeout=50,max=100

ps:如果出现2个首部字段名,这种情况在规范内不明确,根据浏览器内部处理逻辑的不同,结果可能不一致

(5)首部字段类型

  • 通用首部字段( General Header Fields):请求报文和响应报文两方都会使用的首部

  • 请求首部字段( Request Header Fields):从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息

  • 响应首部字段( Response Header Fields):从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息

  • 实体首部字段( Entity Header Fields):针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息

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

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

  • 端到端首部(End-to-end Header):分在此类别中的首部会转发给请求/响应对应的最终接收目标,且必须保存在有缓存生成的响应中,另外规定它必须被转发
  • 逐跳首部(Hop-by-hop Header):分在此类别种的首部只对单次转发有效,会因通过缓存或代理而不再转发。HTTP/1.1 和之后版本中,如果使用hop-by-hop 首部,需提供Connection 首部字段

下面列举了 HTTP/1.1 中的逐跳首部字段。除这8个首部字段之外,其他所有字段都属于端到端首部

  • Connection
  • Keep-Alive
  • Proxy-Authenticate
  • Proxy-Authorization
  • Trailer
  • TE
  • Transfer-Encoding
  • Upgrade

三:通用首部字段

逐跳首部字段(Hop-by-hop Header)指的是只对单次转发有效, 会因通过缓存或代理而不再转发

首部字段名说明
Cache-Control控制缓存的行为
Date创建报文的日期时间
Pragma报文指令,旧版本遗留字段,作为旧版本兼容字段
Connection逐跳首部字段、控制不再转发给代理的首部字段、管理持久连接
Trailer逐跳首部字段,报文末端的首部一览
Transfer-Encoding逐跳首部字段,指定报文主体的传输编码方式
Upgrade逐跳首部字段,升级为其他协议
Via代理服务器的相关信息
Warning错误通知

四:请求首部字段

Accept用户代理可处理的媒体类型
Accept-Charset可处理的优先的字符集
Accept-Encoding可处理的优先的内容编码
Accept-Language可处理的优先的语言(自然语言)
Authorization认证信息
Expect期待服务器的特定行为
From用户的电子邮箱地址
Host请求资源所在服务器,多用于单台服务器分配多个域名的场景
If-Match比较实体标记(ETag)
If-Modified-Since比较资源的更新时间
If-None-Match比较实体标记(与If-Match相反)
If-Range资源未更新时发送实体Byte的范围请求
If-Unmodified-Since比较资源的更新时间(与If-Modified-Since相反)
Max-Forwards最大传输逐跳数,配合 TRACE 请求使用
Proxy-Authorization逐跳首部字段,代理服务器要求客户端的认证信息
TE逐跳首部字段,传输编码的优先级
Range实体的字节范围请求
Referer对请求中URI的原始获取方
User-Agent请求的浏览器和用户代理名称等信息
CookieCookie 信息
DNTDo Not Track,拒绝个人信息被收集,表示拒绝被精准广告追踪的一种方法,0-同意 1-拒绝

五:响应首部字段

首部字段名说明
Accept-Ranges是否接受字节范围请求
Age源服务器多久前创建了响应,单位为秒
ETag资源的匹配信息,唯一性标识
Location令客户端重定向至指定URI
Proxy-Authenticate逐跳首部字段,代理服务器对客户端的认证信息
WWW-Authenticate服务器对客户端的认证信息
Retry-After告知客户端应该多久之后再次发送请求
Server当前服务器上安装的 HTTP 服务器应用程序的信息
Vary对缓存进行控制,源服务器会向代理服务器传达关于本地缓存使用方法的命令
Set-Cookie通知客户端开始状态管理所使用的Cookie信息
X-Frame-Options用于控制网站内容在其他 Web 网站的 Frame 标签内的显示问题。
主要目的是为了防止点击劫持(clickjacking)攻击,可设置 DENY 或 SAMEORIGIN
X-XSS-Protection针对跨站脚本攻击(XSS)的一种对策,用于控制浏览器 XSS 防护机制的开关,0-关闭,1-打开

六:实体首部字段

首部字段名说明
Allow资源可支持的HTTP方法
Content-Encoding实体主体适用的编码方式
Content-Language实体主体的自然语言
Content-Length实体主体的大小(单位:字节)
Content-Location报文主体返回资源对应的 URI。Location 对应的是响应,而 Content-Location 对应的是要返回的实体
Content-MD5一串由 MD5 算法生成的值,其目的在于检查报文主体在传输过程中是否保持完整,以及确认传输到达
Content-Range实体主体的位置范围
Content-Type实体主体的媒体类型
Expires实体主体过期的日期时间,若不希望被缓存可设置成与 Date 值一致
Last-Modified资源的最后修改日期时间

七:非 HTTP/1.1 首部字段

在 HTTP 协议通信交互中使用到的首部字段,不限于RFC2616 中定义的47种首部字段。

还有Cookie、Set-Cookie 和 Content-Disposition等在其他 RFC 中定义的首部字段,使用频率也很高。

这些非正式的首部字段同一归纳在RFC4299 HTTP Header Field Registrations中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小chen小陈

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值