第6章——HTTP首部

第六章------HTTP首部

HTTP报文结构

都必有报文首部

HTTP请求报文

HTTP响应报文

HTTP首部字段

###传递重要信息

首部字段结构

​ 首部字段名:字段值(,字段值,字段值)

首部字段类型

​ 通用首部字段

请求首部字段:补充请求的附加内容、客户端信息、响应内容相关优先级等信息。

响应首部字段:补充响应的附加内容,也会要求客户端附加额外的内容信息。

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

非首部字段

​ 如Cookie、Set-Cookie和Content-Disposition等

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

特性 端到端首部(End-to-End) 逐跳首部(Hop-by-Hop)
作用范围 客户端和最终服务器之间 当前节点与下一个节点之间
传递方式 必须转发,保留完整性 不会转发,会被中间节点消费或删除
缓存行为 缓存代理需保留这些首部 缓存代理不会保留,或需要处理后丢弃
是否需标记 无需特别标记,默认会传递到最终服务器 必须用 Connection 标记为逐跳字段
例子 AuthorizationCache-Control Connection、Keep-Alive

通用首部字段

Cache-Control------操作缓存的工作机制

表示是否能缓存的指令:

​ Cache-Control: public------其他用户也可利用缓存

​ Cache-Control: privat------响应只以特定的用户作为对象

​ Cache-Control: no-cache------防止从缓存中返回过期的资源

控制可执行缓存的对象的指令

​ Cache-Control: no-store------包含机密信息,缓存不能在本地存储请求或响应的任一部分

指定缓存期限和认证的指令

​ Cache-Control: s-maxage=604800(单位:秒)------功能和max-age 指令的相同,但只适用于供多位用户使用的公共缓存服务器,使用s-maxage指令后,则直接忽略对Expires首部字段及max-age 指令的处理

​ Cache-Control: max-age=604800(单位:秒)------请求中包含max-age指令时,如果判定缓存资源的缓存时间数值比指定时间的数值更小,那么客户端就接收缓存的资源。(当指定max-age值为0,那么缓存服务器通常需要将请求转发给源服务器) ;响应中包含max-age指令时,缓存服务器将不对资源的有效性再作确认,而max-age数值代表资源保存为缓存的最长时间。

​ Cache-Control: min-fresh=60(单位:秒)------缓存服务器返回至少还未过指定时间的缓存资源

​ Cache-Control: max-stale=3600(单位:秒)------即使过期也照常接收

​ Cache-Control: only-if-cached------缓存服务器不重新加载响应,也不会再次确认资源有效性,若发生请求缓存服务器的本地缓存无响应,则返回状态码504 Gateway Timeout

​ Cache-Control: must-revalidate------向源服务器再次验证即将返回的响应缓存目前是否仍然有效。 若代理无法连通源服务器再次获取有效资源的话,缓存必须给客户端一条504(Gateway Timeout)状态码。使用must-revalidate 指令会忽略请求的max-stale指令

​ Cache-Control: proxy-revalidate------所有的缓存服务器在接收到客户端带有该指令的请求返回响应之前,必须再次验证缓存的有效性。

​ Cache-Control: no-transform------无论是在请求还是响应中,缓存都不能改变实体主体的媒体类型,防止压缩

Cache-Control 扩展

​ Cache-Control: private, community="UCI"------扩展Cache-Control 首部字段内的指令

Connection

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

​ Connection: 不再转发的首部字段名(即Hop-by-hop首部)

管理持久连接

​ Connection: close------服务器端想明确断开连接

​ Connection: Keep-Alive------在旧版本的HTTP协议上维持持续连接

### Date------表明创建HTTP报文的日期和时间

Pragma------只用在客户端发送的请求中,客户端要求所有的中间服务器不返回缓存的资源。

Trailer------说明在报文主体后记录了哪些首部字段

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

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

### Via------追踪客户端与服务器之间的请求和响应报文的传输路径

Warning------告知用户一些与缓存相关的问题的警告

请求首部字段

太多了不写了,实践中遇到了自己查

响应首部字段

太多了不写了,实践中遇到了自己查

实体首部字段

太多了不写了,实践中遇到了自己查

为Cookie服务的首部字段

Set-Cookie

Cookie

其他首部字段

​ HTTP 首部字段是可以自行扩展的,在Web服务器和浏览器的应用上,会出现各种非标准的首部字段。

图片转存中...(img-Af8GJdHC-1736243330758)]

外链图片转存中...(img-lL3e4KcV-1736243330758)

Cookie

其他首部字段

​ HTTP 首部字段是可以自行扩展的,在Web服务器和浏览器的应用上,会出现各种非标准的首部字段。

相关推荐
2501_9159214311 分钟前
iOS IPA 混淆实测分析:从逆向视角验证加固效果与防护流程
websocket·网络协议·tcp/ip·http·网络安全·https·udp
2501_9159184112 分钟前
打造可观测的 iOS CICD 流程:调试、追踪与质量保障全记录
websocket·网络协议·tcp/ip·http·网络安全·https·udp
Absinthe_苦艾酒2 小时前
计算机网络(三)传输层TCP
网络·tcp/ip·计算机网络
GLAB-Mary3 小时前
AI会取代网络工程师吗?理解AI在网络安全中的角色
网络·人工智能·web安全
敲敲敲-敲代码3 小时前
【ArcGIS10.2】网络数据集构建---最短路径分析
网络·arcgis
2501_915909064 小时前
调试 WebView 旧资源缓存问题:一次从偶发到复现的实战经历
websocket·网络协议·tcp/ip·http·网络安全·https·udp
向明天乄5 小时前
在小程序中实现实时聊天:WebSocket最佳实践
websocket·网络协议·小程序
小湘西5 小时前
Apache HttpClient 的请求模型和 I/O 类型
java·http·apache
cliffordl5 小时前
MCP 传输机制(Streamable HTTP)
网络·网络协议·http
晨曦丿5 小时前
双11服务器
linux·服务器·网络