русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Имя поля Описание содержимого


Дата добавления: 2014-02-04; просмотров: 1065; Нарушение авторских прав


Таблица 2.3. Поля заголовка ответа веб-сервера.

Таблица 2.2. Классы кодов ответа сервера.

Таблица 2.1. Поля заголовка запроса HTTP.

Поля заголовка HTTP-запроса Значение
Host Доменное имя или IP-адрес узла, к которому обращается клиент
Referer URL документа, который ссылается на ресурс, указанный в строке состояния
From Адрес электронной почты пользователя, работающего с клиентом
Accept MIME-типы данных, обрабатываемых клиентом. Это поле может иметь несколько значений, отделяемых одно от другого запятыми. Часто поле заголовка Accept используется для того, чтобы сообщить серверу о том, какие типы графических файлов поддерживает клиент
Accept-Language Набор двухсимвольных идентификаторов, разделенных запятыми, которые обозначают языки, поддерживаемые клиентом
Accept-Charset Перечень поддерживаемых наборов символов
Content-Type MIME-тип данных, содержащихся в теле запроса (если запрос не состоит из одного заголовка)
Content-Length Число символов, содержащихся в теле запроса (если запрос не состоит из одного заголовка)
Range Присутствует в том случае, если клиент запрашивает не весь документ, а лишь его часть
Connection Используется для управления TCP-соединением. Если в поле содержится Close, это означает, что после обработки запроса сервер должен закрыть соединение. Значение Keep-Alive предлагает не закрывать TCP-соединение, чтобы оно могло быть использовано для последующих запросов
User-Agent Информация о клиенте

 

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

Ниже представлен пример HTML-запроса, сгенерированного браузером



GET http://oak.oakland.edu/ HTTP/1.0

Connection: Keep-Alive

User-Agent: Mozilla/4.04 [en] (Win95; I)

Host: oak.oakland.edu

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*

Accept-Language: en

Accept-Charset: iso-8859-l,*,utf-8

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

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

Подобно запросу клиента, ответ сервера также состоит из четырех перечисленных ниже компонентов.

· Строка состояния.

· Поля заголовка.

· Пустая строка.

· Тело ответа.

Ответ сервера клиенту начинается со строки состояния, которая имеет следующий формат:

Версия_протокола Код_ответа Пояснительное_сообщение

Версия_протокола задается в том же формате, что и в запросе клиента, и имеет тот же смысл.

Код_ответа - это трехзначное десятичное число, представляющее в закодированном виде результат обслуживания запроса сервером.

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

Из трех цифр, составляющих код ответа, первая (старшая) определяет класс ответа, остальные две представляют собой номер ответа внутри класса. Так, например, если запрос был обработан успешно, клиент получает следующее сообщение:

HТТР/1.0 200 ОК

Как видно, за версией протокола HTTP 1.0 следует код 200. В этом коде символ 2 означает успешную обработку запроса клиента, а остальные две цифры (00) — номер данного сообщения.

В используемых в настоящее время реализациях протокола HTTP первая цифра не может быть больше 5 и определяет следующие классы ответов.

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

2 - успешная обработка запроса клиента.

3 - перенаправление запроса. Чтобы запрос был обслужен, необходимо предпринять дополнительные действия.

4 - ошибка клиента. Как правило, код ответа, начинающийся с цифры 4, возвращается в том случае, если в запросе клиента встретилась синтаксическая ошибка.

5 - ошибка сервера. По тем или иным причинам сервер не в состоянии выполнить запрос.

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

Код Расшифровка Интерпретация
Continue Часть запроса принята, и сервер ожидает от клиента продолжения запроса
OK Запрос успешно обработан, и в ответе клиента передаются данные, указанные в запросе
Created В результате обработки запроса был создан новый ресурс
Accepted Запрос принят сервером, но обработка его не окончена. Данный код ответа не гарантирует, что запрос будет обработан без ошибок
Partial Content Сервер возвращает часть ресурса в ответ на запрос, содержавший поле заголовка Range
Multiple Choice Запрос указывает более чем на один ресурс. В теле ответа могут содержаться указания на то, как правильно идентифицировать запрашиваемый ресурс
Moved Permanently Затребованный ресурс больше не располагается на сервере
Moved Temporarily Затребованный ресурс временно изменил свой адрес
Bad Request В запросе клиента обнаружена синтаксическая ошибка
Forbidden Имеющийся на сервере ресурс недоступен для данного пользователя
Not Found Ресурс, указанный клиентом, на сервере отсутствует
Method Not Allowed Сервер не поддерживает метод, указанный в запросе
Internal Server Error Один из компонентов сервера работает некорректно
Not Implemented Функциональных возможностей сервера недостаточно, чтобы выполнить запрос клиента
Service Unavailable Служба временно недоступна
HTTP Version not Supported Версия HTTP, указанная в запросе, не поддерживается сервером

 

