Здравствуйте.
Есть потребность в реализации вот такого поведения:
https://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html
Some HTTP methods MUST cause a cache to invalidate an entity. This is either the entity referred to by the Request-URI, or by the Location or Content-Location headers (if present). These methods are:
- PUT
- DELETE
- POST
Это нужно вот для чего, есть Nginx кеш динамических ответов от бекенда, его TTL 3 days, URI: /news/top/
Авторизованный пользователь добавляет новую новость, методом POST на URI: /news/top/
Бекенд сохраняет этот контент и отдает клиенту НТТР статус 200.
В соответствии с RFC 2616, хотелось бы чтобы Nginx, очистил кеш URI: /news/top/ потому что на этот URI пришел запрос методом POST и бекенд ответил 200 ОК, что означает что все нормально контент изменился и кеш этого URI надо инвалидировать.
Тоже самое с методом DELETE.
Вот с методом PUT и заголовком Content-Location можно делать ещё более крутые штуки, например авторизованный пользователь отправляет PUT запрос на URI: /news/rest.php?id=150
Бекенд сохраняет этот контент и отдает клиенту НТТР статус 200 с заголовком Content-Location /news/150/ и в теле ответа уже новый контент который нужно сохранить в кеше использую как URI значения заголовка Content-Location /news/150/ т.е. Nginx должен инвалидировать кеш в ключе которого использовался URI /news/150/.
Это очень удобный функционал, и он описан в спецификации, его можно реализоваь в Nginx?
Спасибо.
Есть потребность в реализации вот такого поведения:
https://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html
Some HTTP methods MUST cause a cache to invalidate an entity. This is either the entity referred to by the Request-URI, or by the Location or Content-Location headers (if present). These methods are:
- PUT
- DELETE
- POST
Это нужно вот для чего, есть Nginx кеш динамических ответов от бекенда, его TTL 3 days, URI: /news/top/
Авторизованный пользователь добавляет новую новость, методом POST на URI: /news/top/
Бекенд сохраняет этот контент и отдает клиенту НТТР статус 200.
В соответствии с RFC 2616, хотелось бы чтобы Nginx, очистил кеш URI: /news/top/ потому что на этот URI пришел запрос методом POST и бекенд ответил 200 ОК, что означает что все нормально контент изменился и кеш этого URI надо инвалидировать.
Тоже самое с методом DELETE.
Вот с методом PUT и заголовком Content-Location можно делать ещё более крутые штуки, например авторизованный пользователь отправляет PUT запрос на URI: /news/rest.php?id=150
Бекенд сохраняет этот контент и отдает клиенту НТТР статус 200 с заголовком Content-Location /news/150/ и в теле ответа уже новый контент который нужно сохранить в кеше использую как URI значения заголовка Content-Location /news/150/ т.е. Nginx должен инвалидировать кеш в ключе которого использовался URI /news/150/.
Это очень удобный функционал, и он описан в спецификации, его можно реализоваь в Nginx?
Спасибо.