Методы доступа
Методы доступа — в настоящее время в практике 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 запрашиваемого ресурса, и/или наименования программы сервера, и/или кода идентификации для работы в защищенном режиме. Состав полей заголовка ресурса является общим и для запроса клиента, и для ответа сервера и состоит из разрешения на метод доступа, типа кодировки, тела ресурса (содержания ресурса), длины тела ресурса, типа ресурса, времени действия данной копии ресурса, времени последнего изменения ресурса и расширения заголовка.