Устройство Интернета
<<  Ip-адресация Интернет торговля: складской учёт, скидки на заказ, управление интернет-магазином с мобильных устройств  >>
Протокол HTTP
Протокол HTTP
Программы, обеспечивающие работу WWW, используют для обмена данными
Программы, обеспечивающие работу WWW, используют для обмена данными
Спецификация MIME
Спецификация MIME
Приведем некоторые часто встречающиеся типы: text/html text/plain
Приведем некоторые часто встречающиеся типы: text/html text/plain
Сеанс взаимодействия с сервером HTTP в наиболее общем виде состоит из
Сеанс взаимодействия с сервером HTTP в наиболее общем виде состоит из
Запрос клиента
Запрос клиента
Строка состояния имеет следующий формат: <метод запроса><URL ресурса>
Строка состояния имеет следующий формат: <метод запроса><URL ресурса>
Поля заголовка используются для передачи серверу дополнительной
Поля заголовка используются для передачи серверу дополнительной
Accept – Language - идентификаторы, с помощью которых сообщаются языки
Accept – Language - идентификаторы, с помощью которых сообщаются языки
Ответ сервера
Ответ сервера
Строка состояния
Строка состояния
Коды ответов подразделяются на пять групп
Коды ответов подразделяются на пять групп
Поля заголовка в ответе сервера имеют такую же структуру, что и в
Поля заголовка в ответе сервера имеют такую же структуру, что и в
Last – Modified – дата и время последнего изменения затребованного
Last – Modified – дата и время последнего изменения затребованного
В теле ответа содержится код передаваемого клиенту ресурса
В теле ответа содержится код передаваемого клиенту ресурса
Http-сообщения состоят из запросов клиента серверу и ответов сервера
Http-сообщения состоят из запросов клиента серверу и ответов сервера
Простые запросы и простые ответы Simple-Request и Simple-Response не
Простые запросы и простые ответы Simple-Request и Simple-Response не
Full-Request =Request-Line *( General-Header | Request-Header |
Full-Request =Request-Line *( General-Header | Request-Header |
Спецификацмя CGI Common Gateway Interface
Спецификацмя CGI Common Gateway Interface
Обмен данными в Web-технологии подразделяется в соответствии с типами
Обмен данными в Web-технологии подразделяется в соответствии с типами
Методы доступа
Методы доступа
Метод GET
Метод GET
Метод GET
Метод GET
Метод POST
Метод POST
Основные моменты CGI
Основные моменты CGI
Понятие CGI-скрипта
Понятие CGI-скрипта
Типы запросов
Типы запросов
В запросах по методу GET данные от клиента передаются скрипту в
В запросах по методу GET данные от клиента передаются скрипту в
Механизмы приема данных скриптом
Механизмы приема данных скриптом
<HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <FORM METHOD="POST"
<HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <FORM METHOD="POST"
Файл first
Файл first
print "<br>"; print "<h1>Стандартный поток ввода</h1>"; print
print "<br>"; print "<h1>Стандартный поток ввода</h1>"; print
Аргументы командной строки
Аргументы командной строки
Стандартный поток ввода -метод GET
Стандартный поток ввода -метод GET
В текстовые поля формы файл f2
В текстовые поля формы файл f2
Переменные окружения
Переменные окружения
Серверные переменные в PHP
Серверные переменные в PHP
Использование технологии ASP
Использование технологии ASP
Сложности CGI-программирования
Сложности CGI-программирования
В-третьих, необходимо декодировать значения, которые были присоединены
В-третьих, необходимо декодировать значения, которые были присоединены
Объект HttpResponse
Объект HttpResponse
Основные свойства объекта Response
Основные свойства объекта Response
Основные методы объекта Response
Основные методы объекта Response
Объект HttpRequest
Объект HttpRequest
Объект HttpRequest
Объект HttpRequest
Свойства объекта HttpRequest
Свойства объекта HttpRequest
Свойства объекта HttpRequest
Свойства объекта HttpRequest
Свойства объекта HttpRequest
Свойства объекта HttpRequest
Обработка запроса клиента
Обработка запроса клиента
Обработка запроса клиента: данные формы
Обработка запроса клиента: данные формы
Пример html-файла
Пример html-файла
Пример файла WebForm1
Пример файла WebForm1
Результат работы программы
Результат работы программы
Результат работы программы
Результат работы программы
Обработка запроса клиента: заголовки HTTP-запроса
Обработка запроса клиента: заголовки HTTP-запроса
Доступ к стандартным переменным CGI
Доступ к стандартным переменным CGI
Серверные переменные в ASP
Серверные переменные в ASP
for (int i=0; i<names
for (int i=0; i<names
Результат работы программы
Результат работы программы
Переменная:REMOTE_ADDR Значение=127
Переменная:REMOTE_ADDR Значение=127
Вывод отдельных серверных переменных
Вывод отдельных серверных переменных
Session["v1"]=this
Session["v1"]=this
Механизм генерации отклика
Механизм генерации отклика
Поток стандартного вывода в Perl
Поток стандартного вывода в Perl
Поток стандартного вывода в ASP
Поток стандартного вывода в ASP

Презентация: «Протокол HTTP». Автор: Лариса Полякова. Файл: «Протокол HTTP.ppt». Размер zip-архива: 108 КБ.

Протокол HTTP

содержание презентации «Протокол HTTP.ppt»
СлайдТекст
1 Протокол HTTP

Протокол HTTP

2 Программы, обеспечивающие работу WWW, используют для обмена данными

Программы, обеспечивающие работу WWW, используют для обмена данными

протокол HTTP (протокол уровня приложений). Протокол HTTP является протоколом, не запоминающим состояния, т.е. каждое подключение закрывается сразу же после того, как сервер отправит ответ клиенту. Таким образом, Web-сервер не запоминает никаких сведений о предыдущих запросах.

3 Спецификация MIME

Спецификация MIME

Протоколы приложений могут обмениваться только текстовой информацией. Для обеспечения возможности передачи двоичных файлов по протоколу HTTP используется спецификация MIME (Multipurpose Internet Mail Extension). Согласно спецификации MIME, формат данных описывается следующим образом: enctype=<тип>/<подтип> Атрибут enctype определяет тип кодирования данных в теле сообщения и разбиение сообщения на части. Тип определяет, какого рода информация содержится в двоичном файле (текст, приложение, изображение, видеозапись и т.п.), а подтип – формат файла. Например: text/plain, где text- указывает на наличие текстового содержимого, а plain –уточняет его как простой текст.

4 Приведем некоторые часто встречающиеся типы: text/html text/plain

Приведем некоторые часто встречающиеся типы: text/html text/plain

image/gif image/jpeg image/tiff audio/basic video/mpeg multipart/mixed multipart/form-data multipart/x-www-form-urlrncoded application/octet-stream application/postscript

5 Сеанс взаимодействия с сервером HTTP в наиболее общем виде состоит из

Сеанс взаимодействия с сервером HTTP в наиболее общем виде состоит из

следующих шагов: Установление TCP-соединения; Запрос клиента; Ответ сервера; Разрыв TCP-соединения. Запрос клиента представляет собой просто требование на передачу HTML-документа или какого-либо другого ресурса. Ответ сервера – код запрашиваемого ресурса.

6 Запрос клиента

Запрос клиента

Строка состояния; Поля заголовка; Пустая строка; Тело запроса. Тело запроса в большинстве случаев отсутствует. Наиболее часто тело запроса используется в тех случаях, когда требуется передать серверу информацию, введенную пользователем.

7 Строка состояния имеет следующий формат: <метод запроса><URL ресурса>

Строка состояния имеет следующий формат: <метод запроса><URL ресурса>

<версия протокола HTTP> Метод запроса определяет вид воздействия на ресурс, указанный с помощью URL. Наиболее важны два метода: GET и POST. Версия протокола обычно задается в следующем формате: HTTP/<версия>

8 Поля заголовка используются для передачи серверу дополнительной

Поля заголовка используются для передачи серверу дополнительной

информации. Каждое поле заголовка имеет следующий формат: <имя поля>:<значение> Рассмотрим назначение некоторых наиболее часто используемых полей заголовка: Host – доменное имя или IP-адрес сервера, к которому обращается клиент; From –адрес электронной почты пользователя; Accept – MIME –типы данных, обрабатываемые клиентом.;

9 Accept – Language - идентификаторы, с помощью которых сообщаются языки

Accept – Language - идентификаторы, с помощью которых сообщаются языки

поддерживаемые клиентом. Разделяются запятыми; Accept – Charset – идентификаторы, сообщающие серверу о поддерживаемых клиентом кодировках. Разделяются запятыми; Content-Type – MIME – тип данных, содержащихся в теле запроса; Content – Length – число символов, содержащихся в теле запроса; Connection – управляет TCP-соединением. Если в этом поле задано значение Close, то после обработки запроса соединение разрывается. Если задано значение Keep – Alive, то соединение сохраняется и может быть использовано для следующих запросов; User-Agent – информация о клиенте.

10 Ответ сервера

Ответ сервера

С точки зрения Web-рограммирования, структура ответа сервера гораздо более важна, чем структура запроса клиента. Выполняющиеся на сервере программы должны быть способны сами сформировать ответ клиенту. Основные компоненты ответа включают в себя следующие элементы: Строку состояния; Поля заголовка; Пустую строку; Тело ответа.

11 Строка состояния

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

Строка состояния имеет следующий формат: <версия протокола> <код ответа> <пояснения> Версия протокола задается в том формате, что и в запросе клиента; Код ответа представляет собой трехзначное десятичное число, обозначающее результат обработки запроса клиента сервером; Пояснения представляют собой расшифровку кода ответа в символьном виде. Это просто строка символов, не обрабатываемая клиентом и предназначенная для системного администратора.

12 Коды ответов подразделяются на пять групп

Коды ответов подразделяются на пять групп

Группа, к которой относится код ответа, определяется старшим разрядом кода: 1 – информационное сообщение, означает, что сервер продолжает обработку запроса клиента, используется редко; 2 – сообщение об успешной обработке запроса клиента; 3 – сообщение о перенаправлении запроса; 4 – сообщение об ошибке в запросе клиента; 5 – сообщение об ошибке сервера.

13 Поля заголовка в ответе сервера имеют такую же структуру, что и в

Поля заголовка в ответе сервера имеют такую же структуру, что и в

запросе клиента. Server - наименование и номер версии Web-сервера; Allow – список методов, доступных для данного сервера; Content – Language –перечень языков, которые должен поддерживать клиент для корректного отображения передаваемого ресурса; Content –Type – MIME –тип данных, содержащихся в теле ответа сервера; Content- Length – размер данных, содержащихся в теле ответа сервера;

14 Last – Modified – дата и время последнего изменения затребованного

Last – Modified – дата и время последнего изменения затребованного

ресурса; Date – дата и время создания ответа сервера; Expires - дата и время, определяющие момент, когда информация, переданная клиенту, считается устаревшей; Location – адрес реального расположении ресурса. Используется для переадресаии запроса; Cache – Control – директивы управления кешированием

15 В теле ответа содержится код передаваемого клиенту ресурса

В теле ответа содержится код передаваемого клиенту ресурса

Это может быть HTML-документ или любой другой ресурс. Способ обработки ресурса указывается в поле заголовка Content – type.

16 Http-сообщения состоят из запросов клиента серверу и ответов сервера

Http-сообщения состоят из запросов клиента серверу и ответов сервера

клиенту: http-message=simple-request | simple-response | full-request | full-response

17 Простые запросы и простые ответы Simple-Request и Simple-Response не

Простые запросы и простые ответы Simple-Request и Simple-Response не

могут пересылать информацию в заголовках HTTP-сообщений и ограничиваются использованием метода «GET»: Simple-Request=@GET@ SP Request-URL CRLF Simple-Response= [Entity-Body]

18 Full-Request =Request-Line *( General-Header | Request-Header |

Full-Request =Request-Line *( General-Header | Request-Header |

Entity-Header ) CRLF [Entity-Body] Full-Response=Status-Line *( General-Header | Response-Header | Entity-Header ) CRLF [Entity-Body]

19 Спецификацмя CGI Common Gateway Interface

Спецификацмя CGI Common Gateway Interface

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

20 Обмен данными в Web-технологии подразделяется в соответствии с типами

Обмен данными в Web-технологии подразделяется в соответствии с типами

методов доступа протокола HTTP и видами запросов в спецификации CGI. Основных методов доступа два: GET и POST. Помимо них часто используются HEAD и PUT. Виды запросов CGI разделяют на два основных MIME-типа: application/x-www-form-urlencoded и multipart/form-data. Второй тип запроса специально создан для передачи больших внешних файлов.

21 Методы доступа

Методы доступа

Самой главной директивой HTTP-запроса является метод доступа. Он указывается первым словом в первой строке запроса. В нашем примере это GET. Различают четыре основных метода доступа: GET; HEAD; POST; PUT.

22 Метод GET

Метод GET

Метод GET применяется клиентом при запросе к серверу по умолчанию. В этом случае клиент сообщает адрес ресурса (URL), который он хочет получить, версию протокола HTTP, поддерживаемые им MIME-типы документов, версию и название клиентского программного обеспечения. Все эти параметры указываются в заголовке HTTP-запроса. Тело в запросе не передается.

23 Метод GET

Метод GET

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

24 Метод POST

Метод POST

Метод POST — это альтернатива методу GET. При обмене данными по методу POST в запросе клиента присутствует тело HTTP-сообщения. Это тело может формироваться из данных, которые вводятся в HTML-форме, или из присоединенного внешнего файла. В отклике, как правило, присутствует и заголовок, и тело HTTP-сообщения. Чтобы инициировать обмен по методу POST, в атрибуте METHOD контейнера FORM следует указать значение "post".

25 Основные моменты CGI

Основные моменты CGI

Основное назначение CGI — обработка данных из HTML-форм. CGI определяет стандартный способ обмена данными между прикладной программой и HTTP-сервером. В CGI имеет смысл выделить следующие основные моменты: понятие CGI-скрипта; типы запросов; механизмы приема данных скриптом; механизм генерации отклика скриптом.

26 Понятие CGI-скрипта

Понятие CGI-скрипта

CGI-скриптом называют программу, написанную на любом языке программирования или командном языке, которая осуществляет обмен данными с HTTP-сервером в соответствии со спецификацией Common Gateway Interface. Наиболее популярными языками для разработки скриптов являются Perl и С.

27 Типы запросов

Типы запросов

Различают два типа запросов к CGI-скриптам: по методу GET и по методу POST. В свою очередь, запросы по методу GET подразделяются на запросы по типам кодирования: isindex и form-urlencoded, а запросы по методу POST — multipart/form-data и form-urlencoded.

28 В запросах по методу GET данные от клиента передаются скрипту в

В запросах по методу GET данные от клиента передаются скрипту в

переменной окружения QUERY_STRING. В запросах по методу POST данные от скрипта передаются в потоке стандартного ввода скрипта. При передаче через поток стандартного ввода в переменной окружения CONTENT_LENGHT указывается число передаваемых символов.

29 Механизмы приема данных скриптом

Механизмы приема данных скриптом

Скрипт может принять данные от сервера тремя способами: через переменные окружения; через аргументы командной строки; через поток стандартного ввода.

30 <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <FORM METHOD="POST"

<HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <FORM METHOD="POST"

action= "http://php/cgi-bin/first.pl"> <input type=text name=text1> <input type=text name=text2> <input type=submit name=action value=click1> </FORM> </BODY> </HTML>

31 Файл first

Файл first

pl

#!/usr/local/bin/perl #first.pl print "Content-Type: text/html\n\n"; print "<html><body>"; print "<h1>Переменные окружения</h1>"; print "<table border=1>"; # чтение и вывод в стандартный поток всех переменных окружения foreach $hkey (keys %ENV){ print "<tr><td>"; print "$hkey"; print "</td><td>"; print "$ENV{$hkey}"; print "</tr>";} print "</table>";

32 print "<br>"; print "<h1>Стандартный поток ввода</h1>"; print

print "<br>"; print "<h1>Стандартный поток ввода</h1>"; print

"CONTENT_LENGTH=$ENV{CONTENT_LENGTH}"; read STDIN,$query,$ENV{CONTENT_LENGTH}; print "Query:$query"; print "<br>"; print "<h1>Аргументы командной строки</h1>"; foreach $arg (@ARGV) { print "$arg\n"; } print "</body></html>";

33 Аргументы командной строки

Аргументы командной строки

Arg1 arg2 привет если URL http://php/cgi-bin/first.Pl?Arg1+arg2+привет

34 Стандартный поток ввода -метод GET

Стандартный поток ввода -метод GET

CONTENT_LENGTH= query: URL при методе GET http://php/cgi-bin/first.Pl?Text1=123&text2=%ef%f0%e8%e2%e5%f2&action=click1 привет

35 В текстовые поля формы файл f2

В текстовые поля формы файл f2

html введено 123 и «привет» CONTENT_LENGTH=48 Query:text1=123&text2=%EF%F0%E8%E2%E5%F2&action=click1 URL при методе POST http://php/cgi-bin/first.pl

Стандартный поток ввода –метод POST

36 Переменные окружения

Переменные окружения

SCRIPT_NAME -/cgi-bin/first.pl SERVER_NAME - Php REQUEST_METHOD -POST | GET CONTENT_LENGTH - 48 | “” QUERY_STRING =“” | text1=123&text2=%EF%F0%E8%E2%E5%F2&action=click1 SERVER_PROTOCOL - HTTP/1.1 SERVER_ADDR - 192.168.0.254

37 Серверные переменные в PHP

Серверные переменные в PHP

<? echo "Server port: ".$SERVER_PORT. “<br />”; echo "Content length: ".getenv('CONTENT_LENGTH').”<br />”; ?>

38 Использование технологии ASP

Использование технологии ASP

NET

Построение Web-страниц динамически мотивируется прежде всего тем, что результаты могут основываться на пользовательском вводе. Общий способ передачи информации с Web-страницы в серверную программу предполагает, что данные формы можно добавлять в конец адреса URL после вопросительного знака, если это GET-запросы, или посылать серверу в отдельной строке, если это POST-запросы. Выделение необходимой информации из данных формы традиционно является одной из наиболее трудоемких работ при CGI-программировании.

39 Сложности CGI-программирования

Сложности CGI-программирования

Во-первых, чтение данных для GET-запросов (в традиционном CGI-программировании это выполняется через переменную окружения QUERY_STRING) и POST-запросов (в традиционном CGI-программировании это чтение стандартного ввода) выполняется по-разному. Во-вторых, необходимо выделить пары (имя = значение), разделенные амперсандом (&), затем отделить имена параметров от их значений.

40 В-третьих, необходимо декодировать значения, которые были присоединены

В-третьих, необходимо декодировать значения, которые были присоединены

к URL. Буквенно-цифровые символы при передаче не изменяются , пробелы преобразуются в нави плюс, другие символы – в последовательности %ХХ, где ХХ- ASCII-значение символа (шестнадцатеричное). Затем серверная программа должна выполнить процесс в обратном порядке. Четвертая причина, по которой синтаксический разбор данных, передаваемых в форме, является очень трудоемким, заключается в том, что значения параметров могут быть опущены или параметр может иметь больше одного значения. Использование технологии ASP.NET привлекательно тем, что весь синтаксический анализ формы осуществляется автоматически.

41 Объект HttpResponse

Объект HttpResponse

Встроенный объект HttpResponse выполняет пересылку информации браузеру удаленного пользователя. Разработчик также может обращаться к этому объекту посредством свойства Response объекта Page.

42 Основные свойства объекта Response

Основные свойства объекта Response

Cookies- в свойстве хранится коллекция cookies, которая будет установлена на локальную систему пользователя.

43 Основные методы объекта Response

Основные методы объекта Response

Redirect –метод перенаправляет пользователя к другому ресурсу. Если необходимо вывести отдельную Web- страницу, которая уже сформирована и ее URL известен, следует воспользоваться этим методом. В качестве параметра методу передается URL-ресурса, который будет отправлен удаленному пользователю. Write- один из наиболее часто используемых методов объекта HttpResponse. Записывает в выводимый поток текстовую информацию.

44 Объект HttpRequest

Объект HttpRequest

Если объект HttpResponse позволяет разработчику с максимальным удобством отправлять информацию удаленному пользователю, не заботясь о различных проблемах физического уровня, а сосредотачиваясь именно на логике отсылаемого пакета, то объект HttpRequest помогает разработчику легко ориентироваться в разнообразной информации, которая приходит от удаленного пользователя. В этот объект помещается информация, посылаемая браузером на сервер.

45 Объект HttpRequest

Объект HttpRequest

В блоке принимаемой информации могут находиться: данные, введенные пользователем в элементы управления форм, URL запрошенного ресурса, содержание cookies и многое другое. Объект HttpRequest поможет разработчику получить именно ту информацию, которая ему нужна для функционирования приложения.

46 Свойства объекта HttpRequest

Свойства объекта HttpRequest

Browser – составное свойство, в котором указывается список параметров браузера удаленного пользователя. Объект подобного типа имеет свои свойства: Cookies –свойство содержит коллекцию cookies, которые передаются на сервер браузером пользователя. Files- свойство содержит коллекцию файлов, переданы пользователю на сервер. Свойство имеет смысл обрабатывать только в том случае, если указан MIME-тип muilipart/form-data. Headers-в свойстве содержится коллекция заголовков протокола HTTP, переданных браузером удаленного пользователя на сервер.

47 Свойства объекта HttpRequest

Свойства объекта HttpRequest

ContentLength – в данном свойстве указывается размер блока информации, переданного на сервер. Размер рассчитывается в байтах, значение свойства имеет тип Integer. HttpMethod –свойство указывает, какой именно тип передачи информации на сервер был использован браузером удаленного пользователя, GET. POST или HEAD. Params – свойство объединяет в себе коллекцию все переменны из QueryString, Form, ServerVariable и Cookies.

48 Свойства объекта HttpRequest

Свойства объекта HttpRequest

QueryString – в свойстве находится коллекция с наименованиями все перемены и все параметров, переданы в строке URL. Обычно в эту строку добавляются наименования органов ввода информации из форм и значений, введенных в них пользователем, если применен метод передачи CET. ServerVariables - свойство позволяет приложению получить доступ к коллекции наименований стандартны свойств сервера и браузера. URL- в данном составном свойстве собрана самая различная информация об URL, запрошенном пользователем.

49 Обработка запроса клиента

Обработка запроса клиента

В информации, которую можно получить через объект Request, выделим: Данные формы; Заголовки HTTP-запроса; Стандартные переменные CGI;

50 Обработка запроса клиента: данные формы

Обработка запроса клиента: данные формы

Использование метода Params для чтения отдельных значений из заранее определенных параметров данных формы; Обработка GET- и POST-запросов.

51 Пример html-файла

Пример html-файла

<html> <head> <title></title> </head> <body> <form name=f1 method=post action=WebForm1.aspx> <INPUT id="Text1" type="text" name="Text1"> <INPUT id="Text2" type="text" name="Text2"> <INPUT id="Button1" type="submit" value="Button" name="Button1"> </form> </body> </html>

52 Пример файла WebForm1

Пример файла WebForm1

aspx

private void Page_Load(object sender, System.EventArgs e) { this.Response.Write("URL "+ this.Request.Url.ToString()+"<br>"); this.Response.Write("Параметр 0"+ this.Request.Params[0]+"<br>"); this.Response.Write("Параметр 1« +this.Request.Params[1]+"<br>"); this.Response.Write("Параметр 2« +this.Request.Params[2]+"<br>"); this.Response.Write("Метод « +this.Request.HttpMethod+"<br>"); this.Response.Write("Строка « +this.Request.QueryString+"<br>"); this.Response.Write("Длина « +this.Request.ContentLength+"<br>"); }

53 Результат работы программы

Результат работы программы

URL http://adm-119-1/PolyakovaLN/WebApplication12/WebForm1.aspx?Text1=privet&Text2=12345&Button1=Button Параметр 0 privet Параметр 1 12345 Параметр 2 Button Метод GET Строка Text1=privet&Text2=12345&Button1=Button Длина 0

54 Результат работы программы

Результат работы программы

URL http://adm-119-1/PolyakovaLN/WebApplication12/WebForm1.aspx Параметр 0 privet Параметр 1 12345 Параметр 2 Button Метод POST Строка Длина 39

55 Обработка запроса клиента: заголовки HTTP-запроса

Обработка запроса клиента: заголовки HTTP-запроса

HTTP-информация передается от браузера на сервер в форме заголовков запроса. HTTP-заголовки отличаются от данных формы. Данные формы поступают прямо из пользовательского ввода и посылаются как часть адреса URL для GET-запросов или в отдельных строках для POST-запросов. Заголовки запросов, со своей стороны, косвенно устанавливаются браузером и посылаются немедленно за начальной строкой GET-или POST-запроса Чтение заголовков из запросов осуществляется методом Headers объекта HttpRequest.

56 Доступ к стандартным переменным CGI

Доступ к стандартным переменным CGI

Переменные CGI - это совокупность информации о текущем запросе. Часть переменных содержит информацию из заголовков и строки HTTP- запроса (например, данные формы), Другая часть переменных получает ее непосредственно из сокета (например, имя и IP-адрес хоста, осуществляющего запрос), Информация для третьей части поступает из параметров установки сервера (например, преобразование адресов URL в реальные каталоги и файлы).

57 Серверные переменные в ASP

Серверные переменные в ASP

NET

private void Page_Load(object sender, System.EventArgs e) { string[] names; string[] vals; names=new string[100]; vals=new string[100]; names=this.Request.ServerVariables.AllKeys;

58 for (int i=0; i<names

for (int i=0; i<names

GetUpperBound(0);i++) { this.Response.Write("Переменная:“ +names[i]); vals=this.Request.ServerVariables.GetValues(i); this.Response.Write( " Значение="+vals[0].ToString()+"<br>");

59 Результат работы программы

Результат работы программы

Переменная:REMOTE_USER Значение=ITS-SERVER\larisa Переменная:CONTENT_LENGTH Значение=0 Переменная:QUERY_STRING Значение= Переменная:REQUEST_METHOD Значение=GET

60 Переменная:REMOTE_ADDR Значение=127

Переменная:REMOTE_ADDR Значение=127

0.0.1 Переменная:URL Значение=/WebApplication3/WebForm5.aspx Переменная:SERVER_PROTOCOL Значение=HTTP/1.1

61 Вывод отдельных серверных переменных

Вывод отдельных серверных переменных

private void Page_Load(object sender, System.EventArgs e) { this.Response.Write(this.Request.HttpMethod); this.Response.Write(this.Request.QueryString); this.Response.Write(this.Request.ContentLength+"<br>"); this.Response.Write(this.Request.Url+"<br>"); this.Response.Write(this.Request.UserAgent+"<br>"); this.Response.Write("par="+ this.Request.Params["t1"]+"<br>");

62 Session["v1"]=this

Session["v1"]=this

Request.Params["t1"]; this.Response.Cookies["c1"].Value= this.Request.Params["t1"].ToString();

63 Механизм генерации отклика

Механизм генерации отклика

Существует только один способ вернуть данные серверу и, соответственно, браузеру пользователя – писать в поток стандартного вывода (STDOUT). При этом скрипт должен формировать HTTP-сообщение:

64 Поток стандартного вывода в Perl

Поток стандартного вывода в Perl

#!/usr/local/bin/perl #first.pl print "Content-Type: text/html\n\n"; print "<html><body>"; print "<h1>Переменные окружения</h1>"; print "<table border=1>"; …

65 Поток стандартного вывода в ASP

Поток стандартного вывода в ASP

NET

this.Response.Write("<form name=f1 method=post action=WebForm1.aspx>"); this.Response.Write("<input type=text name=t1>"); this.Response.Write("<input type=submit value=forma11></form>"); this.Response.Write("<form name=f1 method=post action=WebForm4.aspx>"); this.Response.Write("<input type=text name=t1>"); this.Response.Write("<input type=submit value=forma12></form>");

«Протокол HTTP»
http://900igr.net/prezentacija/informatika/protokol-http-170207.html
cсылка на страницу
Урок

Информатика

130 тем
Слайды