sap*_*Pro 157 protocols http httpresponse request http-headers
我在维基百科上读到了Pragma标题,其中说:
"Pragma:no-cache标头字段是用于请求的HTTP/1.0标头.它是浏览器告诉服务器和任何中间缓存它需要新资源的一种手段,而不是服务器告诉浏览器不要缓存资源.一些用户代理确实在响应中注意这个头,但HTTP/1.1 RFC专门警告不要依赖这种行为."
但我还不明白它的作用?是什么之间的差异Cache-Control,其值是头no-cache和Pragma其值也no-cache?
小智 179
Pragma是HTTP/1.0实现,cache-control是同一概念的HTTP/1.1实现.它们都旨在阻止客户端缓存响应.较旧的客户端可能不支持HTTP/1.1,这就是该标头仍在使用的原因.
cns*_*nst 94
没有区别,除了Pragma仅定义为适用于客户端的请求,而客户端Cache-Control的请求和服务器的回复都可以使用.
因此,就标准而言,它们只能从发出请求的客户端和服务器接收来自客户端的请求的角度进行比较.该http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32定义场景如下:
HTTP/1.1缓存应该像处理客户端发送"Cache-Control:no-cache"一样对待"Pragma:no-cache".在HTTP中不会定义新的Pragma指令.
Run Code Online (Sandbox Code Playgroud)Note: because the meaning of "Pragma: no-cache as a response header field is not actually specified, it does not provide a reliable replacement for "Cache-Control: no-cache" in a response
我将如何阅读以上内容:
如果您正在编写客户并且需要no-cache:
Pragma: no-cache在您的请求中使用,因为您可能不知道Cache-Control服务器是否支持;Cache-Control如果您正在编写服务器:
Cache-Control; 如果没有找到,检查Pragma: no-cache并执行Cache-Control: no-cache逻辑;Cache-Control.当然,现实可能与RFC中的书面或暗示有所不同!
Ian*_*oyd 10
| Stop using | Replaced with |
| (HTTP 1.0) | (HTTP 1.1 - 1999) |
|---------------------|----------------------------------|
| Expires: [date] | Cache-Control: max-age=[seconds] |
| Pragma: no-cache | Cache-Control: no-cache |
Run Code Online (Sandbox Code Playgroud)
如果是在1999年之后,并且您仍在使用Expires或Pragma,那说明您做错了。
我在看你Stackoverflow:
Run Code Online (Sandbox Code Playgroud)200 OK Pragma: no-cache Content-Type: application/json X-Frame-Options: SAMEORIGIN X-Request-Guid: a3433194-4a03-4206-91ea-6a40f9bfd824 Strict-Transport-Security: max-age=15552000 Content-Length: 54 Accept-Ranges: bytes Date: Tue, 03 Apr 2018 19:03:12 GMT Via: 1.1 varnish Connection: keep-alive X-Served-By: cache-yyz8333-YYZ X-Cache: MISS X-Cache-Hits: 0 X-Timer: S1522782193.766958,VS0,VE30 Vary: Fastly-SSL X-DNS-Prefetch-Control: off Cache-Control: private
tl; dr:Pragma是HTTP / 1.0的旧版,自Internet Explorer 5或Netscape 4.7起就不再需要。除非您期望某些用户正在使用IE5,否则可以安全地停止使用它。
[date] 不建议使用-HTTP 1.0)[seconds]和条件请求:
Etag: W/“1d2e7–1648e509289”If-None-Match: W/“1d2e7–1648e509289”304 Not Modifiedlast-modified: Thu, 09 May 2019 19:15:47 GMTIf-Modified-Since: Fri, 13 Jul 2018 10:49:23 GMT304 Not Modified最后修改时间:周四,2019年5月9日19:15:47 GMT