Иван Бибилов: http-протокол
TRANSCRIPT
HTTPHyperText Transfer Protocol
«протокол передачи гипертекста»
Бибилов Иван ВладимировичШРИ, Екатеринбург, осень-2013
Гипертекст — термин, введённый Тедом Нельсоном в 1963 году для обозначения текста «ветвящегося или выполняющего действия по запросу». Обычно гипертекст представляется набором текстов, содержащих узлы перехода между ними, которые позволяют избирать читаемые сведения или последовательность чтения.
HTML – частный случай гипертекста
URN, URL, URI
isbn:978-5-5128-2556-3http://news.yandex.ru/world.html
<схема>://<логин>:<пароль>@<хост>:<порт>/<URL путь>?<параметры>#<якорь>‐
http://playboyarchive.com/
GET / HTTP/1.1Host: playboyarchive.comUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateCookie: __utma=37709153.422365961.1364128733.1364128733.1364128733.1; __utmz=37709153.1364128733.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)Connection: keep-aliveHTTP/1.1 200 OKContent-Type: text/htmlContent-Encoding: gzipLast-Modified: Tue, 17 May 2011 18:53:33 GMTAccept-Ranges: bytesEtag: "2a32ddb8c314cc1:0"Vary: Accept-EncodingServer: Microsoft-IIS/7.0X-Powered-By: ASP.NETDate: Sun, 07 Apr 2013 06:58:05 GMTContent-Length: 1064
WWW погружена в Интернет
Построена на базе стека протоколов TCP/IP.
HTTP – протокол прикладного уровня, TCP-порт – 80.
В самом низу – Ethernet, WiFi
● Прикладной ● Представления● Сеансовый● Транспортный● Сетевой● Канальный● Физический
Сетевая модель OSI (open systems interconnection basic reference model — базовая эталонная модель взаимодействия открытых систем)
HTTP. Актуальные версии – 1.0, 1.1
● Текстовый, человекочитаемый● Простой● Не хранит состояния● Нет шифрования
HTTP, методы
● GET – запрос содержимого.● POST – передача параметров.● HEAD – только заголовки, без тела.● PUT – загрузить содержимое.● DELETE – удалить ресурс.
Коды ответов
● 1xx Informational («Информационный»)● 2xx Success («Успех»)● 3xx Redirection («Перенаправление»)● 4xx Client Error («Ошибка клиента»)● 5xx Server Error («Ошибка сервера»)
Заголовки● Authorization: Basic QwxhZGRpbjpvcGVuIHNlc2FtZQ==
● Authorization: Digest username=...● Content-Length: 34567● If-Modified-Since: Sat, 19 Oct 2013 13:41:13 GMT
● Accept: text/plain● Connection: Keep-Alive● Cookie: name=value● Set-Cookie: name=value
HTTP может служить транспортом(SOAP, RPC)
POST /DailyInfoWebServ/DailyInfo.asmx HTTP/1.1Host: www.cbr.ruContent-Type: text/xml; charset=utf-8Content-Length: 308SOAPAction: "http://web.cbr.ru/GetLatestDate"
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetLatestDate xmlns="http://web.cbr.ru/" /> </soap:Body></soap:Envelope>HTTP/1.1 200 OKCache-Control: no-cachePragma: no-cacheContent-Length: 371Content-Type: text/xml; charset=utf-8Expires: -1Server: Microsoft-IIS/7.0X-AspNet-Version: 2.0.50727X-Powered-By: ASP.NETX-Powered-By: ASP.NETDate: Mon, 21 Oct 2013 09:48:00 GMT
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GetLatestDateResponse xmlns="http://web.cbr.ru/"><GetLatestDateResult>20131019</GetLatestDateResult></GetLatestDateResponse></soap:Body></soap:Envelope>
REST (Representational State Transfer), стиль построения архитектуры распределенного приложения
● Небольшое число форматов (XML, JSON)
● «Запрос-ответ»
● Нет сохранения состояния
WebSocket Протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени.