эта страница доступна на следующих языках: English Castellano Deutsch Francais Italiano Nederlands Russian Turkce |
Автор Charles vidal Об авторе: Владелец гастрономического склада в Париже. Приверженец философии GNU и Open Source за возможность обмена знаниями. Хотел бы выделять время для игры на саксофоне. Содержание: |
Резюме:
Эта заметка о самом популярном веб сервере Apache состоит из двух частей : в первой я кратко опишу историю WWW, во второй - введение в HTTP протокол.
Apache - название бесплатного веб сервера. Происхождение названия спорно - одна точка зрения, что это
"пятнистый сервер" из-за множества заплаток, так называемых
патчей, в начале проекта, другая точка зрения более серьезна - основатели проекта взяли это имя в честь племени апачей, известного своей приспособляемостью.
Это наиболее популярный сервер в Интернет. Он поддерживает протокол
HTTP (1.1), стандартизованный
W3 консорциумом.
Исследования,
проведенные в Июне 1999 г., показали, что доля веб сервера Apache в общем
числе работающих веб серверов составляет 60.05%.
В модели клиент-сервер - задача веб сервера ослуживать запросы,
поступающие от веб клиентов, например веб браузера Lynx ;-)
Запрос состоит из трех частей :
Ответ от сервера состоит из заголовка и тела сообщения в зависимости от используемого метода запроса.
>telnet www.linuxfocus.org 80 Trying 195.53.25.18... Connected to nova.linuxfocus.org. Escape character is '^]'. GET / HTTP/1.0 <return> <return> HTTP/1.1 200 OK Date: Mon, 27 Sep 1999 21:23:20 GMT Server: Apache/1.3.3 (Unix) (Red Hat/Linux) Last-Modified: Sun, 26 Sep 1999 16:40:44 GMT ETag: "4b005-1616-37ee4c8c" Accept-Ranges: bytes Content-Length: 5654 Connection: close Content-Type: text/html <PAGE HTML> |
Что нам может рассказать этот ответ?
Первая строка показывает используемый протокол и значение, возвращенное
сервером (значение, превышающее число 400 означает ошибку). Далее идет
дата, версия сервера, дата последней модификации запрашиваемого HTML
документа (это позволяет веб клиенту принимать решения о действительности
находящихся в кэше файлов). Параметр Content-length показывает размер
ответа, а параметр Content-type - используемый MIME тип ответа (текст,
HTML - документ, изображение).
Это не полное описание : некоторые сообщения все еще являются для меня
тайной ;-)
Посмотрим какое сообщение возвращает сервер при возникновении ошибки :
>telnet www.linuxfocus.org 80 Trying 195.53.25.18... Connected to nova.linuxfocus.org. Escape character is '^]'. get / HTTP/1.0 <return> <return> HTTP/1.1 501 Method Not Implemented Date: Mon, 27 Sep 1999 21:22:03 GMT Server: Apache/1.3.3 (Unix) (Red Hat/Linux) Allow: GET, HEAD, OPTIONS, TRACE Connection: close Content-Type: text/html |
Ответ довольно подробный ;-)
HTTP очень простой протокол, что подтверждают следующие примеры.
>telnet www.linuxfocus.org 80 Trying 195.53.25.18... Connected to nova.linuxfocus.org. Escape character is '^]'. GET / < return > < return > |
Как видно язык общения между клиентом и сервером достаточно прост, но при использовании версии 1.1 вместо 1.0 для вашего запроса могут возникнуть сложности.
GET / HTTP/1.0< return > < return > HTTP/1.1 200 OK Date: Tue, 24 Aug 1999 22:25:11 GMT Server: Apache/1.3.3 (Unix) (Red Hat/Linux) Last-Modified: Sun, 01 Aug 1999 11:50:52 GMT ETag: "4b005-1462-37a4349c" Accept-Ranges: bytes Content-Length: 5218 Connection: close Content-Type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> ....Использование версии 1.1 даст следующий результат :
GET / HTTP/1.1 <return > < return > HTTP/1.1 400 Bad Request Date: Tue, 24 Aug 1999 22:24:59 GMT Server: Apache/1.3.3 (Unix) (Red Hat/Linux) Connection: close Transfer-Encoding: chunked Content-Type: text/html <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>400 Bad Request</TITLE> </HEADBODY> <H1>Bad Request</H1> Your browser sent a request that this server could not understand.<P> client sent HTTP/1.1 request without hostname (see RFC2068 section 9, and 14.23): </P> </BODY></HTML>Запрос с использованием протокола HTTP версии 1.1 требует больше информации. Он состоит из нескольких строк. Дополнительные строки позволяют передать более детальную информацию, которая улучшает качество соединения.
Пример :
GET / HTTP/1.0< return > Host:www.linuxfocus.org< return > < return > [...]Следующее происходит в большинстве взаимодействий модели клиент - сервер при получении сервером запроса :
Веб сервер является интерфейсом между веб клиентом, запрашивающим URL - вы можете встретить другую аббревиатуру (например URI, URN), в общем это одно и то же - и ОС, на которой установлен Apache. Веб клиент посылает запрос и получает обратно ответ, соответствующий запрошенному URL.
Некоторые запросы не могут быть непосредственно обработаны сервером. Серверу необходимо запустить некоторые программы, которые обработают запрос и вернут результат клиенту : так работают CGI (Common Gateway Interface) - скрипты.
Webpages maintained by the LinuxFocus Editor team
© Charles vidal LinuxFocus.org 2000 Click here to report a fault or send a comment to Linuxfocus |
Translation information:
|
2000-07-05, generated by lfparser version 1.5