Время прочтения статьи
Текущий рейтинг статьи 4.5 4.5
Количество прочтений 22708
Дата добавления 2013-01-07
Протокол HTTP. История создания и развития, назначение, структура протокола, преимущества и недостатки

Что такое HTTP

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

Разработка протокола HTTP

HTTP - аббревиатура, расшифровав которую получаем HyperText Transfer Prоtocоl — "протокол передачи гипертекста". Обычно гипертекст представляется набором текстов, содержащих узлы перехода между ними, которые позволяют избирать читаемые сведения или последовательность чтения.

В компьютерной терминологии, гипертекст — текст, сформированный с помощью языка разметки, потенциально содержащий в себе гиперссылки, то есть ссылки на другой элемент в самом документе, а также на другой объект, расположенный на локальном диске или в компьютерной сети, либо на элементы этого объекта.

Разработчиком протокола HTTP был британский учёный и сотрудник ЦЕРН Тим Бернерс-Ли - идеолог создания "всемирной паутины" (на фото слева). Работа над созданием протокола длилась около двух лет и уже в марте 1991 года было начато использование протокола, как механизма для доступа к документам в Интернете и облегчения навигации посредством использования гипертекста.

Самая ранняя версия протокола HTTP/0.9 была впервые опубликована в январе 1992 года. Спецификация протокола привела к упорядочению правил взаимодействия между клиентами и серверами HTTP, а также чёткому разделению функций между этими двумя компонентами. Были задокументированы основные синтаксические и семантические положения.

В мае 1996 года для практической реализации HTTP был выпущен информационный документ RFC 1945, послуживший основой для реализации большинства компонентов более поздней версии HTTP/1.0. И, наконец, в июне 1999 года была принята версия протокола HTTP/1.1, использующаяся и сегодня.

Основой HTTP является технология «клиент-сервер», то есть предполагается существование потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом.

Структура протокола

Каждое HTTP-сообщение состоит из трёх частей, которые передаются в указанном порядке:

  • Стартовая строка (Starting line) — определяет тип сообщения;
  • Заголовки (Headers) — характеризуют тело сообщения, параметры передачи и другие сведения;
  • Тело сообщения (Message Body) — непосредственно данные сообщения. Обязательно должно отделяться от заголовков пустой строкой.

Из этих трёх частей обязательной является стартовая строка, а заголовки и тело сообщения могут отсутствовать. Связано это с тем, что именно стартовая строка указывает на тип запроса/ответа. Исключением является версия 0.9 протокола, у которой сообщение запроса содержит только стартовую строку, а сообщения ответа только тело сообщения.

Преимущества и недостатки протокола

Многолетняя практика выявила у протокола HTTP немало достоинств и недостатков. Несколько слов о тех и о других.

Достоинства:

  • Простота. Протокол HTTP позволяет легко создавать необходимые клиентские приложения.
  • Расширяемость. Исходные возможности протокола можно расширить, внедрив свои собственные заголовки, с помощью которых можно добиться необходимой функциональности, которая может потребоваться при решении специфических задач. Совместимость с другими серверами и клиентами от этого никак не пострадает: они будут игнорировать неизвестные им заголовки.
  • Распространённость. Протокол поддерживается в качестве клиента многими программами и есть возможность выбирать среди хостинговых компаний с серверами HTTP. По этой причине протокол широко используют для решения различных задач. Кроме этого, существует документация на многих языках, что существенно облегчает работу с протоколом.

Недостатки:

  • Отсутствие "навигации". У протокола HTTP отсутствуют в явном виде средства навигации среди ресурсов сервера. Например, клиент не может явным образом запросить список доступных файлов, как в протоколе FTP. Полностью эта проблема решена в расширяющем HTTP протоколе WebDAV с помощью добавленного метода PROPFIND. Данный метод позволяет не только получить дерево каталогов, но и список параметров каждого ресурса.
  • Отсутствие поддержки распределённости. Изначально протокол HTTP разрабатывался для решения типичных бытовых задач, где само по себе время обработки запроса должно занимать незначительное время или вовсе не приниматься в расчёт. Однако со временем стало очевидно, что при промышленном использовании с применением распределённых вычислений при высоких нагрузках на сервер протокол HTTP оказывается непригоден. В связи с этим с 1998 году был предложен альтернативный протокол HTTP-NG (англ. HTTP Next Generation), но этот протокол до сих пор находится на стадии разработки.

