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

2 etag http last-modified http-headers

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

我不确定是PHP还是Nginx问题

但我可以发送Last-Modified标头

我发现我可以做这样的事情来代替etag

// response
last-modified: 2929606074

// request
if-modified-since: 2929606074
Run Code Online (Sandbox Code Playgroud)

我应该用这种方式吗?

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

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

// response
last-modified: Tue, 20 Nov 2018 01:22:01 GMT
Run Code Online (Sandbox Code Playgroud)

Mar*_*sch 5

不,你不应该。HTTP明确建议发送两个标头

HTTP / 1.1源服务器的首选行为是发送一个强实体标签和一个Last-Modified值。

ETagLast-Modified具有非常相似的目的,但语义不同。使用ETag可以标识实体,使用Last-Modified可以标识分辨率为1秒的资源日期。客户端行为也不同:

  • 必须使用该实体标签
  • 应该使用Last-Modified
  • 应该同时使用