SlideShare a Scribd company logo
1 of 19
Download to read offline
HTTP
Основы Веб-программирования
Кафедра Интеллектуальных Информационных Технологий, ИнФО, УрФУ
1
Ресурсы
http://lectureskpd.readthedocs.org/kpd/3.http.html
https://tools.ietf.org/html/rfc2616
2
Особенности
• Через него передается основная часть Веб трафика
• Создавался для передачи HTML
• Сейчас используется для передачи любых данных
• Текстовый протокол
• 4го (прикладного) уровня стека протоколов TCP/IP
• использует TCP соединение
• может выполнить несколько запросов в рамках
одного TCP соединения
3
HTTP в роли транспорта
Может выступать в роли транспорта для других
протоколов прикладного уровня
• SOAP
• XML-RPC
• JSON-RPC
• WebDAV
4
Request/Response
Общение между клиентом и сервером происходит в два
этапа:
• Запрос
• Ответ
Такую архитектуру еще называют клиент-серверная
5
HTTP сообщения
Соответственно делятся на 2 типа:
• HTTP запрос
• HTTP ответ
6
Формат сообщения
• Стартовая строка (обязательное требование)
• Заголовки
• Пустая строка (только если есть тело сообщения)
• Тело сообщения
7
Пример запроса
GET /ru/latest/net/http.html HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Connection: keep-alive
Host: lectureswww.readthedocs.org
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/
8
Стартовая строка запроса
GET /ru/latest/net/http.html HTTP/1.1
Состоит из:
• Метод
• URI
• HTTP/Версия
Где:
• Метод — название запроса, одно слово заглавными
буквами. (GET, POST, PUT, DELETE)
• URI определяет путь к запрашиваемому документу.
• Версия — пара разделённых точкой цифр.
Например: 1.0 или 1.1
9
Методы
Отличаются только! названием!
Но есть условное разделение:
• GET – получить
• POST – записать
• PUT – изменить
• DELETE – удалить
Пример такого использования RESTfull API
10
URL
11
Заголовки
Заголовки выглядят в виде “key: value”
• Connection: keep-alive
• Host: lectureswww.readthedocs.org
• User-Agent: Mozilla/5.0
И делятся на:
• Основные заголовки
• Заголовки ответа
• Заголовки сущности (запроса)
12
Пример ответа
HTTP/1.1 200 OK
Server: nginx/1.4.6 (Ubuntu)
Date: Mon, 26 Jan 2015 16:54:33 GMT
Content-Type: text/html
Content-Length: 48059
Last-Modified: Mon, 26 Jan 2015 16:22:21 GMT
Connection: keep-alive
Vary: Accept-Encoding
ETag: "54c669bd-bbbb"
X-Served: Nginx
X-Subdomain-TryFiles: True
X-Deity: hydra-lts
Accept-Ranges: bytes
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
13
Стартовая строка ответа
HTTP/1.1 200 OK
Состоит из:
• HTTP/Версия
• Код состояния
• Краткое описание
Где:
• Версия — как в запросе.
• Код состояния (англ. Status Code) — три цифры.
Например: 200, 301, 404, 500
• Пояснение (англ. Reason Phrase) — К коду ответа.
Никак не влияет на сообщение и является
необязательным. (OK, Not Found, Internal Server Error)
14
Cookie
Браузер обычно сохраняет эту информацию на
компьютере.
Например в файл cookies.sqlite.
И при каждом обращении к сайту передает связанные с
ним значения.
HTTP/1.1 200 OK
Content-type: text/html
Set-Cookie: name=value
15
Cookie
Cookie дают возможность организовывать сессии между
клиентом и сервером.
16
Браузер
17
FireBug
18
telnet
$ telnet readthedocs.org 80
Trying 162.209.114.75...
Connected to readthedocs.org.
Escape character is '^]'.
GET /ru/latest/net/http.html HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Connection: keep-alive
Host: lectureswww.readthedocs.org
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/
19

More Related Content

What's hot

Стажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTPСтажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTP
7bits
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
7bits
 
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IPСтажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
SmartTools
 
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
Ontico
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
Andrey Smirnov
 
Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎
mayperl
 

What's hot (20)

Анализ трафика
Анализ трафикаАнализ трафика
Анализ трафика
 
Http session
Http sessionHttp session
Http session
 
Веб-сервер
Веб-серверВеб-сервер
Веб-сервер
 
Спецификация WSGI (PEP-333)
Спецификация WSGI (PEP-333)Спецификация WSGI (PEP-333)
Спецификация WSGI (PEP-333)
 
07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера
 
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)
 
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTPСтажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTP
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
 
Консольные приложения на Go
Консольные приложения на GoКонсольные приложения на Go
Консольные приложения на Go
 
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IPСтажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
 