Особенности HTTP

В отличие от других протоколов HTTP устанавливает отдельную TCP-сессию на каждый запрос, но в более поздних версиях протокола было разрешено делать несколько запросов в ходе одной TCP-сессии. Однако браузеры, как правило, запрашивают только страницу и включённые в неё объекты (картинки, каскадные стили и прочее), а затем сразу разрывают TCP-сессию.

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

  • аутентификации пользователя;
  • хранения персональных предпочтений и настроек пользователя;
  • отслеживания состояния сессии доступа пользователя;
  • ведения статистики о пользователях.

Такой способ авторизации позволяет сохранить сессию даже после перезагрузки клиента и сервера.

Ещё одной особенностью протокола HTTP перед тем, как передать сами данные, передаёт заголовок "Content-Type: тип/подтип", позволяющую клиенту однозначно определить, каким образом обрабатывать присланные данные. Тогда как при доступе к данным по FTP или по файловым протоколам тип файла (точнее, тип содержащихся в нём данных) определяется по расширению имени файла, что не всегда удобно.

Это особенно важно при работе с CGI-скриптами, когда расширение имени файла указывает не на тип присылаемых клиенту данных, а на необходимость запуска данного файла на сервере и отправки клиенту результатов работы программы, записанной в этом файле. Кроме этого, протокол HTTP позволяет клиенту прислать на сервер параметры, которые будут переданы запускаемому CGI-скрипту. Для этого же в HTML были введены формы.

Все эти особенности протокола HTTP позволили создавать поисковые машины (первой из которых стала AltaVista, созданная фирмой DEC), форумы и Internet-магазины. Это позволило сделать Интернет коммерческой площадкой: появилось множество компаний, основным полем деятельности которых стало предоставление доступа в Интернет (провайдеры) и создание сайтов.

Оцените публикацию

Источник: Поэтому.Ру
Комментариев: 8
Текущий рейтинг: 4.5.
Голосов: 8

Отзывы и комментарии

avatar
8 • 11:07, 2013-07-01
Интересная статья. Плохо разбираюсь во всех этих вещах, связанных с сайтами и интернетом. Но благодаря таким статьям начинаю хоть немного лучше понимать что к чему.
avatar
7 • 07:17, 2013-07-01
Лес темный. В котором все, вроде, понятно – деревья и деревья. Но заблудить меж них – делать нечего (ну мне, по крайней мере).
Мне удивительно и непостижимо, как человеку удалось все ЭТО сообразить и воплотить… surprised
avatar
6 • 11:42, 2013-06-07
Ну, поскольку эта сеть с каждым днем развивается и каждый день появляются новые нюансы, людям тоже приходится каждый день развиваться и углублять познания. Что кстати, очень забавно, ведь теперь человек, вместо того чтобы развивать науку, начал гнаться за ней.
avatar
5 • 13:43, 2013-04-20
Думал, нормально разбираюсь в принципах работы интернета. Но прочитав статью, открыл массу новых понятий и понял, что в этой сфере мне ещё образовываться и образовываться.
avatar
4 • 12:53, 2013-01-23
Интересно было почитать, что такое протокол HTTP, и как он возник. Если честно, таких подробных деталей об этом протоколе нигде не читал.
avatar
3 • 08:59, 2013-01-09
Сейчас над новыми протоколами работают много крупных корпораций. Гугл и Майкрософт уже предложили свои альтернативы для HTTP , хотя по большей части они лишь улучшенная версия привычного протокола.
avatar
2 • 13:47, 2013-01-08
Хорошая статья, спасибо за информацию. Хорошо бы еще добавить о наличии протокола HTTPS, который является расширением протокола HTTP, и обладает большей защищенностью, так как включает шифрование данных.
avatar
1 • 12:12, 2013-01-08
Да, без этого протокола не видать нам интернета вообще, и судя по всему мы еще очень долго будем работать с ним.
avatar

Читайте также

Копирование любых материалов без ссылки на сайт www.poetomu.ru запрещено законом и преследуется профессиональными юристами совместно с органами прокуратуры и судами
© 2012—2024 Поэтому.ру Современная энциклопедия и познавательный журнал
Этот замечательный сайт изготовлен студией Ариф