Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Основной протокол передачи гипертекстовых данных – это HTTP. HTTP основывается на запросах/ответах. При этом запрашивающая программа - клиент устанавливает связь с программой- сервером и посылает запрос серверу в следующей форме:
метод запроса, URI, версия протокола, сообщение, содержащее управляющую информацию запроса, информацию о клиенте и тело сообщения.
Запрос создается браузером клиента. Когда пользователь набирает в браузере URL-адрес: http:bsu.by/my.php вот что при этом происходит:
Браузер разбирает URL-адрес и решает следующее:
-Использовать протокол HTTP.
-Извлечь запрошенный ресурс с компьютера, находящегося на bsu. by.
-Получить информационный ресурс, известный, как /my.php.
На основе данной информации создается запрос HTTP, выглядящий следующим образом:
GET /my.php HTTP/1.1
Accept: image/gif, image/png, image/jpeg, */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0;
Windows XP;.NET CLR 1.1.4322)
Host:bsu.by
Connection: Keep-Alive
Вот что эти строки значат:
GET — метод HTTP который означает: "Дай информацию, находящуюся в /му.php, и вышли ее, используя протокол HTTP 1.1".
Accept — "я могу понимать графическую информацию в следующих форматах".
Accept-Language — "язык, который я понимаю — английский, американский ". Accept-Encoding — "мне можно отправлять данные в сжатом виде, поскольку я понимаю типы сжатия gzip и deflate".
User-Agent — "тип моего браузера — Microsoft Explorer 8, выполняющийся под управлением Windows XP".
Host — "доставь мне информацию /my.php с компьютера, находящегося на хосте feedster.com".
Connection: Keep-Alive — "держи подключение HTTP открытым, пока браузер не закроет его". Это повышает производительность, поскольку соединение не нужно закрывать и снова открывать для каждого подключения. Без Keep-Alive Web-страница будет иметь множество подключений.
Когда Web-сервер получает подобный запрос, он должен просмотреть информацию на сервере, которая представлена /my. php.
В конце запроса помещается его тело.
Сервер отвечает на запрос сообщением, содержащим строку статуса (включая версию протокола и код статуса - успех или ошибка), за которой следует MIME-подобное сообщение, включающее в себя информацию о сервере, метаинформацию о содержании ответа, и, само тело ответа. Ответ (response) сервера посылается клиенту (браузеру) в виде:
НТТР/1.1 200 0К
Date: Моп, 08 Dec 2003 16:46:40 GMT
Server: Apache/1.3.27 (Unix) mod_throttle/3.1.2 PHP/4.3.2
X-Powered-By: PHP/4.3.2
X-Accelerated-By: PHPA/1.3.3r2
Connection: close
Content-Type: text/html; charset=utf-8
<html lang="en-US" xml:lang="en-US" «nlns="http://www.w3.org/1999/xhtml">
<head>
<script>
HTTP-ответ состоит из двух частей. В начале идет порция сведений о самой запрошенной информации - заголовок ответа (response header). Затем идет пустая строка и далее — сама запрошенная информация. Эта вторая часть называется телом (body). Вот что означают части заголовка:
HTTP/1.1 — первая строка сообщает клиенту, что информация будет отправлена по протоколу HTTP версии 1.1. Код 200 состояния HTTP означает: "Все хорошо, документ найден и сейчас будет отправлен".
Date — сообщает клиенту дату, установленную на сервере, с которого поступает информация. Стандартный часовой пояс — GMT, то есть время по Гринвичу.
Server — каков тип сервера, предоставляющего информацию.
X-Powered-By — каким инструментом поддерживается сервер (конечно, РНР).
X-Accelerated-By — какой инструмент повышает производительность сервера (эти два Х-заголовка не обязательны и специфичный для конкретной конфигурации сервера).
Connection — сообщает клиенту, что соединение будет закрыто после того, как сервер завершит отправку информации.
Content-Type — сообщает клиенту, какой тип содержимого будет отправлен. В дополнение также указывается набор символов.
Дата публикования: 2014-11-18; Прочитано: 365 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!