Кеш HTTP зависит от настраиваемого заголовка - PullRequest
1 голос
/ 02 августа 2020
• 1000 отображаемая валюта из выбранной валюты на моем сайте, и я использую сеанс для хранения выбранной валюты вместо использования параметра запроса в URL-адресе.

Я хочу кэшировать ответы на основе валют, я создал настраиваемый заголовок для каждый ответ x-currency: currency_value и установите vary заголовок vary: x-currency, чтобы указать http cache создать другой кэшированный контент по валюте.

но я не понимаю момент, когда пользователь отправляет запрос на http cache, этот заголовок запроса не включается в настраиваемый заголовок x-currency: current_value, поэтому как http cache знает предпочтительную валюту для предоставления правильного ответа на user?

Я также думаю о вариации на cook ie, но, похоже, он обслуживает кешированный ответ уникальному пользователю, а не группе пользователей с той же предпочтительной валютой.

* 102 5 * пожалуйста, покажите мне, что я неправильно понял, или какие-либо альтернативные решения для этого!

1 Ответ

1 голос
/ 03 августа 2020

Вы неправильно поняли, какой заголовок должен указывать заголовок Vary. Vary :

описывает, какие части сообщения запроса , помимо метода, поля заголовка хоста и цели запроса, могут влиять на процесс исходного сервера для выбора и представления этого ответа.

В этом случае вы говорите, что:

используете сеанс для хранения выбранной валюты

Это означает, что на выбранный вами ответ влияет заголовок Cookie, в котором был отправлен сеанс пользователя. Поэтому вы должны отправить:

Vary: cookie

в ответе.

В целях разработки вы указываете, что выбрали хранилище сеанса:

вместо использования параметра запроса в URL-адресе.

, а также упоминаете:

Я также думаю о вариациях на Cook ie, но, похоже, это кешированный ответ для уникального пользователя, а не для группы пользователей с той же предпочтительной валютой.

Ты прав. Использование параметра запроса будет значительно более кэшируемым, поскольку запросы для одной и той же валюты можно будет использовать повторно. Vary: cookie по сути то же самое, что Cache-control: private, поскольку у двух пользователей не будет одного и того же приготовителя сеанса ie.

...