Методы доступа

Методы доступа — в настоящее время в практике World Wide Web обычно используются только три таких метода: POST, get, head.

get — метод, позволяющий получить данные, заданные в форме URI в запросе ресурса. Если ссылаются на программу, то возвращается результат выполнения этой программы, но не ее текст. Дополнительные данные, которые надо передать для обра­ботки, кодируются в запрос ресурса. Имеется разновидность ме­тода get — условный get. При использовании этого метода сер­вер ответит на запрос только в том случае, если будут выполне­ны условия передачи. Это позволяет разгрузить сеть, избавив ее от передачи ненужной информации. При использовании метода get в поле тела ресурса возвращается собственно затребованная информация (например, текст HTML-документа).

head — в отличие от get не возвращает тела ресурса. Ис­пользуется для получения информации о ресурсе и для тестиро­вания гипертекстовых ссылок.

post — метод разработан для передачи большого объема ин­формации на сервер. Им пользуются для аннотирования сущест­вующих ресурсов, посылки почтовых сообщений, работы с фор­мами интерфейсов к внешним базам данных и внешним испол­няемым программам. В отличие от get и head, в post передается тело ресурса, которое является информацией из поля форм или других источников ввода.

Необходимо отметить, что в версии HTTP 1993 г. насчитыва­лось 13 различных методов доступа. Среди этих методов были такие, например, как:

checkout — защита от несанкционированного доступа;

put — замена содержания информационного ресурса;

delete — удаление ресурса;

link — создание гипертекстовой ссылки;

unlink — удаление гипертекстовой ссылки;

space jump — переход по координатам;

search — поиск.

Из этого списка видно, что протокол был действительно максимально ориентирован на работу с гипертекстовыми рас­пределенными системами, причем не только с точки зрения по­требителя, но и с точки зрения разработчика. Однако, как пока­зал опыт, практически не использовались методы доступа, свя­занные с изменением информации, по следующим причинам:

• безопасность — ни один администратор не позволит внеш­нему пользователю менять информацию на его сервере;

• избыточность — методы spacejumpи search были с успе­хом заменены на функционально аналогичные CGI-скрипты;

• не нашли практической реализации методы установления/ удаления ссылок linkи unlink.

Ответ сервера может быть, как и запрос, упрощенным или полным. При упрощенном ответе сервер возвращает только тело ресурса (например, текст HTML-документа). При полном ответе клиенту возвращаются строка состояния (Status-Line), общий за­головок, заголовок ответа, заголовок ресурса и тело ресурса. Строка состояния состоит из версии протокола, кода возврата и краткого описания этого кода. Заголовок ответа сервера может состоять из адреса URL запрашиваемого ресурса, и/или наиме­нования программы сервера, и/или кода идентификации для ра­боты в защищенном режиме. Состав полей заголовка ресурса яв­ляется общим и для запроса клиента, и для ответа сервера и со­стоит из разрешения на метод доступа, типа кодировки, тела ресурса (содержания ресурса), длины тела ресурса, типа ресурса, времени действия данной копии ресурса, времени последнего изменения ресурса и расширения заголовка.