Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемИнна Анненкова
1 Протокол HTTP Веб-программирование
2 Назначение HTTP (HyperText Transfer Protocol) - «протокол передачи гипертекста») прикладной протокол стека TCP/IP; символьный, клиент-серверный основной протокол WWW; «транспорт» для других прикладных протоколов (SOAP, XML-RPC, WebDAV …); HTTP/1.0 - RFC 1945, HTTP/1.1 - RFC 2616
3 Участники обмена Веб-серверы поставщики услуг хранения и обработки информации Apache, IIS, nginx... Клиенты конечные потребители услуг сервера Браузеры: Mozilla, IE, Opera, Safari, Chrome … Роботы: пауки, кроулеры, дятлы & so on... Прокси-серверы транспортные посредники (кэширование данных) Squid, Naviscope, Kerio, UserGate...
4 Процедура обмена in nuce: 1. Клиент запрашивает ресурс (по URI) 2.Прокси-сервер проверяет запрос на наличие ресурса в кэше (hit || miss) 3.Веб-сервер возвращает запрошенный ресурс
5 Структура протокола Стартовая строка Методы Заголовки Коды состояния Тело сообщения
6 Стартовая строка Запрос клиента Метод Ресурс Протокол/Версия GET /index.html HTTP/1.1 Ответ сервера Протокол/Версия Код Состояния Пояснение HTTP/ OK
7 Методы протокола GET - запрос содержимого GET /path/resource?param1=value1 HTTP/1.1 Данные передаются в адресной строке Условные GET содержат заголовки If-Modified-Since, If-Match и подобные (кэширование) Частичные GET содержат в запросе Range (докачка, многопоточное скачивание)
8 Еще методы... POST - применяется для передачи пользовательских данных (из веб-форм) и загрузки файлов на сервер. Данные передаются в теле запроса Повторные запросы могут изменять возвращаемые результаты Ответы сервера не кэшируются
9 Опять методы... OPTIONS - определение возможностей веб- сервера и/или параметров соединения HEAD - применяется для извлечения метаданных и валидации ресурса (link check) TRACE - Возвращает полученный запрос так, что клиент может увидеть, что́ прокси- сервера добавляют или изменяют в запросе
10 Снова методы... PUT - Применяется для загрузки содержимого запроса по указанному адресу. PATCH - Аналогично PUT, но применяется только к фрагменту ресурса. DELETE - Удаляет указанный ресурс. LINK - Устанавливает связь указанного ресурса с другими. CONNECT - используется для туннелирования трафика
11 Заголовки General Headers должны включаться в любое сообщение клиента и сервера Request Headers только в запросах клиента Response Headers только в ответах сервера Entity Headers сопровождают каждую сущность сообщения, применяются при передаче множественного содержимого
12 Пример обмена Запрос: GET /index.html HTTP/1.1 Host: localhost User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/ Firefox/3.0b5 Accept: text/html Connection: close Ответ: HTTP/ OK Date: Wed, 11 Feb :20:59 GMT Server: Apache X-Powered-By: PHP/ ubuntu5wm1 Last-Modified: Wed, 11 Feb :20:59 GMT Content-Language: ru Content-Type: text/html; charset=utf-8 Content-Length: 1234 Connection: close тут пустая строка (обязательно!)...
13 Коды состояния 1xx Informational Состояние процесса передачи 2xx Success Успешное выполнение 3xx Redirection Перенаправление 4xx Client Error Ошибки клиента 5xx Server Error Ошибки сервера
14 Тело сообщения Непосредственно запрошенные данные гипертекст, двоичные данные Тип определяется значением заголовка Content- Type Content-Type: text/html; MIME types Multipurpose Internet Mail Extensions text/html, text/plain, multypart/mixed, text/xml, application/xml... (подробно: types/media-types.xhtml)
15 Pro et Contra Достоинства - простота, расширяемость, распространённость Недостатки - большой размер сообщений, отсутствие «навигации» (клиент не может явным образом запросить список доступных файлов, как в протоколе FTP), нет поддержки распределённых вычислений В 1998 году W3C предложил альтернативный протокол HTTP-NG: до сих пор на стадии разработки.
16 more: RFC 2616, RTFM
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.