В ответе используется такая же структура полей заголовка, как и в запросе клиента. Поля заголовка предназначены для того, чтобы уточнить ответ сервера клиенту. Описание некоторых из полей, которые можно встретить в заголовке ответа сервера, приведено в таблице 2.3.

Server Имя и номер версии сервера

Age Время в секундах, прошедшее с момента создания ресурса

Allow Список методов, допустимых для данного ресурса

Content-Language Языки, которые должен поддерживать клиент для того, чтобы корректно отобразить

передаваемый ресурс

Content-Type MIME-тип данных, содержащихся в теле ответа сервера

Content-Length Число символов, содержащихся в теле ответа сервера

Last-Modified Дата и время последнего изменения ресурса

Date Дата и время, определяющие момент генерации ответа

Expires Дата и время, определяющие момент, после которого информация, переданная

клиенту, считается устаревшей

Location В этом поле указывается реальное расположение ресурса. Оно используется для

перенаправления запроса

Cache-Control Директивы управления кэшированием. Например, no-cache означает, что данные не

должны кэшироваться

В теле ответа содержится код ресурса, передаваемого клиенту в ответ на запрос. Это не обязательно должен быть HTML-текст веб-страницы. В составе ответа могут передаваться изображение, аудио-файл, фрагмент видеоинформации, а также любой другой тип данных, поддерживаемых клиентом. О том, как следует обрабатывать полученный ресурс, клиенту сообщает содержимое поля заголовка Content-type.

Ниже представлен пример ответа сервера на запрос, приведенный в предыдущем разделе. В теле ответа содержится исходный текст HTML-документа.

HTTP/1.1 200 OK

Server: Microsoft-IIS/5.1

X-Powered-By: ASP.NET

Date: Mon, 20 OCT 2008 11:25:56 GMT

Content-Type: text/html

Accept-Ranges: bytes

Last-Modified: Sat, 18 Oct 2008 15:05:44 GMT

ETag: "b66a667f948c92:8a5"

Content-Length: 426

<html>

<body>

<form action='http://localhost/Scripts/test.pl'>

<p>Operand1: <input type='text' name='A'></p>

<p>Operand2: <input type='text' name='B'></p>

<p>Operation:<br>

<select name='op'>

<option value='+'>+</option>

<option value='-'>-</option>

<option value='*'>*</option>

<option value='/'>/</option>

<select></p>

<input type='submit' value='Calculate!'>

</from>

</body>

</html>

Поля заголовка и тело сообщения могут отсутствовать, но строка состояния является обязательным элементом, так как указывает на тип запроса/ответа.

Поле с именем Content-type может встречаться как в запросе клиента, так и в ответе сервера. В качестве значения этого поля указывается MIME-тип содержимого запроса или ответа. MIME-тип также передается в поле заголовка Accept, присутствующего в запросе.

Спецификация MIME (Multipurpose Internet Mail Extension — многоцелевое почтовое расширение Internet) первоначально была разработана для того, чтобы обеспечить передачу различных форматов данных в составе электронных писем. Однако применение MIME не исчерпывается электронной почтой. Средства MIME успешно используются в WWW и, по сути, стали неотъемлемой частью этой системы.

Стандарт MIME разработан как расширяемая спецификация, в которой подразумевается, что число типов данных будет расти по мере развития форм представления данных. Каждый новый тип в обязательном порядке должен быть зарегистрирован в IANA (Internet Assigned Numbers Authority).

До появления MIME компьютеры, взаимодействующие по протоколу HTTP, обменивались исключительно текстовой информацией. Для передачи изображений, как и для передачи любых других двоичных файлов, приходилось пользоваться протоколом FTP.

В соответствии со спецификацией MIME, для описания формата данных используются тип и подтип. Тип определяет, к какому классу относится формат содержимого HTTP-запроса или HTTP-ответа. Подтип уточняет формат. Тип и подтип отделяются друг от друга косой чертой:

тип/подтип

Поскольку в подавляющем большинстве случаев в ответ на запрос клиента сервер возвращает исходный текст HTML-документа, то в поле Content-type ответа обычно содержится значение text/html. Здесь идентификатор text описывает тип, сообщая, что клиенту передается символьная информация, а идентификатор html описывает подтип, т.е. указывает на то, что последовательность символов, содержащаяся в теле ответа, представляет собой описание документа на языке HTML.

Перечень типов и подтипов MIME достаточно велик. В таблице 2.4 приведены примеры MIME-типов, наиболее часто встречающиеся в заголовках HTML-запросов и ответов.



<== предыдущая лекция | следующая лекция ==>
Протокол HTTP | Обеспечение безопасности передачи данных HTTP


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.566 сек.