Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 网站如何改变已经标注了很长有效期的内容?_Http_Http Headers - Fatal编程技术网

Http 网站如何改变已经标注了很长有效期的内容?

Http 网站如何改变已经标注了很长有效期的内容?,http,http-headers,Http,Http Headers,如果服务器为资源设置了一个非常遥远的到期日期(例如20年后),然后在出现一些新需求后,它决定必须更改资源,会发生什么情况?例如,一些网站的CSS文件的有效期似乎很长。网站是否可以发送另一个标题来取消以前的缓存资源?否。一旦您有一个很长的到期日,您就不知道在到期日之前人们是否仍在使用该标题 “改变”事物的方式通常分为两类: 创建唯一的文件名,以便对其进行版本控制。例如,styles.57ab85ca183.css而不是styles.css。或者可能是styles.css?v=12345。这要求您在

如果服务器为资源设置了一个非常遥远的到期日期(例如20年后),然后在出现一些新需求后,它决定必须更改资源,会发生什么情况?例如,一些网站的CSS文件的有效期似乎很长。网站是否可以发送另一个标题来取消以前的缓存资源?

否。一旦您有一个很长的到期日,您就不知道在到期日之前人们是否仍在使用该标题

“改变”事物的方式通常分为两类:

  • 创建唯一的文件名,以便对其进行版本控制。例如,styles.57ab85ca183.css而不是styles.css。或者可能是styles.css?v=12345。这要求您在代码中引用特定的版本,因此确实增加了一点复杂性,但有一些工具可以实现这一点

  • 有效期很短。这通常是人们对主页所做的事情(因为不可能使用版本化路径更改该位置)


  • 谢谢,我只是想知道为什么不使用嵌入式ETag并控制是否必须从服务器端传递新内容?因为它很慢。您需要为每个请求调用服务器。对于小型资源,它通常可以快速地重新下载整个资源,就像检查它的状态一样。从而否定了缓存的所有好处。