Средства, используемые при создании Web – документов

Протокол HTTP

Всемирная паутина (WWW)

Всемирная паутина (WWW, World Wide Web) — это архитектура, являющаяся основой для доступа к огромному собранию связанных между собой документов, расположенных на компьютерах по всему миру.

Такие документы обычно называют для краткости просто страницами. Страницы просматриваются специальной программой, называемой браузером. Самыми популярными браузерами являются программы Internet Explorer и Netscape. Браузер предоставляет пользователю запрашиваемую страницу, интерпретирует ее текст и содержащиеся в нем команды форматирования для вывода страницы на экран.

Каждая страница может содержать ссылки (указатели) на другие связанные с ней страницы в любой точке мира. Строки текста, представляющие собой ссылки на другие страницы, называются гиперссылками. Они обычно выделяются либо подчеркиванием, либо другим цветом, либо и тем и другим. Чтобы перейти по ссылке, пользователь перемещает указатель мыши в выделенную область, при этом меняется форма указателя, и щелкает на ней. Пользователи могут следовать по ссылке (например, просто щелкнув на ней мышью), при этом страница, на которую указывает ссылка, загружается и появляется перед глазами пользователя. Этот процесс можно повторять бесконечно.

Идея страниц, связанных между собой гиперссылками (гипертекст), была впервые предложена в 1945 году, задолго до появления Интернета, Ванневаром Бушем (Vannevar Bush), профессором из Массачусетского университета, занимавшимся электротехникой.

Всемирная паутина была создана в 1989 году в Европейском центре ядерных исследований CERN (Conseil Europeen pour la Recherche Nucleaire) в Швейцарии. В этом центре имелось несколько ускорителей, на которых большие группы ученых из разных европейских стран занимаются исследованиями в области физики элементарных частиц. В эти команды исследователей часто входят ученые из пяти-шести и более стран. Эксперименты очень сложны, для их планирования и создания оборудования требуется несколько лет. Программа Web (паутина) появилась в результате необходимости обеспечить совместную работу находящихся в разных странах больших групп ученых, которым нужно было пользоваться постоянно меняющимися отчетами о работе, чертежами, рисунками, фотографиями и другими документами.

В декабре 1991 году на конференции Hypertext'91 в Сан-Антонио в штате Техас была произведена публичная демонстрация. Эта демонстрация, сопровождаемая широкой рекламой, привлекла внимание других ученых. Была начата разработка первой графической программы просмотра гипертекстовых документов (браузера), Mosaic. Программа увидела свет в феврале 1993 года и стала настолько популярной, что год спустя ее автор Марк Андрессен решил сформировать собственную компанию Netscape Communications Corp., чьей целью была разработка клиентов, серверов и другого программного обеспечения для веб-приложений.

В 1994 году CERN и Массачусетский технологический институт (M.I.T., Massachusetts Institute of Technologies) подписали соглашение об основании WWW- консорциума (World Wide Web Consortium, иногда применяется сокращение W3C) — организации, цель которой заключалась в дальнейшем развитии приложения Web, стандартизации протоколов и поощрении взаимодействия между отдельными сайтами. Домашнюю страницу консорциума можно найти по адресу http://www.w3.org.

К 1995 году корпорация Netscape получила широкую известность, но у нее появился конкурент – фирма Microsoft. В течение последующих трех лет между Netscape Navigator и Internet Explorer от Microsoft развернулась настоящая «война браузеров». Разработчики с той и с другой стороны в безумном порыве пытались напичкать свои программы как можно большим числом функций и в этом превзойти соперника.

В 1998 году America Online купила корпорацию Netscape Communications за 4.2 млрд. долларов, положив, таким образом, конец весьма непродолжительному независимому существованию компании.

Унифицированные указатели информационных ресурсов (URL)

Веб-страницы обычно связаны между собой ссылками. Уже при создании WWW было очевидно, что для реализации ссылок с одних страниц на другие необходим механизм именования и указания расположения страниц. В частности, прежде чем выводить выбранную страницу на экран, нужно узнать ответы на три следующих вопроса.

1. Как называется эта страница?

2. Где она расположена?

3. Как получить к ней доступ?

Если бы каждой странице можно было присвоить уникальное имя, то в идентификации страниц не было бы никакой неоднозначности. Тем не менее, проблему бы это не решило, так как отсутствовала бы информация о ее местонахождении.

