高级前端
http
【Q579】http 缓存控制中 Cach-Control 为 public 与 private 有何区别

http 缓存控制中 Cach-Control 为 public 与 private 有何区别

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 595 (opens in a new tab)

Author 回答者: Kiera569 (opens in a new tab)

cache-control:默认值是private, privite 响应只能为私有缓存,不能在用户间共享 public 公有缓存,可以在多用户间共享

Author 回答者: leohxj (opens in a new tab)

具体是什么场景下使用?

Author 回答者: zxw94FE (opens in a new tab)

HTTP的服务端缓存主要由代理服务器来实现,代理服务器收到源服务器的响应之后将报文转发给客户端的同时也存入自己的cache里,下次再有相同的请求就可以直接发送304或者缓存数据,节省源服务器的成本。 因为代理服务器既是服务端,又是客户端的特性,有一些特殊的cache-control属性: 其中就有 private 跟 public

private:只允许在客户端缓存,不允许在代理服务器上缓存 public:完全公开,客户端跟代理服务器都可以缓存