Поддерживает ли Chrome заголовок HTTP Vary

Поддерживает ли кэш Chrome заголовок HTTP Vary? На конкретный URL-запрос сервер отвечает двумя разными html-файлами в зависимости от того, является ли это ajax-запросом или нет. Поэтому я добавил заголовок Vary в X-Requested-With. Я ожидал, что Chrome запишет две записи в кеш, но, похоже, это не так. Я всегда получаю попадание в кеш первого запроса, который я сделал. Это нормальное поведение?

Благодарю.

2 ответа

Решение

Для записи. Я не смог использовать заголовок HTTP Vary с X-Requested-With в Chrome. Chrome не учитывал заголовок HTTP Vary при кэшировании. Таким образом, попадание в кэш вернуло всегда одно и то же содержимое.

В качестве обходного пути я добавил строку вопроса (например,? Ajax=1) только при выполнении запроса с ajax.

Пример: http://localhost/myrequest.php http://localhost/myrequest.php?ajax=1

Таким образом, Chrome хранит две записи в кэше, одну с ajax, а другую без.

Кажется, это ошибка в Chrome. При использовании заголовка Vary для вычисления своего ключа кэша Chrome выполняет поиск с учетом регистра, который не работает, так как заголовки хранятся в нижнем регистре.

В вашем примере Chrome ищет X-Requested-With. Если вы измените значение заголовка Vary для x-required-with, оно должно работать.

РЕДАКТИРОВАТЬ: я был на самом деле ошибался. Может быть, мне не хватает сна. Он также не работает с использованием имен заголовков в нижнем регистре. Извини за это.

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