nginx не соответствует слабым etags
Фон:
nginx генерирует слабые etags, когда Accept-Encoding: gzip
отправлено клиентом https://twitter.com/samsaffron/status/486387129165942784
Я использую Restrict, чтобы звонить на конечные точки
Рестэнгл получает слабый этаг и отправляет его в if-None-Match
заголовок без каких-либо изменений в etag
https://github.com/mgonto/restangular/blob/d55c4392b184e659c11f50e225d64c3a04da6572/src/restangular.js#L588
Но nginx не будет соответствовать этаг с тем, что он получает в if-None-Match
, он отправит 200 OK
http ответ, в то время как он должен отправить отправить 304 Not Modified
http ответ.
Почтальон:
Если я пошлю этаг как сильный этаг в if-None-Match
заголовок W/
), nginx отправит 304 ответа.
Почтальон:
Как это исправить?
Следует оголить W/
из Etag, когда он отправляет его как if-None-Match
?
MDN говорит, что W/ не нужно отправлять в if-None-Match
may be prefixed by `W/` to indicate that the weak comparison algorithm should be used (This is useless with If-None-Match as it only uses that algorithm).
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match
Или nginx должен быть в состоянии соответствовать этому, даже если это слабый etag?
nginx версия 1.13.3