http缓存机制详解之--协商缓存

协商缓存
1.服务器根据http头信息中的Last-Modify/If-Modify-Since或Etag/If-None-Match来判断是否命中协商缓存。如果命中,则http返回码为304,浏览器从缓存中加载资源。

  • 浏览器第一次请求一个资源的时候,服务器返回的header中会加上Last-Modify,Last-modify是一个时间标识该资源的最后修改时间,例如Last-Modify: Thu,31 Dec 2037 23:59:59 GMT。
    在这里插入图片描述
  • 当浏览器再次请求该资源时,发送的请求头中会包含If-Modify-Since,该值为缓存之前返回的Last-Modify。服务器收到If-Modify-Since后,根据资源的最后修改时间判断是否命中缓存。

在这里插入图片描述
如果命中缓存,则返回http304,并且不会返回资源内容,并且不会返回Last-Modify。

2.Etag/If-None-Match返回的是一个校验码(ETag: entity tag)。ETag可以保证每一个资源是唯一的,资源变化都会导致ETag变化*。ETag值的变更则说明资源状态已经被修改。服务器根据浏览器上发送的If-None-Match值来判断是否命中缓存。
在这里插入图片描述
此外还想强调一下,如果命中强缓存,浏览器是不会发送第二次请求的;而协商缓存都需要发送第二次请求来判断资源是否发生改变,服务器再决定返不返回资源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
http upgrade-insecure-requests是一个HTTP头部字段,用于指定浏览器是否在不安全的HTTP请求中自动升级到安全的HTTPS协议。当该字段设置为1时,浏览器将尝试将HTTP请求升级为HTTPS请求,以提高安全性。 在默认情况下,当浏览器加载一个包含HTTP连接的网页时,网页中的资源请求(例如图片、脚本等)也会默认使用HTTP连接,即使网页本身使用HTTPS连接。这样会存在安全风险,因为HTTP连接的传输是不加密的,可能被黑客窃听、篡改等。 通过使用http upgrade-insecure-requests头部字段,网页可以向浏览器发出指令,在加载时自动将HTTP资源请求升级为HTTPS。这样可以确保网页的所有资源在传输过程中都使用了加密的HTTPS连接,提高用户的安全性。 当浏览器收到网页响应时,会检查其中的资源链接。如果检测到某些资源是使用HTTP连接的,而网页中存在http upgrade-insecure-requests字段并被设置为1,浏览器就会自动将这些资源请求转为HTTPS。整个过程对于用户来说是透明的,用户不需要做任何操作。 需要注意的是,使用http upgrade-insecure-requests头部字段仅仅是告诉浏览器去升级HTTP资源为HTTPS请求,但并不能完全确保资源请求都成功升级为HTTPS。如果某些资源服务器不支持HTTPS,或者HTTPS连接存在错误,那么这些资源仍然会以不安全的HTTP方式加载。 总之,http upgrade-insecure-requests头部字段可以提高网页和资源的安全性,但仍需要保证资源服务器的支持和HTTPS连接的正确配置。同时,网站开发人员和管理员也应该注意安全性措施,确保使用HTTPS连接和加密传输用户的敏感数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值