В результате было принято решение идентифицировать страницы способом, решающим сразу все три проблемы. Каждой странице назначается унифицированный указатель информационного ресурса (URL, Uniform Resource Locator), который служит уникальным именем страницы. URL состоят из трех частей: протокола (также называемого схемой), доменного имени машины, на которой расположена страница, и локального имени, единственным образом идентифицирующего страницу в пределах этой машины (обычно это просто имя файла). Унифицированный указатель страницы с видео выглядит следующим образом:

http://www.kstu-kai.ru/main/index.html

Этот URL состоит из трех частей: протокола (http), DNS-имени хоста (www.kstu-kai.ru) и имени файла (main/index.html). Отдельные части URL-указателя разделяются специальными знаками пунктуации. Имя файла представляет собой относительный путь по отношению к веб-катологу kstu-kai.ru.

Рассмотрим, как работает гипертекст. Чтобы на неком участке текста браузер мог реагировать на щелчок мыши, при написании веб-страницы нужно обозначить два элемента: отображаемый на экране текст ссылки и URL страницы, которая должна стать текущей при щелчке мышью.

При выборе ссылки браузер с помощью службы DNS ищет имя хоста. Зная IP-адрес хоста, браузер устанавливает с ним TCP-соединение. По этому соединению с помощью указанного протокола браузер посылает имя файла, содержащего страницу. Вот, собственно, и все. Назад по соединению передается страница.

Такая схема является открытой в том смысле, что она позволяет использовать разные протоколы для доставки информационных единиц разного типа. Определены URL-указатели для всех распространенных протоколов, понимаемые многими браузерами.

Некоторые распространенные URL-указатели

Имя Применение Пример
http Гипертекст (HTML) http://www.kstu-kai.ru /main/
ftp FTP ftp://ftp.kstu-kai.ru/pub/program.exe
file Локальный файл file:///c:/documents/readme.doc
mailto Отправка электронной почты mailto:[email protected]
telnet Удаленный терминал telnet://www.w3.org:80

Кратко рассмотрим этот список. Протокол http является родным языком Всемирной паутины, на нем разговаривают веб-серверы.

Протокол ftp используется для доступа к файлам по FTP – протоколу передачи файлов по Интернету. За двадцать лет своего существования он достаточно хорошо укоренился в сети. Многочисленные FTP-серверы по всему миру позволяют пользователям в любых концах Интернета регистрироваться на сервере и скачивать разнообразные файлы, размещенные на сервере. Всемирная паутина здесь не вносит особых изменений. Она просто упрощает доступ к FTP-серверам и работу с файлами..

К локальному файлу также можно обратиться как к веб-странице, либо используя протокол file, либо просто указав имя файла. Такой подход напоминает FTP, но не требует наличия сервера. Разумеется, он работает только с локальными файлами, а не с расположенными на удаленных терминалах.

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

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

Протокол HTTP

Стандартным протоколом для передачи данных по Всемирной паутине является HTTP (HyperText Transfer Protocol – протокол передачи гипертекста). Он описывает сообщения, которыми могут обмениваться клиенты и серверы. Каждое взаимодействие состоит из одного ASCII-запроса, на который следует один ответ. Все клиенты и все серверы должны следовать этому протоколу.

Соединения

Обычный способ взаимодействия браузера с сервером заключается в установке ТСР-соединения с портом 80 сервера. Ценность использования TCP – в том, что ни браузерам, ни серверам не приходится беспокоиться о потерянных, дублированных, слишком длинных сообщения и подтверждениях. Все это обеспечивается протоколом TCP.

В HTTP 1.0 после установки соединения посылался один запрос, на который приходил один ответ. После этого TCP-соединение разрывалось. В то время типичная веб-страница целиком состояла из HTML-текста, и такой способ взаимодействия был адекватным. Однако прошло несколько лет, и в странице оказалось множество значков, изображений и других украшений. Очевидно, что установка TCP-соединения для передачи одного значка нерациональна и слишком дорога.

Это соображение привело к созданию протокола HTTP 1.1, который поддерживал устойчивые соединения. Это означало, что появилась возможность установки TCP-соединения, отправки запроса, получения ответа, а затем передачи и приема дополнительных запросов и ответов. Таким образом, снизились накладные расходы, возникавшие при постоянных установках и разрывах соединения.

