27、HTTP性能优化与认证机制全解析

HTTP性能优化与认证机制全解析

1. ETag机制

ETag(实体标签)是一种比Last - Modified更易实现且能避免一些竞态条件的策略。ETag头包含一个无意义的字符串,当对应的资源表示发生变化时,该字符串必须改变。

示例HTTP响应包含ETag:

HTTP/1.1 200 OK
Content-Length: 44181
Content-type: text/html
ETag: "7359b7-a37c-45b333d7"
<html>
...

当客户端再次请求同一资源时,会将 If - None - Match 头设置为原始响应中获得的ETag:

GET /some-resource HTTP/1.1
If-None-Match: "7359b7-a37c-45b333d7"

如果 If - None - Match 中的ETag与资源当前的ETag相同,服务器将发送304(未修改)状态码和空的实体主体;如果资源表示已更改,服务器将发送200(OK)状态码、完整的实体主体和更新后的ETag。

与Last - Modified需要跟踪大量时间戳不同,生成ETag无需跟踪额外数据,例如可以使用MD5哈希将任意字节字符串转换为唯一的短字符串。但在运行这些转换时,实际上已经创建了资源表示的字节字符串,若要使用ETag节省时间,需要缓存资源表示的ETag,并在资源表示更改时使缓存失效。

Last - Modified和ETag都支持条件请求

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值