Как работает кэширование HTTP на прокси-сервере?

Насколько я понимаю, кэширование — одна из основных функций прокси-сервера. В настоящее время я пытаюсь разработать простой, и я хотел бы точно знать, как работает кэширование.

Интуитивно я думаю, что это в основном связь между запросом и ответом. Например: на следующий запрос: "GET google.com" вы получите следующий ответ: "HTTP/1.0 200 OK..."

Таким образом, всякий раз, когда прокси-сервер получает запрос на этот URL-адрес, он может ответить кэшированным ответом (сейчас меня не очень беспокоит, когда обслуживать кэшированный ответ и когда на самом деле отправлять запрос в реальный пункт назначения).

Чего я не понимаю, так это того, как установить связь между запросом и ответом, поскольку в ответе HTTP нет поля, говорящего «эй, это ответ, который вы получаете, когда запрашиваете URL-адрес X» (или это так?) .

Должен ли я получить эту информацию, проанализировав базовые протоколы? Если да, то как?


person André Lourenço    schedule 02.08.2013    source источник


Ответы (1)


Ваш кеш-прокси-сервер уже запущен, когда поступает запрос. Следовательно, у вас есть запрошенный URL-адрес ресурса. Затем вы просматриваете свой кеш и пытаетесь найти кешированный ресурс для запрошенного URL-адреса ресурса, если вы не можете найти ресурс в своем кеше (или кеш устарел), вы извлекаете данные из источника. Имейте в виду, что вы должны аннулировать кешированный ресурс, если вы получаете запрос PUT, POST или DELETE.

person Frank Olschewski    schedule 11.09.2013