freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

解读HTTP 缓存
无名草 2021-12-22 09:56:54 219999
所属地 湖南省

前言

当有人访问一个网站时,该网站需要显示和运行的一切都必须来自某个地方。所有文本、图像、CSS 样式、脚本、媒体文件等都必须由浏览器检索才能显示或执行。您可以让浏览器选择从何处检索资源,这会对页面的加载速度产生很大影响。

浏览器第一次加载网页时,会将页面资源存储在 HTTP 缓存中。下次浏览器访问该页面时,它可以在缓存中查找先前获取的资源并从磁盘检索它们,这通常比从网络下载它们的速度快。

虽然 HTTP 缓存是根据 Internet 工程任务组(IETF) 规范标准化的 ,但浏览器可能有多个缓存,它们在获取、存储和保留内容的方式上有所不同。

当然,每个首次访问您页面的访问者都没有为该页面缓存任何内容。即使是重复访问者,HTTP 缓存中的内容也可能不多;他们可能已手动清除它,或将浏览器设置为自动清除,或使用控制键组合强制加载新页面。尽管如此,您的大量用户可能会重新访问您的网站,其中至少有一些组件已经缓存,这可能会对加载时间产生巨大影响。最大化缓存使用率对于加快回访速度至关重要。

HTTP 缓存的工作原理

浏览器发出的所有 HTTP 请求首先路由到浏览器缓存,以检查是否存在可用于满足请求的有效缓存响应。如果匹配,则从缓存中读取响应,从而消除网络延迟和传输产生的数据成本。

HTTP 缓存的行为由 请求标头响应标头的组合控制。在理想情况下,您可以控制 Web 应用程序的代码(将确定请求标头)和 Web 服务器的配置(将确定响应标头)。

缓存头

缓存头的两种主要类型, cache-control和 expires,定义了资源的缓存特性。通常, cache-control被认为是比 expires更现代和灵活的方法,但可以同时使用两个标头。

缓存标头应用于服务器级别的资源,通过识别资源或资源类型(例如图像或 CSS 文件),然后使用所需的缓存选项指定资源的标头来启用缓存。

缓存控制

缓存控制有许多选项,通常称为指令,可以设置它们来具体确定如何处理缓存请求。

  • no-cache:指定可以缓存内容,但如果是这样,则必须在为客户端提供服务之前对每个请求重新验证。这会强制客户端检查新鲜度,但允许它避免在资源未更改的情况下再次下载该资源。与no-store互斥。

  • no-store:表示内容实际上不能被任何主缓存或中间缓存以任何方式缓存。对于可能包含敏感数据的资源,或几乎肯定会随访问而变化的资源,这是一个不错的选择。与no-cache互斥。

  • public:表示内容可以被浏览器和任何中间缓存缓存。覆盖使用 HTTP 身份验证的请求的默认私有设置。与private互斥。

  • private:指定可能由用户浏览器存储但不能被任何中间缓存缓存的内容。通常用于用户特定但不是特别敏感的数据。与public互斥。

  • max-age:定义内容在必须重新验证或从原始服务器再次下载之前可以缓存的最长时间。

过期缓存

通过为某些类型的文件指定到期时间或到期时间来启用缓存,这告诉浏览器在从服务器请求新副本之前使用缓存资源的时间。expires 标头只是设置内容应该过期的未来时间。在那之后,对内容的请求必须返回到原始服务器。随着更新和更灵活的缓存控制标头,过期标头通常用作后备。

总结

缓存是一种可靠且简单的方式,可以提高页面加载速度,从而提高用户体验。它足够强大,可以允许特定内容类型的复杂细微差别,但足够灵活,可以在站点内容更改时轻松更新。

# web安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 无名草 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
无名草 LV.6
这家伙太懒了,还未填写个人描述!
  • 50 文章数
  • 86 关注者
文件上传解析漏洞(三)
2022-03-27
服务器端请求伪造--SSRF
2022-03-24
逻辑漏洞之支付漏洞
2022-03-19
文章目录