ДонНТУ> Портал магистров ДонНТУ

Индивидуальное задание

"Обзор HTTP-серверов"

Выполнил: Зубрицкая Е.А.


Для начала, определимся что такое HTTP-сервер (веб-сервер).

Итак, это:

- программа, которая принимает HTTP-соединения с целью обслуживания HTTP-запросов;

- сервер, предназначенный для представления взаимосвязанной мультимедийной информации и содержимого баз данных в Интернет;

- компьютер, подключенный к интернету, хранящий набор программ, необходимых для функционирования сайтов;

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


Что такое HTTP?

HTTP
(от англ. HyperText Transfer Protocol - <протокол передачи гипертекста>) - сетевой протокол прикладного уровня для передачи файлов. В стеке TCP/IP для HTTP зарезервированы порты 80 транспортных протоколов TCP и UDP (практически, используется только первый). Основным назначением HTTP является передача веб-страниц (текстовых файлов с разметкой HTML), хотя с помощью него с успехом передаются и другие файлы, как связанные с веб-страницами (изображения и приложения), так и не связанные с ними (в этом HTTP успешно конкурирует с более сложным FTP). HTTP предполагает, что клиентская программа - веб-браузер, умеет отображать гипертекстовые веб-страницы и файлы других типов в удобной для пользователя форме. Для правильного отбражения HTTP позволяет клиенту узнать язык/кодировку веб-страницы и/или запросить версию страницы в нужных языке/кодировке, используя обозначения из стандарта MIME.

История развития

HTTP/0.9


HTTP был предложен в марте 1990 года Тимом Бернерсом-Ли, работавшим тогда в CERN, как механизм для доступа к документам в Интернете и облегчения навигации посредством использования гипертекста. Самая ранняя версия протокола HTTP/0.9 была впервые опубликована в январе 1992 г. (хотя реализация датируется 1990 годом). Спецификация протокола привела к упорядочению правил взаимодействия между клиентами и серверами HTTP, а также чёткому разделению функций между этими двумя компонентами. Были задокументированы основные синтаксические и семантические положения.

HTTP/1.0

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

HTTP/1.1

Последняя версия протокола. Стандарт был принят в июне 1999 года. Новым в этой версии был режим <постоянного соединения>: TCP-соединение может оставаться открытым после отправки ответа на запрос, что позволяет посылать несколько запросов за одно соединение. Клиент теперь обязан посылать информацию о имени хоста, к которому он обращается, что сделало возможным более простую организацию вирутального хостинга.

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

HTTP - протокол прикладного уровня, подобно FTP и SMTP. Обмен сообщениями идёт по обыкновенной схеме <запрос-ответ>. Для идентификации ресурсов HTTP использует глобальные URI. В отличие от многих других протоколов, HTTP не сохраняет своего состояния. Это означает отсутствие сохранения промежуточного состояния между парами <запрос-ответ>. Компоненты, использующие HTTP, могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами. Браузер, посылающий запросы, может отслеживать задержки ответов. Сервер может хранить IP-адреса и заголовки запросов последних клиентов. Однако сам протокол не осведомлён о предыдущих запросах и ответах, в нём не предусмотрена внутренняя поддержка состояния, к нему не предъявляются такие требования. Каждый запрос/ответ состоит из трёх частей: стартовая строка; заголовки; тело сообщения, содержащее данные запроса, запрашиваемый ресурс или описание проблемы, если запрос не был выполнен. Стартовые строки различаются для запроса и ответа. Строка запроса выглядит так:

<Метод> HTTP/<Версия>

где <Метод> может быть:

OPTIONS
Возвращает методы HTTP, которые поддерживаются сервером. Этот метод может служить для определения возможностей веб-сервера.

GET
Запрашивает содержимое указанного ресурса.

HEAD
Аналогичен методу GET, за исключением того, что в ответе сервера отсутствует тело. Это полезно для извлечения мета-информации, заданной в в заголовках ответа без пересылки всего содержимого.

POST
Передаёт пользовательские данные (например из формы HTML) заданному ресурсу. Данные включаются в тело запроса.

PUT
Загружает указанный ресурс на сервер.

DELETE
Удаляет указанный ресурс

TRACE
Возвращает полученный запрос так, что клиент может увидеть, что промежуточные сервера добавляют к запросу или изменяют его

CONNECT
Для использования вместе с прокси-серверами, которые могут динамически переключаться в туннельный режим SSL.

В основном используются только методы GET и POST. Различаются они тем, что в методе GET данные запроса внедряются в URL ресурса (после вопросительного знака, например: http://server/document.html?param=value), а в методе POST они посылаются в теле сообщения.

Первая строка ответа выглядит так:

HTTP/<Версия> <Код статуса> <Описание статуса>

Наиболее типичные статусы:

  • 200 OK - запрос выполнен успешно;
  • 403 Forbidden - доступ к запрошенному ресурсу запрещён;
  • 404 Not Found - запрошенный ресурс не найден.

    Заголовки HTTP - это строки, каждая из которых состоит из имени параметра, за которым следует двоеточие и его значение. Они несут информацию для браузера или для серверных программ (таких, как CGI-приложения). Между заголовками и телом обязательно должна быть пустая строка.

    Примеры HTTP

    Запрос:


    GET /wiki/HTTP HTTP/1.1
    Host: ru.wikipedia.org
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
    Connection: close


    Ответ:

    HTTP/1.0 200 OK Server: Apache
    Content-Language: ru
    Content-Type: text/html; charset=utf-8
    Content-Length: 1234

    Наиболее известные на настоящее время WEB-серверы:


    Apache HTTP-сервер (по-русски обычно произносят Апачи или Апач) - это веб-сервер, с открытым исходным кодом. С апреля 1996 это самый популярный HTTP-сервер в Интернете: в мае 1999 года он работал на 57 % веб-серверов, в августе 2004 на 67 %.

    Основными достоинствами Apache считаются надёжность, относительная устойчивость к взлому и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает IPv6.

    Недостатком наиболее часто называется отсутствие удобного стандартного интерфейса для администратора.

    Сервер был написан в начале 1995 года и считается, что его имя восходит к шуточному названию (англ. заплаточный), так как он устранял ошибки популярного тогда сервера Всемирной паутины NCSA HTTPd 1.3. В дальнейшем, с версии 2.х сервер был переписан заново и теперь не содержит кода NCSA, но имя осталось. На данный момент разработка ведется в ветке 2.2, а в версиях 1.3 и 2.0 производятся лишь исправления ошибок безопасности.

    Веб-сервер Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation и включён во многие программные продукты, среди которых СУБД Oracle и IBM WebSphere.


    IIS (Internet Information Services, до версии 5.0 - Internet Information Server) - это набор серверов для нескольких служб Интернета от компании Майкрософт. IIS распространяется с операционными системами семейства Windows NT.

    Основным компонентом IIS является веб-сервер, который позволяет размещать в Интернете сайты Всемирной паутины. Этот веб-сервер поддерживает протоколы HTTP и HTTPS. По данным компании Netcraft за октябрь 2006 г., около 30% сайтов сегодня обслуживаются веб-сервером IIS.

    Кроме того, IIS содержит службы, необходимые для предоставления доступа к файлам по протоколу FTP, для отправки электронной почты по протоколу SMTP, а также для предоставления доступа к группам новостей по протоколу NNTP.

    Основным компонентом IIS является веб-сервер - служба WWW (называемая также W3SVC), которая предоставляет клиентам доступ к сайтам Всемирной паутины по протоколам HTTP и (если настроено) HTTPS.

    Один сервер IIS может обслуживать несколько сайтов. Каждый сайт имеет следующие атрибуты: IP-адрес сайта; TCP-порт, на котором служба WWW ожидает подключений к данному сайту; Заголовок узла (Host header name) - значение заголовка Host запроса HTTP, указывающее обычно DNS-имя сайта. Таким образом, например, один сервер с одним IP-адресом может обслуживать на одном TCP-порту несколько сайтов. Для этого необходимо создать несколько DNS-записей, указывающих на IP-адрес сервера, и различать сайты по заголовкам узла.


    Netscape Enterprise Server

    Высокомасштабируемый web-сервер, обладающий средствами поддержки секретности (SSL v3, X.509, криптографию PKCS #11), обеспечения бесперебойной работы и комплексными средствами администрирования (интеграция с глобальным каталогом LDAP, поддержка SNMP и т.д.).

    Поддержка JDK 1.1 и 1.2, Java Servlets 2.2 и JavaServer Pages 1.1, java object serialization, JavaBeansT, средства работы с СУБД Oracle, IBM DB2, Sybase и Informix по JDBC (на Windows NT -- и по ODBC), интеграция с CORBA-сервером, а также средства подключения внешних расширений по CGI и NSAPI делают Netscape Enterprise Server самодостаточной платформой для разработки и исполнения приложений.


    Использованные материалы

  • Ресурсы Wikipedia.
  • Ресурс компании Epsylon: http://www.epsylon.ru/products_nn.html.
  • Материалы портала WHATIS.RU: http://www.whatis.ru/glos/r03.shtml.
  • Материалы с сайта Библиотеки России: http://konkurs.libs.ru/about-6.html.

  • ДонНТУ> Портал магистров ДонНТУ> Реферат | Библиотека | Ссылки | Отчет о поиске | Биография