Учебное пособие по теме "Компоненты строки состояния"
Оценка 4.9

Учебное пособие по теме "Компоненты строки состояния"

Оценка 4.9
Документация
doc
информатика
11 кл
01.03.2022
Учебное пособие по теме "Компоненты строки состояния"
Компоненты строки состояния
Часы 15-16 Компоненты строки состояния (2).doc

Тема №7 Компоненты строки состояния.

        Рассмотрим компоненты строки состояния, при этом особое внимание уделим методам запроса.

        Метод, указанный в строке состояния, определяет способ воздействия на ресурс, URL которого задан в той же строке. Метод может принимать значения GET, POST, HEAD, PUT, DELETE и т.д. Несмотря на обилие методов, для веб-программиста по-настоящему важны лишь два из них: GET и POST.

        GET. Согласно формальному определению, метод GET предназначается для получения ресурса с указанным URL. Получив запрос GET, сервер должен прочитать указанный ресурс и включить код ресурса в состав ответа клиенту. Ресурс, URL которого передается в составе запроса, не обязательно должен представлять собой HTML-страницу, файл с изображением или другие данные. URL ресурса может указывать на исполняемый код программы, который, при соблюдении определенных условий, должен быть запущен на сервере. В этом случае клиенту возвращается не код программы, а данные, сгенерированные в процессе ее выполнения. Несмотря на то что, по определению, метод GET предназначен для получения информации, он может применяться и в других целях. Метод GET вполне подходит для передачи небольших фрагментов данных на сервер.

        POST. Согласно тому же формальному определению, основное назначение метода POST - передача данных на сервер. Однако, подобно методу GET, метод POST может применяться по-разному и нередко используется для получения информации с сервера. Как и в случае с методом GET, URL, заданный в строке состояния, указывает на конкретный ресурс. Метод POST также может использоваться для запуска процесса.

Методы HEAD и PUT являются модификациями методов GET и POST.

Версия протоколаHTTP, как правило, задается в следующем формате:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

HТТР/1.0 200 ОК

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

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

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

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

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

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

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

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

1.            Continue - Часть запроса принята, и сервер ожидает от клиента продолжения запроса

2.            OK - Запрос успешно обработан, и в ответе клиента передаются данные, указанные в запросе

3.            Created - В результате обработки запроса был создан новый ресурс

4.            Accepted - Запрос принят сервером, но обработка его не окончена. Данный код ответа не гарантирует, что запрос будет обработан без ошибок.

5.            Partial Content - Сервер возвращает часть ресурса в ответ на запрос, содержавший поле заголовка Range

6.            Multiple Choice - Запрос указывает более чем на один ресурс. В теле ответа могут содержаться указания на то, как правильно идентифицировать запрашиваемый ресурс

7.            Moved Permanently - Затребованный ресурс больше не располагается на сервере

 

8.            Moved Temporarily - Затребованный ресурс временно изменил свой адрес

9.            Bad Request - В запросе клиента обнаружена синтаксическая ошибка

10.        Forbidden - Имеющийся на сервере ресурс недоступен для данного пользователя

11.   Not Found -Ресурс, указанный клиентом, на сервере отсутствует

12.   Method Not Allowed -Сервер не поддерживает метод, указанный в запросе

13.   Internal Server Error -Один из компонентов сервера работает некорректно

14.   Not Implemented -Функциональных возможностей сервера недостаточно, чтобы выполнить запрос клиента

15.   Service Unavailable -Служба временно недоступна

16.   HTTP Version not Supported-Версия HTTP, указанная в запросе, не поддерживается сервером

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

Поля заголовка ответа веб-сервера:

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

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

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

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

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

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

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

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

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

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

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

Ниже представлен пример ответа сервера на запрос:

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, присутствующего в запросе.


Скачано с www.znanio.ru

Тема №7 Компоненты строки состояния

Тема №7 Компоненты строки состояния

Поля заголовка запроса HTTP: -

Поля заголовка запроса HTTP: -

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

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

В используемых в настоящее время реализациях протокола

В используемых в настоящее время реализациях протокола

Not Found -Ресурс, указанный клиентом, на сервере отсутствует 3

Not Found -Ресурс, указанный клиентом, на сервере отсутствует 3

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

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