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 ответ.
Почтальон: слабый этап, 200 ответ

Если я пошлю этаг как сильный этаг в if-None-Match заголовок W/), nginx отправит 304 ответа.
Почтальон: сильный этаг, 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

0 ответов

Другие вопросы по тегам