HTTP - 我应该使用Last-Modified作为Etag吗?

3

我无法从我的网站发送Etag标头

我不确定这是PHP还是Nginx的问题

但我可以发送一个Last-Modified标头

我发现我可以像这样做来替换etag

// response
last-modified: 2929606074

// request
if-modified-since: 2929606074

我应该使用这种方式吗?

我认为另一种方法是使用uniqid值(2929606074)减去当前时间戳

例如:2929606074 - 1386929153 = 1542676921,将其设置为最后修改日期。

// response
last-modified: Tue, 20 Nov 2018 01:22:01 GMT

Last-Modified和if-modified-since需要一个HTTP日期,而不是一个数字。 - Julian Reschke
1个回答

7
不,你不应该只发送一个头部信息。HTTP明确建议同时发送ETagLast-Modified两个头部信息:“对于HTTP/1.1源服务器而言,首选行为是同时发送强实体标记和最后修改时间”ETagLast-Modified的目的非常相似,但语义不同。使用ETag可以识别实体,而使用Last-Modified可以以1秒的分辨率识别资源的日期。此外,客户端的行为也不同:
- 必须使用实体标记 - 应该使用最后修改时间 - 应该同时使用两者

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接