UfoStation

HTTP 1.0. Расширяемость как основа

Период с 1991 по 1995 год характеризуется быстрым развитием спецификации HTML, появлением нового поколения программного обеспечения, известного как “веб-браузер”, а также появлением и быстрым ростом ориентированной на потребителя публичной инфраструктуры Интернета.

В 1996 году появился стандарт HTTP 1.0, RFC 1945.

Самым важным нововведением в протоколе было то, что теперь и HTTP-запросы и HTTP-ответы содержали заголовки. В частности, стандарт определил 16 HTTP-заголовков: Allow, Authorization, Content-Encoding, Content-Length, Content-Type, Date, Expires, From, If-Modified-Since, Last-Modified, Location, Pragma, Referer, Server, User-Agent, WWW-Authenticate

Заголовки позволили передавать метаданные, протокол стал чрезвычайно гибким и расширяемым. Например, теперь можно передавать документы, отличные от обычных HTML-файлов, благодаря заголовку Content-Type. Также протокол привнес возможности аутентификации пользователя, сжатия передаваемых данных, кэширование ресурсов и прочие.

Несколько видоизменились запросы. Для обратной совместимости в запросах теперь добавляется версия протокола HTTP/1.0 после названия метода и адреса запроса.

GET /rfc/rfc1945.txt HTTP/1.0
User-Agent: CERN-LineMode/2.15 libwww/2.17b3
Accept: */*

Кстати, несмотря на то, что появилась возможность передавать документы с указанием их кодировки, HTTP-заголовки и запроса и ответа по прежнему используют ASCII кодировку.

На запрос выше сервер мог ответить так:

HTTP/1.0 200 OK
Content-Type: text/plain
Content-Length: 137582
Expires: Thu, 01 Dec 1997 16:00:00 GMT
Last-Modified: Wed, 1 May 1996 12:45:26 GMT
Server: Apache 0.84

**plain-text response here**

Как видно выше, в ответах появились статус коды, которые находятся в конце первой строки. Статус коды могли сообщать не только об успешном ответе на запрос, но также об ошибках как на стороне сервера, так и в запросе клиента, или могли сигнализировать то, что необходимо перенаправить пользователя на другую страницу.

Помимо всего прочего другим важным нововведением было использование дополнительных методов: POST, HEAD. В особенности большую роль сыграл метод POST. С этого момента веб-страницы используются не только для просмотра гипертекста, но и для передачи данных на сервер, которые сервер мог превратить в новое сообщение на доске объявлений, в новость в группе новостей, или сервер мог ответить каким-нибудь блоком данных на отправленную ранее форму запроса.

POST /~hy556/cgi-bin/post-query HTTP/1.0
Accept: text/html,video/mpeg,image/gif,application/postscript
User-Agent: Lynx/2.8.4 libwww/5.4.0
From: giannak@csd.uoc.gr
Content-Type: application/x-www-form-urlencoded
Content-Length: 150

org=Distributed%20Systems&professor=Marazakis&browsers=lynx

Сопроводительные материалы

HyperText Transfer Protocol: A Short Course, John Yannakopoulos, 2003
Brief History of HTTP, High Performance Browser Networking

Нашли ошибку или опечатку? Предложите исправление

← Вернуться в блог