Сети и системы телекоммуникаций. Погонин В.А - 85 стр.

UptoLike

Method = "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE" |
"TRACE" | extension-method
extension-method = token
Список методов, применимых к ресурсу, может быть указан в поле заголовка Allow. Возвра-
щаемый код состояния ответа всегда сообщает клиенту, допустим ли метод для ресурса в настоя-
щее время, так как набор допустимых методов может изменяться динамически. Серверам следует
возвратить код состояния 405 (Метод не допустим, Method Not Allowed), если метод известен сер-
веру, но не применим для запрошенного ресурса, и 501 (Не реализовано, Not Implemented), если
метод не распознан или не реализован сервером. Список методов, известных серверу, может быть
указан в поле заголовка ответа Public.
Методы GET и HEAD должны поддерживаться всеми универсальными (general-purpose) сер-
верами. Остальные методы опциональны.
URI запроса (Request-URI) – это Единообразный Идентификатор Ресурса (URL), который
идентифицирует ресурс запроса:
Request-URI = "*" | absoluteURI | abs_path
Три опции для URI запроса (Request-URI) зависят от характера запроса. Звездочка "*" озна-
чает, что запрашивается не специфический ресурс, а сервер непосредственно, и допустим только
в том случае, когда используемый метод не обязательно обращается к ресурсу. В качестве приме-
ра:
OPTIONS * HTTP/1.1
absoluteURI необходим, когда запрос производится через прокси-сервер. Прокси-сервер перена-
правляет запрос на сервер или обслуживает его, пользуясь кэшем, и возвращает ответ. Прокси-
сервер может переслать запрос другому прокси-серверу или непосредственно серверу, определен-
ному absoluteURI. Чтобы избежать зацикливания запроса прокси-сервер должен быть способен
распознавать все имена сервера, включая любые псевдонимы, локальные разновидности, и чи-
словые IP адреса. Request-Line может быть, например, таким:
GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1
Чтобы обеспечить переход к absoluteURI во всех запросах в будущих версиях HTTP, все HTTP/1.1
сервера должны принимать absoluteURI в запросах, хотя HTTP/1.1 клиенты будут генерировать их
только в запросах к прокси-серверам.
Наиболее общая форма Request-URI используется для идентификации ресурса на первона-
чальном сервере или шлюзе. В этом случае абсолютный путь URI должен быть передан как
Request-URI, а сетевое расположение URI (net_loc) должно быть передано в поле заголовка Host.
Для последнего примера клиент, желающий получить ресурс непосредственно с первоначального
сервера, должен создать TCP соединение на 80 порт хоста "www.w3.org" и послать строки:
GET /pub/WWW/TheProject.html HTTP/1.1 Host: www.w3.org
и далее остаток запроса. Абсолютный путь не может быть пустым; если оригинальный URI пуст,
то он должен запрашиваться как "/" (корневой каталог сервера).
Если прокси-сервер получает запрос без пути в Request-URI, и метод запроса допускает форму
запроса "*", то последний прокси-сервер в цепочке запросов должен передать запрос, в котором
Request-URI равен "*". Например, запрос
OPTIONS http://www.ics.uci.edu:8001 HTTP/1.1
был бы передан прокси-сервером в виде