6 HTTP首部

HTTP首部字段结构
HTTP首部是由 字段名:字段值构成,中间用冒号分隔
单个字段名可以对应多个值,例如
Keep-Alive:timeount=15,max=100

4种HTTP首部字段类型
    1. 通用首部字段:请求和响应都会使用的首部
    2. 请求首部字段:客户端发送请求报文时的字段
    3. 响应首部字段:服务端向客户端响应报文时的字段
    4. 实体首部字段:针对请求和响应报文实体部分使用的字段

端到端首部:会转发给请求/响应的最终接收目标,且规定他必须被转发
逐跳首部:只对单次转发有效,会因通过缓存或代理而不再转发。
    属于逐跳首部字段的有(其他都属于端到端首部):
    1. Connection
    2. Keep-Alive
    3. Proxy-Authenticate
    4. Proxy-Authorization
    5. Trailer
    6. TE
    7. Transfer-Encoding
    8. Upgrade

通用首部字段详解
1. Cache-Control:操作缓存服务器的工作机制
    例如:Cache-Control:private,max-age=0,no-cache
 缓存请求指令:
指令
参数
说明
no-cache
强制向源服务器再次验证
no-store
不缓存请求或相应的任何内容
max-age=[秒]
必须
相应的最大age值
max-stale=[秒]
可省略
接收已过期的响应
min-fresh=[秒]
必须
期望在指定时间内的响应仍有效
no-transform
代理不可更改媒体类型
only-if-cached
从缓存获取资源
cache-extension
-
新指令标记
缓存响应指令
指令
参数
说明
public
可向任意方提供响应的缓存
private
可省略
仅向特定用户返回响应
no-cache
可省略
换存前必须先确认其有效性
no-store
不缓存请求或响应的任何内容
no-transform
代理不可更改媒体类型
must-revalidate
可缓存但必须再向源服务器进行确认
max-age=[秒]
必须
响应的最大age值
s-maxage=[秒]
必须
公共缓存服务器响应的最大age值
cache-extension
-
新指令标记
表示能否缓存的指令:
    public:其他用户也可利用缓存
    private:如武器只对该用户返回缓存,对其他用户不返回
no-cache指令:
    防止缓存中返回过期的资源
    请求指令中的no-cache:代理服务器直接转发请求到源服务器
    响应指令中的no-cache:缓存服务器不能对资源进行缓存,源服务器也不会响应缓存服务器的有效性确认请求
no-store指令:
    暗示请求和响应中包含机密信息。
    不能在本地存储请求或响应的任一部分
s-maxage指令:
    作用同maxage,但只适应于供多为用户使用的公共缓存服务器
maxage指令:
    客户端请求中包含maxage小于代理服务器时将直接返回缓存内容,反之发送给源服务器
    响应中包含maxage,代理服务器直接缓存不做有效性确认
min-fresh指令:
    缓存服务器返回至少还未过指定时间的缓存资源
max-stale指令:
    即使过期,只要还在max-stale范围内,客户端都会接收
only-if-cached指令:
    只在缓存服务器中寻找有没有缓存资源,如果没有返回504
must-revalidate指令:
    强制要求代理向源服务器验证当前缓存有效性,不返回网页内容
proxy-revalidate指令:
    强制要求代理向源服务器验证当前缓存有效性,并返回内容
no-transform
    无论是在请求还是响应中都不能改变主体的媒体类型

2. Connection
    控制不再转发给代理的首部字段
        告诉转发服务器不再转发那个字段
    管理持久连接
        Connection: Keep-Alive是保持长连接
                                Close服务器想断开链接

2.3. Date
    创建http报文的时间
2.4. Pragma
    HTTP/1.1之前的遗留字段,
    Pragma:no-cache表明客户端不接受代理服务器缓存
2.5 Trailer
    Trailer:Expires 在报文主体之后,分块长度0之后还有首部字段Expires
2.6. Transfer-Encoding
    指定传输报文主体是采用的编码方式
2.7. Upgrade
    检测HTTP及其他协议是否可使用更高版本通信。
2.8. Via
    追踪客户端和服务器之间请求和响应报文的传输路径
2.9. Warning
    告知用户一些缓存相关问题的警告

3. Accept
    告知服务器用户代理能够处理的媒体类型及媒体类型的相对优先级
    Accept:text/html,application/xhtml+xml

4. Accept-Charset
    通知服务器用户代理支持的字符集

5. Accept-Encoding
    内容编码的优先级顺序

6. Accept-Language
    客户端能够处理的语言集

7. Authorization
    告知服务器用户代理的认证信息(证书值)

8. Expect
    告知服务器期望出现的特定行为

9. From
    告知服务器用户代理的用户电子邮件地址

10. Host
    加host区别在同一物理机上的不同虚拟主机

11. If-Match
    只有当if成立时才能执行请求
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值