• 技术文章 >头条

    HTTP中的缓存机制

    小妮浅浅小妮浅浅2021-09-02 17:30:27原创197

    为了提高网站的访问速度和效率,我们需要设计各种各样的缓存,通过缓存可以避免不必要的额外数据传输和请求,从而提升网站的请求速度。对于HTTP协议来说,本身就自带有HTTP缓存。

    今天我们就深入探讨一下HTTP中的缓存机制和使用。

    HTTP中的缓存种类

    缓存就是将请求的资源在本地保存一份拷贝,从而在下一次请求的时候,直接返回该拷贝,不用再从服务器下载资源,从而减少了资源的传输提升了效率。

    除了直接访问和返回资源之外,HTTP中的缓存可以分成两类,一种是共享cache,也就是说不同的客户端都可以从该共享cache中获取资源,并且这些资源是多个客户端可以访问的。还有一种是私有cache,这意味着该cache只能用户或者客户端私有访问,其他用户是无权访问的。

    私有cache很好理解,我们常用的浏览器中的cache基本上就是私有cache,这些cache是浏览器独有的,并不会共享给其他的浏览器。

    共享cache主要用在一些web代理上,比如web代理服务器,因为web代理服务器可能会为众多的用户提供资源服务,对于这些用户共同访问的资源就不必要每个用户保存一份了,只需要在web代理服务器中保存一份即可,这样可以减少资源的无效拷贝。

    HTTP中缓存响应的状态

    对于HTTP缓存来说,一般缓存的是GET请求,因为GET请求除了URI之外,并没有其他多余的参数,并且其表示的意义是从服务器获取资源。

    不同的GET请求,会返回不同的状态码。

    如果是成功返回资源,则会返回200表示OK。

    如果是重定向,则返回301。如果是异常,则返回404。如果是不完全的结果,则会返回206。

    HTTP中的缓存控制

    HTTP中的缓存控制是通过HTTP头来表示的。在HTTP1.1中加入了Cache-Control,我们可以通过Cache-Control来控制请求和响应的缓存情况。

    如果不需要缓存,则使用:

    Cache-Control: no-store


    如果需要对客户端的缓存进行验证,则使用:

    Cache-Control: no-cache


    如果要强制进行验证,则可以使用:

    Cache-Control: must-revalidate


    在这种情况下,过期的资源将不会被允许使用。

    对于服务器来说,可以通过Cache-Control来控制缓存是private或者public的:

    Cache-Control: private
    Cache-Control: public


    还有一个非常重要的缓存控制就是过期时间:

    Cache-Control: max-age=31536000


    以上就是HTTP中的缓存机制,希望对大家有所帮助。更多精彩内容分享:头条

    专题推荐:http
    品易云
    上一篇:8月Web服务器排行榜出炉,Nginx崭露头角 下一篇:Fanx语言4.0发布,版本抢先看

    相关文章推荐

    • 什么是http代理IP• http代理池是什么• HTTP代理有哪些特点?• 高性能 C++ HTTP客户端的原理• 挑选http时候需要注意什么问题• 一篇了解什么是HTTP代理IP• 爬虫动态http代理ip的作用• HTTP代理IP用于网络爬虫的关键要素• http代理和SOCKS5代理IP的区别• 免费在线http代理• 免费高匿名http代理• 怎么查找免费在线http代理• http代理有哪些类别?• 独享动态http代理的好处是什么?• 选择HTTP代理要注意哪些?

    全部评论我要评论

  • 取消发布评论
  • 

    Python学习网