4. HTTP - один из основных протоколов
• Гипертекст
4
5. HTTP - один из основных протоколов
• Гипертекст
• Картинки
5
6. HTTP - один из основных протоколов
• Гипертекст
• Картинки
• Сообщение между программами и
серверами
6
7. HTTP - один из основных протоколов
• Гипертекст
• Картинки
• Сообщение между программами и
серверами
• Видео
7
8. HTTP - один из основных протоколов
• Гипертекст
• Картинки
• Сообщение между программами и
серверами
• Видео
• Музыка
8
9. HTTP - один из основных протоколов
• Гипертекст
• Картинки
• Сообщение между программами и
серверами
• Видео
• Музыка
• Торрент-трекеры
9
10. HTTP - один из основных протоколов
• Гипертекст
• Картинки
• Сообщение между программами и
серверами
• Видео
• Музыка
• Торрент-трекеры
• WebDAV, XML-RPC, SOAP
10
11. HTTP - один из основных протоколов
• Гипертекст
• Картинки
• Сообщение между программами и
серверами
• Видео
• Музыка
• Торрент-трекеры
• WebDAV, XML-RPC, SOAP
• Можно использовать для обмена любыми
данными
11
12. Некоторые факты
• Применяется в программах для скачивания
обновлений
12
13. Некоторые факты
• Часто применяется в программах для
скачивания обновлений
• В 2006 году обогнал P2P-сети по доле
трафика, доля составила 46%
13
14. Некоторые факты
• Часто применяется в программах для
скачивания обновлений
• В 2006 году обогнал P2P-сети по доле
трафика, доля составила 46%
• Используется для управления сетевыми
устройствами, такими как роутеры и
принтеры
14
15. Некоторые факты
• Часто применяется в программах для
скачивания обновлений
• В 2006 году обогнал P2P-сети по доле
трафика, доля составила 46%
• Используется для управления сетевыми
устройствами, такими как роутеры и
принтеры
• Во многих браузерах не отображается в
адресной строке
15
16. История развития
• HTTP / 0.9 – 1992 год
• HTTP / 1.0 – 1996 год
• HTTP / 1.1 – 1999 год
16
37. Допустимые символы
Символ ; можно использовать вместо &
URI "http://host/?x=1&y=2"!
!
<a href="http://host/?x=1&y=2">!
!
<a href="http://host/?x=1&y=2">!
clck.ru/26B9r
37
39. Кодирование URL
1. Кодирование символов
2. Запись кода в шестнадцатиричном
представлении, и знак процента в начале
39
40. Кодирование URL
1. Кодирование символов
2. Запись кода в шестнадцатиричном
представлении, и знак процента в начале
http://bla.com/Мир => http://bla.com/%D0%9C%D0%B8%D1%80
http://bla.com/мир => http://bla.com/%EC%E8%F0
40
55. Методы
• GET
• POST
• OPTIONS, HEAD, PUT, PATCH, TRACE, LINK,
UNLINK, CONNECT
clck.ru/26B9h
55
clck.ru/26B9j
56. GET и POST
GET /index.php?param=value&a=1&b=2&c=3 HTTP/1.1!
<Заголовки>!
POST /index.php HTTP/1.1!
<Заголовки>!
<Тело сообщения>!
!param=value&a=1&b=2&c=3!
</Тело сообщения>!
!
56
57. GET и POST (отличия)
GET
POST
идемпотентность
информация
в
стартовой
строке
можно
передавать
файлы
57
86. Нестандартные заголовки
X-Frame-Options
X-Frame-Options: DENY;!
// запретит загрузку через <iframe>!
!
!
X-Frame-Options: SAMEORIGIN; !
// разрешит загрузку через <iframe>, но только если
и <iframe>, и страница, его загружающая, находятся
на одном домене
!
86
87. Нестандартные заголовки
X-Requested-With
X-Requested-With: XMLHttpRequest!
// используется для идентификации ajax запросов
87
88. Нестандартные заголовки
// используются чтобы пошутить =)
!
X-Awesome: If you found this header please email us
about a writing job!
!
!
X-Konkurentam: Preved!
!
X-ServerNickName: Wolverine!
88 clck.ru/27QeD
92. Кодирование передачи
HTTP/1.1 200 OK!
Server: nginx/1.0.4!
Date: Thu, 06 Oct 2011 16:14:01 GMT!
Content-Type: text/html!
Transfer-Encoding: chunked!
Connection: keep-alive!
Vary: Accept-Encoding!
X-Powered-By: PHP/5.3.6!
!
25!
This is the data in the first chunk!
!
1C!
and this is the second one!
!
3!
con!
8!
sequence!
0!
92
118. Атрибуты cookie
Кроме пары имя/значение, cookie может содержать срок
действия, путь и доменное имя.
yandexuid=8187969851326274991; expires=Sat, 08 Jan
2022 09:43:11 GMT; path=/; domain=.yandex.ru!
!
userinfo=%7B%22resolution%22%3A%221600x1200%22%7D;
expires=Thu, 15 Mar 2012 06:17:06 GMT; path=/;
domain=.images.yandex.ru!
118
119. Атрибуты cookie
Кроме пары имя/значение, cookie может содержать срок
действия, путь и доменное имя.
yandexuid=8187969851326274991; expires=Sat, 08 Jan
2022 09:43:11 GMT; path=/; domain=.yandex.ru!
!
userinfo=%7B%22resolution%22%3A%221600x1200%22%7D;
expires=Thu, 15 Mar 2012 06:17:06 GMT; path=/;
domain=.images.yandex.ru!
119
120. Атрибуты cookie
Кроме пары имя/значение, cookie может содержать срок
действия, путь и доменное имя.
yandexuid=8187969851326274991; expires=Sat, 08 Jan
2022 09:43:11 GMT; path=/; domain=.yandex.ru!
!
userinfo=%7B%22resolution%22%3A%221600x1200%22%7D;
expires=Thu, 15 Mar 2012 06:17:06 GMT; path=/;
domain=.images.yandex.ru!
120
121. Атрибуты cookie
Кроме пары имя/значение, cookie может содержать срок
действия, путь и доменное имя.
yandexuid=8187969851326274991; expires=Sat, 08 Jan
2022 09:43:11 GMT; path=/; domain=.yandex.ru!
!
userinfo=%7B%22resolution%22%3A%221600x1200%22%7D;
expires=Thu, 15 Mar 2012 06:17:06 GMT; path=/;
domain=.images.yandex.ru!
121
122. Атрибуты cookie
Кроме пары имя/значение, cookie может содержать срок
действия, путь и доменное имя.
yandexuid=8187969851326274991; expires=Sat, 08 Jan
2022 09:43:11 GMT; path=/; domain=.yandex.ru!
!
userinfo=%7B%22resolution%22%3A%221600x1200%22%7D;
expires=Thu, 15 Mar 2012 06:17:06 GMT; path=/;
domain=.images.yandex.ru!
122
123. Атрибуты cookie
Кроме пары имя/значение, cookie может содержать срок
действия, путь и доменное имя.
yandexuid=8187969851326274991; expires=Sat, 08 Jan
2022 09:43:11 GMT; path=/; domain=.yandex.ru!
!
userinfo=%7B%22resolution%22%3A%221600x1200%22%7D;
expires=Thu, 15 Mar 2012 06:17:06 GMT; path=/;
domain=.images.yandex.ru!
123
126. Условия истечения срока хранения
• В конце сессии, если сookie не являются
постоянными
• Дата истечения была указана и срок
хранения вышел
126
127. Условия истечения срока хранения
• В конце сессии, если сookie не являются
постоянными
• Дата истечения была указана и срок
хранения вышел
• Браузер удалил сookie по запросу
пользователя
127