Протокол HTTP 1.1

чтобы вынудить промежуточные кэши получить новую копию с первоначального сервера.

Если значения Date равны, то клиент может использовать любой ответ (или может, если он чрезвычайно предусмотрительный, запросить новый ответ). Серверы не должны полагаться на то, что клиенты способны выбрать между ответами, порожденными в течение одной секунды, если их времена устаревания накладываются.

13.3 Модель проверки достоверности (validation model).

Если кэш имеет просроченное вхождение, которое он хотел бы использовать в качестве ответа на запрос клиента, он сначала должен свериться с первоначальным сервером (или с промежуточным кэшем, обладающим свежим ответом) чтобы узнать, является ли вхождение кэша все еще пригодным для использования. Мы называем это "проверкой достоверности" вхождения кэша. Так как мы не хотим оплачивать излишнюю передачу полного ответа, когда кэшируемый нас устраивает, и так как мы не хотим оплачивать лишнюю передачу ответа туда и обратно, когда кэшируемое вхождение нас не устраивает, протокол HTTP/1.1 поддерживает использование условных методов.

Ключевые возможности протокола для обеспечения условных методов - те, что имеют отношение к "указателям достоверности (validators) кэша". Когда первоначальный сервер генерирует полный ответ, он присоединяет к нему некоторый указатель достоверности (validator), который сохраняется во вхождении кэша. Когда клиент (агент пользователя или кэш прокси-сервера) делает условный запрос на ресурс, для которого он имеет вхождение кэша, он включает связанный указатель достоверности (validator) в запрос.

Затем сервер проверяет полученный указатель достоверности (validator) на соответствие текущему указателю достоверности (validator) объекта, и, если он соответствует, то сервер посылает ответ со специальным кодом состояния (обычно 304 (не модифицирован), не содержащий тела объекта. В противном случае, он возвращает полный ответ (включая тело объекта). Таким образом, мы избегаем передачи полного ответа в случае соответствия указателя достоверности (validator), и избегаем дополнительной передачи туда-обратно в случае несоответствия.

В HTTP/1.1, условный запрос выглядит точно также, как нормальный запрос того же ресурса, за исключением того, что он содержит специальный заголовок (который включает указатель достоверности), который неявно превращает метод (обычно, GET) в условный.

Протокол содержит как положительные, так и отрицательные условия на указатели достоверности. То есть возможно запросить как метод, который будет выполнен только в случае соответствия указателя достоверности, так и метод, который будет выполнен только в случае несоответствия указателя достоверности.

Ответ, который не содержит указателя достоверности, все же может кэшироваться и обслуживаться из кэша пока не устареет, если это явно не запрещено директивой Cache-Control. Однако, кэш не может производить условный поиск, если он не имеет указателя достоверности объекта, что означает, что ответ не будет регенерирован после того, как устареет.

Библиографический список

Номер RFC

Название

Авторы

Дата

Статус

Примечания

822

STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES

David H. Crocker

August 13, 1982

Proposed Standard

Obsoletes: RFC #733

850

Standard for Interchange of USENET Messages

RFC team

June 1983

Informational

 

1036

Standard for Interchange of USENET Messages

M. Horton, R. Adams

December 1987

Proposed Standard

Obsoletes: RFC-850

1123

Requirements for Internet Hosts -- Application and Support

Robert Braden  

October 1989

Proposed Standard

 

1738

Uniform Resource Locators (URL)

Tim Berners-Lee,

Larry Masinter,

Mark McCahill  

December 1994

Proposed Standard

 

1766

Tags for the Identification of Languages

H. Alvestrand

March 1995

Standards Track

 

1808

Relative Uniform Resource Locators

Roy T. Fielding

June 1995  

Proposed Standard

 

1867

Form-based File Upload in HTML

E. Nebel, L. Masinter  

November 1995

Experimental

 

1900

Renumbering Needs Work

Brian E. Carpenter, Yakov Rekhter

February 1996

Informational

 

1945

Hypertext Transfer Protocol -- HTTP/1.0

T. Berners-Lee, R. Fielding

, H. Frystyk

May 1996

Informational

 

1950

ZLIB Compressed Data Format Specification version 3.3

P. Deutsch, J-L. Gailly

May 1996

Informational

 

1952

GZIP file format specification version 4.3

P. Deutsch

May 1996

Informational

 

2048

Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures

N. Freed, J. Klensin, J. Postel

November 1996

Best Current Practice

Obsoletes: 1521, 1522, 1590

2068

Hypertext Transfer Protocol -- HTTP/1.1

R. Fielding,

J. Gettys, J. Mogul, H. Frystyk, T. Berners-Lee

January 1997

Standards Track

 

2069

An Extension to HTTP : Digest Access Authentication

J. Franks, P. Hallam-Baker, J. Hostetler, P. Leach, A. Luotonen, E. Sink, L. Stewart

January 1997

Standards Track

 


Страница: