Выполнил: Зубрицкая Е.А.
Для начала, определимся что такое 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/<Версия> <Код статуса> <Описание статуса>
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 самодостаточной платформой для разработки и исполнения приложений.
Использованные материалы