Запрашиваемый URI (Request-URI) - это Единообразный Идентификатор
Ресурса (URL, раздел 3.2), который идентифицирует ресурс запроса.
Request-URI = "*" | absoluteURI | abs_path
Три опции для запрашиваемого URI (Request-URI) зависят от
характера запроса. Звездочка "*" означает, что запрос обращается
не к специфическому ресурсу, а к серверу непосредственно, и
допускается только в том случае, когда используемый метод не
обязательно обращается к ресурсу.
В качестве примера:
OPTIONS * HTTP/1.1
absoluteURI необходим, когда запрос производится через
прокси-сервер. Прокси-сервер перенаправляет запрос на сервер или
обслуживает его, пользуясь кэшем, и возвращает ответ. Обратите
внимание, что прокси-сервер МОЖЕТ переслать запрос другому
прокси-серверу или непосредственно серверу, определенному
absoluteURI. Чтобы избежать зацикливания запроса прокси-сервер
ДОЛЖЕН быть способен распознавать все имена сервера, включая любые
псевдонимы, локальные разновидности, и числовые IP адреса.
Request-Line может быть, например, таким:
Чтобы обеспечить переход к absoluteURI во всех запросах в будущих
версиях HTTP, все HTTP/1.1 серверы ДОЛЖНЫ принимать absoluteURI
в запросах, хотя HTTP/1.1 клиенты будут генерировать их только в
запросах к прокси-серверам.
Наиболее общая форма Request-URI - та, которая используется для
идентификации ресурса на первоначальном сервере или шлюзе. В этом
случае абсолютный путь URI (смотрите раздел 3.2.1, abs_path)
ДОЛЖЕН быть передан как 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
равен "*". Например запрос
после соединения с портом 8001 хоста "www.ics.uci.edu".
Request-URI передается в формате, определенном в разделе 3.2.1.
Первоначальный сервер ДОЛЖЕН декодировать Request-URI, чтобы
правильно интерпретировать запрос. Серверам СЛЕДУЕТ отвечать на
недопустимые Request-URI соответствующим кодом состояния.
В запросах, которые передаются далее, прокси-сервера никогда НЕ
ДОЛЖНЫ перезаписывать часть "abs_path" запрашиваемого URI
(Request-URI), за исключением случая, отмеченного выше, когда
пустой abs_path заменяется на "*", независимо от внутренней
реализации прокси-сервера.
Обратите внимание: правило "ничто не перезаписывать"
предохраняет прокси-сервера от изменения значения запроса,
в котором первоначальный сервер неправильно использует не
зарезервированные символы URL для своих целей. Реализаторам
следует знать, что некоторые до-HTTP/1.1 прокси-сервера, как
известно, перезаписывали Request-URI.