Я в настоящее время создаю Сценарий PHP, который ответит на HTTP "304 Не Измененный" при необходимости.
(См. вопрос № 2086712 для того, что я делаю до сих пор).
В настоящее время я отвечаю на следующее:
Но я узнал, что еще 3 заголовка могут инициировать "условное выражение, ДОБИРАЮТСЯ" (См. http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3):
Последние 2 кажутся irrevelent моей системе кэширования (они, кажется, используются при возобновлении "больших" загрузок), но я не нашел, могло ли "Если-соответствие" быть полезным в моей системе.
"Если-соответствие" используется в прокси или веб-браузере для "регулярного" содержания страницы? Как "Если-соответствие" отличается, чем "If-None-Match"?
Я должен поддерживать те 3 или просто некоторые из них? Любое приветствие справки!
Сервер ДОЛЖЕН вернуть ответ 412 (Precondition Failed), если:
If-Match не должен быть проигнорирован, если:
Заключение по if-match:
Сервер ДОЛЖЕН вернуть ответ 412 (Precondition Failed), если:
If-Unmodified-Since должен быть проигнорирован, если
Informally, его значение будет следующим: "если сущность неизменна, отправьте мне ту часть(ы), которую(ые) я пропустил(ы); в противном случае, отправьте мне всю новую сущность"
Preconусловия:
If-диапазона
SHOULD должен использоваться только вместе с заголовком Range
, и ДОЛЖЕН должен быть проигнорирован, если запрос не включает заголовок Range
, или если сервер не поддерживает операцию субдиапазона. Ответ сервера ДОЛЖЕН предоставить 206 (Частичное содержимое), если заголовок If-диапазона
совпадает с текущим тегом сущности для данной сущности. В противном случае, сервер ДОЛЖЕН вернуть всю сущность, используя ответ 200 (OK).
Наличие следующей комбинации заголовков приводит к неопределенному результату:
Эти правила были разбиты на следующие (можно найти в RFC2616):