Доставка данных в реальном времени.
Доставка данных в реальном времени. Доставка данных в реальном времени.
Доставка данных в реальном времени.
 
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
 
Файлообменники
ФайлообменникиФайлообменники
Файлообменники
 
Алексей Андросов "HTML5 в Я.Почте"
Алексей Андросов "HTML5 в Я.Почте"Алексей Андросов "HTML5 в Я.Почте"
Алексей Андросов "HTML5 в Я.Почте"
 
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
 
08 - Web-технологии. Архитектура frontend-backend
08 - Web-технологии. Архитектура frontend-backend08 - Web-технологии. Архитектура frontend-backend
08 - Web-технологии. Архитектура frontend-backend
 
Bash scripting
 Bash scripting Bash scripting
Bash scripting
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
 
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
 
Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎
 

Viewers also liked

Nutrition Innovation Lab (2015) Egypt Literature Review Final (Feb 2016
Nutrition Innovation Lab (2015) Egypt Literature Review Final (Feb 2016Nutrition Innovation Lab (2015) Egypt Literature Review Final (Feb 2016
Nutrition Innovation Lab (2015) Egypt Literature Review Final (Feb 2016
Ashish Pokharel
 
Email ID Database USA,Europe,AUSTRLIA,World Wide,UAE-GlobeBulkMarketing: s2d13
Email ID Database USA,Europe,AUSTRLIA,World Wide,UAE-GlobeBulkMarketing: s2d13Email ID Database USA,Europe,AUSTRLIA,World Wide,UAE-GlobeBulkMarketing: s2d13
Email ID Database USA,Europe,AUSTRLIA,World Wide,UAE-GlobeBulkMarketing: s2d13
Zifzi Infotech
 

Viewers also liked (15)

Tenis de mesa adaptado bueno aa
Tenis de mesa adaptado bueno aaTenis de mesa adaptado bueno aa
Tenis de mesa adaptado bueno aa
 
El bádminton adaptado
El bádminton adaptadoEl bádminton adaptado
El bádminton adaptado
 
Egypt_policy_Protocol
Egypt_policy_ProtocolEgypt_policy_Protocol
Egypt_policy_Protocol
 
Nutrition Innovation Lab (2015) Egypt Literature Review Final (Feb 2016
Nutrition Innovation Lab (2015) Egypt Literature Review Final (Feb 2016Nutrition Innovation Lab (2015) Egypt Literature Review Final (Feb 2016
Nutrition Innovation Lab (2015) Egypt Literature Review Final (Feb 2016
 
look for freind in facebook
look for freind in facebooklook for freind in facebook
look for freind in facebook
 
Goalball
GoalballGoalball
Goalball
 
Урок 20: Протокол HTTP - Евгений Концевой
Урок 20: Протокол HTTP - Евгений КонцевойУрок 20: Протокол HTTP - Евгений Концевой
Урок 20: Протокол HTTP - Евгений Концевой
 
Sistema de organizacion, necesidad de la implicacion de la direccion
Sistema de organizacion, necesidad de la implicacion de la direccion Sistema de organizacion, necesidad de la implicacion de la direccion
Sistema de organizacion, necesidad de la implicacion de la direccion
 
Updated List Of Database 2009
Updated List Of Database 2009Updated List Of Database 2009
Updated List Of Database 2009
 
Email ID Database USA,Europe,AUSTRLIA,World Wide,UAE-GlobeBulkMarketing: s2d13
Email ID Database USA,Europe,AUSTRLIA,World Wide,UAE-GlobeBulkMarketing: s2d13Email ID Database USA,Europe,AUSTRLIA,World Wide,UAE-GlobeBulkMarketing: s2d13
Email ID Database USA,Europe,AUSTRLIA,World Wide,UAE-GlobeBulkMarketing: s2d13
 
Usa free email list
Usa free email listUsa free email list
Usa free email list
 
Introduction to HTTP protocol
Introduction to HTTP protocolIntroduction to HTTP protocol
Introduction to HTTP protocol
 
Http Vs Https .
Http Vs Https . Http Vs Https .
Http Vs Https .
 
555 Million Email Lists
555 Million Email Lists555 Million Email Lists
555 Million Email Lists
 
HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP)HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP)
 

Similar to HTTP протокол

Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPS
Yandex
 
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложенияСтажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
7bits
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформу
Vadim Kruchkov
 
Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...
Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...
Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...
it-people
 
Стажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложенияСтажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложения
7bits
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1
Technopark
 

Similar to HTTP протокол (20)

Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPS
 
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложенияСтажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
 
Курс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. WebКурс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. Web
 
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)
 
Lesson1
Lesson1Lesson1
Lesson1
 
Кто сказал «WAF»?
Кто сказал «WAF»?Кто сказал «WAF»?
Кто сказал «WAF»?
 
C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.
 
Web лекция 1
Web   лекция 1Web   лекция 1
Web лекция 1
 
Perl и SPDY
Perl и SPDYPerl и SPDY
Perl и SPDY
 
Phalcon - самый быстрый PHP Framework
Phalcon - самый быстрый PHP FrameworkPhalcon - самый быстрый PHP Framework
Phalcon - самый быстрый PHP Framework
 
Cпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложенияCпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложения
 
JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.
 
Протокол HTTP
Протокол HTTPПротокол HTTP
Протокол HTTP
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформу
 
Лекция #2. Принцип организации World Wide Web
Лекция #2. Принцип организации World Wide WebЛекция #2. Принцип организации World Wide Web
Лекция #2. Принцип организации World Wide Web
 
Введение в курс
Введение в курсВведение в курс
Введение в курс
 
Введение в Web-технологии
Введение в Web-технологииВведение в Web-технологии
Введение в Web-технологии
 
Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...
Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...
Использование SOA для построения сложных веб проектов - Виталий Глибин, PyCon...
 
Стажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложенияСтажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложения
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1
 

HTTP протокол

  • 1. HTTP Основы Веб-программирования Кафедра Интеллектуальных Информационных Технологий, ИнФО, УрФУ 1
  • 3. Особенности • Через него передается основная часть Веб трафика • Создавался для передачи HTML • Сейчас используется для передачи любых данных • Текстовый протокол • 4го (прикладного) уровня стека протоколов TCP/IP • использует TCP соединение • может выполнить несколько запросов в рамках одного TCP соединения 3
  • 4. HTTP в роли транспорта Может выступать в роли транспорта для других протоколов прикладного уровня • SOAP • XML-RPC • JSON-RPC • WebDAV 4
  • 5. Request/Response Общение между клиентом и сервером происходит в два этапа: • Запрос • Ответ Такую архитектуру еще называют клиент-серверная 5
  • 6. HTTP сообщения Соответственно делятся на 2 типа: • HTTP запрос • HTTP ответ 6
  • 7. Формат сообщения • Стартовая строка (обязательное требование) • Заголовки • Пустая строка (только если есть тело сообщения) • Тело сообщения 7
  • 8. Пример запроса GET /ru/latest/net/http.html HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Connection: keep-alive Host: lectureswww.readthedocs.org User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/ 8
  • 9. Стартовая строка запроса GET /ru/latest/net/http.html HTTP/1.1 Состоит из: • Метод • URI • HTTP/Версия Где: • Метод — название запроса, одно слово заглавными буквами. (GET, POST, PUT, DELETE) • URI определяет путь к запрашиваемому документу. • Версия — пара разделённых точкой цифр. Например: 1.0 или 1.1 9
  • 10. Методы Отличаются только! названием! Но есть условное разделение: • GET – получить • POST – записать • PUT – изменить • DELETE – удалить Пример такого использования RESTfull API 10
  • 12. Заголовки Заголовки выглядят в виде “key: value” • Connection: keep-alive • Host: lectureswww.readthedocs.org • User-Agent: Mozilla/5.0 И делятся на: • Основные заголовки • Заголовки ответа • Заголовки сущности (запроса) 12
  • 13. Пример ответа HTTP/1.1 200 OK Server: nginx/1.4.6 (Ubuntu) Date: Mon, 26 Jan 2015 16:54:33 GMT Content-Type: text/html Content-Length: 48059 Last-Modified: Mon, 26 Jan 2015 16:22:21 GMT Connection: keep-alive Vary: Accept-Encoding ETag: "54c669bd-bbbb" X-Served: Nginx X-Subdomain-TryFiles: True X-Deity: hydra-lts Accept-Ranges: bytes <!DOCTYPE html> <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> 13
  • 14. Стартовая строка ответа HTTP/1.1 200 OK Состоит из: • HTTP/Версия • Код состояния • Краткое описание Где: • Версия — как в запросе. • Код состояния (англ. Status Code) — три цифры. Например: 200, 301, 404, 500 • Пояснение (англ. Reason Phrase) — К коду ответа. Никак не влияет на сообщение и является необязательным. (OK, Not Found, Internal Server Error) 14
  • 15. Cookie Браузер обычно сохраняет эту информацию на компьютере. Например в файл cookies.sqlite. И при каждом обращении к сайту передает связанные с ним значения. HTTP/1.1 200 OK Content-type: text/html Set-Cookie: name=value 15
  • 16. Cookie Cookie дают возможность организовывать сессии между клиентом и сервером. 16
  • 19. telnet $ telnet readthedocs.org 80 Trying 162.209.114.75... Connected to readthedocs.org. Escape character is '^]'. GET /ru/latest/net/http.html HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Connection: keep-alive Host: lectureswww.readthedocs.org User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/ 19