мы написали веб-приложение ASP.NET core 2.2, которое в основном предоставляет несколько контроллеров веб-API, и мы использовали ResponseCachingMiddleware для реализации кэша ответов на стороне сервера в нашем конвейере промежуточного программного обеспечения.
Мы следовали этому руководству Microsoft и решили добавить заголовок ответа HTTP Vary, чтобы каждый ответ нашего приложения содержал следующий заголовок: Vary: Accept-Encoding, Accept-Charset
.
Это необходимо, как объяснено в руководстве, связанном выше, для того, чтобы кэш ответов мог обрабатывать заголовки клиентских запросов, чтобы кэшированные ответы использовались тогда и только тогда, когда они совместимы с клиентским запросом.
Тестирование с почтальоном. Я заметил, что при развертывании приложения в Azure (для этого мы использовали стандартную службу приложений Azure), заголовок ответа Vary не тот, который я ожидал: кажется, что сам Azure добавляет значение Accept-Encoding
так, чтобы значение для заголовка Vary было установлено как Accept-Encoding, Accept-Charset,Accept-Encoding
(это комбинация значения, установленного нашим приложением, и значения, которое, я полагаю, автоматически добавляется Azure).
Тем не менее, у меня есть пара вопросов:
- является ли дополнительное значение
Accept-Encoding
действительно добавленным лазурным хостом?
- Есть ли способ настроить заголовки HTTP, добавленные узлом Azure (если есть)?
- является ли значение
Accept-Encoding, Accept-Charset,Accept-Encoding
допустимым значением для заголовка Vary
? это будет работать, как ожидалось, даже если мы повторим значение дважды?