Стало возможным также конвейеризировать запросы, то есть отправлять запрос 2 еще до прибытия ответа на запрос 1.

Методы

Несмотря на то, что HTTP был разработан специально для использования в веб–технологиях, он был намеренно сделан более универсальным, чем это было необходимо, так как рассчитывался на будущее применение в объектно-ориентированных приложениях. По этой причине в дополнение к обычным запросам веб-вебстраниц были разработаны специальные операции, называемые методами. Каждый запрос состоит из одной или нескольких строк ASCII, причем первое слово является именем вызываемого метода. Помимо этих общих методов, у различных объектов могут быть также свои специфические методы.

Встроенные методы HTTP-запросов

Метод Описание
GET Запрос чтения веб-страницы
HEAD Запрос чтения заголовка веб-страницы
PUT Запрос сохранения веб-страницы
DELETE Удалить веб-страницу
TRACE Отобразить входящий запрос
OPTIONS Опрос определенных параметров

Метод GET запрашивает у сервера страницу (под которой в общем случае подразумевается объект, но на практике это обычно просто файл). Большую часть запросов к серверу составляют именно запросы GET. Вот самая типичная форма GET:

GET filename HTTP/1.1,

где filename указывает на запрашиваемый ресурс (файл), а 1.1 – на используемую версию протокола.

Метод HEAD просто запрашивает заголовок сообщения, без самой страницы. С помощью этого метода можно узнать время последнего изменения страницы для сбора индексной информации или просто для проверки работоспособности данного URL.

Метод PUT является противоположностью метода GET: он не читает, а записывает страницу. Этот метод позволяет создать набор веб-страниц на удаленном сервере. Тело запроса содержит страницу. На практике PUT широко не применяется.

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

Метод TRACE предназначен для отладки. Он приказывает серверу отослать назад запрос. Этот метод особенно полезен, когда запросы обрабатываются некорректно и клиенту хочется узнать, что за запрос реально получает сервер.

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

Заголовки запросов

За строкой запроса (например, содержащей название метода GET) могут следовать другие строки с дополнительной информацией. Они называются заголовками запросов. Эту информацию можно сравнить с параметрами, предоставляемыми при вызове процедуры. В свою очередь, ответы могут содержать заголовки ответов. Некоторые заголовки могут встречаться и там, и там.

Некоторые заголовки сообщений протокола HTTP

User-Agent (Запрос) – Информация о браузере и его платформе.

Позволяет клиенту информировать сервер о версии своего браузера, операционной системы или предоставлять другую информацию о себе.

Accept (Запрос) – Тип страниц, поддерживаемых клиентом.

Определяет типы страниц, которые будут приняты клиентом (например, text/html).

Accept-Charset (Запрос) – Поддерживаемые клиентом наборы символов.

Сообщает о том, какой набор символов клиент хотел бы видеть (например, ISO-8859 или Unicodel).

Accept-Encoding (Запрос) – Поддерживаемые клиентом типы кодирования.

Речь идет о приемлемых методах сжатия (например, gzip).

Accept-Language (Запрос) – Естественные языки, понимаемые клиентом.

Сообщает, на каком языке клиент готов читать документы (например, на испанском).

Host (Запрос) – доменное имя сервера.

Описывает сервер. Его значение берется из URL. Этот заголовок обязателен.

Authorization (Запрос) – Список персональных идентификаторов клиента.

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

Date (Запрос/Ответ) – Дата и время отправки сообщения.

Может применяться как в запросах, так и в ответах. Он содержит время и дату отправки сообщения.

Server (Ответ) – Информация о сервере.

Позволяет серверу сообщать информацию о себе. При желании он может указать некоторые свои параметры.

Content-Length (Ответ) – Размер страницы в байтах

Last-Modified (Ответ) – Время и дата внесения последних изменений в страницу.

Поскольку HTTP является текстовым протоколом, взаимодействие с сервером посредством терминала (который в данном случае выступает как противоположность браузеру) можно организовать достаточно просто. Необходимо лишь установить TCP-соединение с портом 80 сервера.

Пример.

Url http://www.ietf.org/rfc.htm, заданный в строке адреса броузера приведет к выдаче следующих команд протокола http:

GET /rfc.html HTTP/1.1

Host: www.ietf.org

Средства, используемые при создании Web – документов

Наши рекомендации