Top Banner
138

Алексей Бережной - http-протокол

Jun 16, 2015

Download

Technology

Yandex

Структурированный рассказ об основных принципах работы http-протокола.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Алексей Бережной - http-протокол
Page 2: Алексей Бережной - http-протокол

HTTP-протокол

Бережной Алексей разработчик интерфейсов

Page 3: Алексей Бережной - http-протокол

3

Page 4: Алексей Бережной - http-протокол

4

HTTP - один из основных протоколов

• Гипертекст

Page 5: Алексей Бережной - http-протокол

5

HTTP - один из основных протоколов

• Гипертекст • Картинки

Page 6: Алексей Бережной - http-протокол

6

HTTP - один из основных протоколов

• Гипертекст • Картинки • Сообщение между программами и серверами

Page 7: Алексей Бережной - http-протокол

7

HTTP - один из основных протоколов

• Гипертекст • Картинки • Сообщение между программами и серверами

• Видео

Page 8: Алексей Бережной - http-протокол

8

HTTP - один из основных протоколов

• Гипертекст • Картинки • Сообщение между программами и серверами

• Видео • Музыка

Page 9: Алексей Бережной - http-протокол

9

HTTP - один из основных протоколов

• Гипертекст • Картинки • Сообщение между программами и серверами

• Видео • Музыка • Торрент-трекеры

Page 10: Алексей Бережной - http-протокол

10

HTTP - один из основных протоколов

• Гипертекст • Картинки • Сообщение между программами и серверами

• Видео • Музыка • Торрент-трекеры • WebDAV, XML-RPC, SOAP

Page 11: Алексей Бережной - http-протокол

11

HTTP - один из основных протоколов

• Гипертекст • Картинки • Сообщение между программами и серверами

• Видео • Музыка • Торрент-трекеры • WebDAV, XML-RPC, SOAP • Можно использовать для обмена любыми данными

Page 12: Алексей Бережной - http-протокол

12

Некоторые факты

• Применяется в программах для скачивания обновлений

Page 13: Алексей Бережной - http-протокол

13

Некоторые факты

• Часто применяется в программах для скачивания обновлений

• В 2006 году обогнал P2P-сети по доле трафика, доля составила 46%

Page 14: Алексей Бережной - http-протокол

14

Некоторые факты

• Часто применяется в программах для скачивания обновлений

• В 2006 году обогнал P2P-сети по доле трафика, доля составила 46%

• Используется для управления сетевыми устройствами, такими как роутеры и принтеры

Page 15: Алексей Бережной - http-протокол

15

Некоторые факты

• Часто применяется в программах для скачивания обновлений

• В 2006 году обогнал P2P-сети по доле трафика, доля составила 46%

• Используется для управления сетевыми устройствами, такими как роутеры и принтеры

• Во многих браузерах не отображается в адресной строке

Page 16: Алексей Бережной - http-протокол

16

История развития

• HTTP / 0.9 – 1992 год • HTTP / 1.0 – 1996 год • HTTP / 1.1 – 1999 год

Page 17: Алексей Бережной - http-протокол

17

Достоинства

• Простота

Page 18: Алексей Бережной - http-протокол

18

Достоинства

• Простота • Расширяемость

Page 19: Алексей Бережной - http-протокол

19

Достоинства

• Простота • Расширяемость • Распространённость

Page 20: Алексей Бережной - http-протокол

20

Недостатки

• Размер

Page 21: Алексей Бережной - http-протокол

21

Недостатки

• Размер • Открытость

Page 22: Алексей Бережной - http-протокол

22

Недостатки

• Размер • Открытость • Нет механизма сохранения состояния

Page 23: Алексей Бережной - http-протокол

23

Недостатки

• Размер • Открытость • Нет механизма сохранения состояния • Сложности с авторизацией

Page 24: Алексей Бережной - http-протокол

24

Адресация ресурсов в сети

Page 25: Алексей Бережной - http-протокол

25

ftp://ftp.is.co.za/rfc/rfc1808.txt!!http://www.ietf.org/rfc/rfc2396.txt!!ldap://[2001:db8::7]/c=GB?objectClass?one!!mailto:[email protected]!!news:comp.infosystems.www.servers.unix!!tel:+1-816-555-1212!!telnet://192.0.2.16:80/!!urn:oasis:names:specification:docbook:dtd:xml:4.1.2!!

URI

Page 26: Алексей Бережной - http-протокол

26

Структура URL

<схема>://<логин>:<пароль>@<хост>:<порт>/<URL‐путь>?<параметры>#<якорь>

Page 27: Алексей Бережной - http-протокол

27

Структура URL

<схема>://<логин>:<пароль>@<хост>:<порт>/<URL‐путь>?<параметры>#<якорь>

ftp http https file mailto xmpp

Page 28: Алексей Бережной - http-протокол

28

Структура URL

<схема>://<логин>:<пароль>@<хост>:<порт>/<URL‐путь>?<параметры>#<якорь> user:password

user

Page 29: Алексей Бережной - http-протокол

29

Структура URL

<схема>://<логин>:<пароль>@<хост>:<порт>/<URL‐путь>?<параметры>#<якорь> localhost:8080

yandex.ru 213.180.204.11

Page 30: Алексей Бережной - http-протокол

30

Структура URL

<схема>://<логин>:<пароль>@<хост>:<порт>/<URL‐путь>?<параметры>#<якорь> somedir/somefile.html

Page 31: Алексей Бережной - http-протокол

31

Структура URL

<схема>://<логин>:<пароль>@<хост>:<порт>/<URL‐путь>?<параметры>#<якорь> text=http&from=fx3&lr=213

Page 32: Алексей Бережной - http-протокол

32

Структура URL

<схема>://<логин>:<пароль>@<хост>:<порт>/<URL‐путь>?<параметры>#<якорь>

someanchor

Page 33: Алексей Бережной - http-протокол

33

Допустимые символы

• Латинские буквы

clck.ru/26aMp clck.ru/27hjp

Page 34: Алексей Бережной - http-протокол

34

Допустимые символы

• Латинские буквы • Цифры

clck.ru/26aMp clck.ru/27hjp

Page 35: Алексей Бережной - http-протокол

35

Допустимые символы

• Латинские буквы • Цифры • Специальные символы $-_.+!*'(),

clck.ru/26aMp clck.ru/27hjp

Page 36: Алексей Бережной - http-протокол

36

Допустимые символы

• Латинские буквы • Цифры • Специальные символы $-_.+!*'(), • Зарезервированные символы ; /? :@=&

clck.ru/26aMp clck.ru/27hjp

Page 37: Алексей Бережной - http-протокол

37

Символ ; можно использовать вместо &

URI "http://host/?x=1&y=2"!!<a href="http://host/?x=1&#38;y=2">!!<a href="http://host/?x=1&amp;y=2">!

Допустимые символы

clck.ru/26B9r

Page 38: Алексей Бережной - http-протокол

38

Кодирование URL

1. Кодирование символов

Page 39: Алексей Бережной - http-протокол

39

Кодирование URL

1. Кодирование символов 2. Запись кода в шестнадцатиричном представлении, и знак процента в начале

Page 40: Алексей Бережной - http-протокол

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

Page 41: Алексей Бережной - http-протокол

41

Структура протокола

Page 42: Алексей Бережной - http-протокол

42

Структура протокола

1. Стартовая строка (Starting line)

Page 43: Алексей Бережной - http-протокол

43

Структура протокола

1. Стартовая строка (Starting line) 2. Заголовки (Headers)

Page 44: Алексей Бережной - http-протокол

44

Структура протокола

1. Стартовая строка (Starting line) 2. Заголовки (Headers) 3. Тело сообщения (Message body)

Page 45: Алексей Бережной - http-протокол

45

<Метод> <URI> HTTP/1.1!<Заголовки>!!Referer: http://www.yandex.ru/!

</Заголовки>!<Тело сообщения>!!param=value&a=1&b=2&c=3!

</Тело сообщения>!!

Структура протокола

Page 46: Алексей Бережной - http-протокол

46

Структура протокола

Page 47: Алексей Бережной - http-протокол

47

Структура протокола

Page 48: Алексей Бережной - http-протокол

48

Структура протокола

Page 49: Алексей Бережной - http-протокол

49

Структура протокола

Page 50: Алексей Бережной - http-протокол

50

GET /foo/bar!!!

Стартовая строка запроса

•  GET  <URI>  (для  HTTP  /  0.9)  

Page 51: Алексей Бережной - http-протокол

51

GET /foo/bar!!GET /foo/bar2 HTTP/1.0!!

Стартовая строка запроса

•  GET  <URI>  (для  HTTP  /  0.9)  •  <метод>  <URI>  HTTP/<версия>  (для  HTTP  /  1.0-­‐1.1)  

Page 52: Алексей Бережной - http-протокол

52

HTTP/1.0 200 OK!

Стартовая строка ответа

•  HTTP/<версия>  <код  состояния>  <пояснение>  

Page 53: Алексей Бережной - http-протокол

53

Методы

• GET

Page 54: Алексей Бережной - http-протокол

54

Методы

• GET • POST

Page 55: Алексей Бережной - http-протокол

55

Методы

• GET • POST • OPTIONS, HEAD, PUT, PATCH, TRACE, LINK,

UNLINK, CONNECT

clck.ru/26B9h clck.ru/26B9j

Page 56: Алексей Бережной - http-протокол

56

GET /index.php?param=value&a=1&b=2&c=3 HTTP/1.1!<Заголовки>!

GET и POST

POST /index.php HTTP/1.1!<Заголовки>!<Тело сообщения>!!param=value&a=1&b=2&c=3!

</Тело сообщения>!!

Page 57: Алексей Бережной - http-протокол

57

GET и POST (отличия)

GET   POST  

идемпотентность  

информация  в  стартовой  строке  

можно  передавать  файлы  

Page 58: Алексей Бережной - http-протокол

58

Коды состояния HTTP

Page 59: Алексей Бережной - http-протокол

59

Информационные ответы (1xx)

• 100 Continue • 101 Switching protocols • 102 Progressing

clck.ru/28Tlv

Page 60: Алексей Бережной - http-протокол

60

Ответы успеха (2xx)

• 200 OK • 201 Created • 202 Accepted • 203 Non-Authoritative Information • 204 No Content • 205 Reset Content • 206 Partial Content • 207 Multi-Status • 226 IM Used

clck.ru/28Tlv

Page 61: Алексей Бережной - http-протокол

61

Ответы успеха (2xx)

Page 62: Алексей Бережной - http-протокол

62

Ответы перенаправления (3xx)

• 300 Multiple Choices • 301 Moved Permanently • 302 Moved Temporarily • 302 Found • 303 See Other • 304 Not Modified • 305 Use Proxy • 307 Temporary Redirect

clck.ru/28Tlv

Page 63: Алексей Бережной - http-протокол

63

Ответы перенаправления (3xx)

Page 64: Алексей Бережной - http-протокол

64

Ответы перенаправления (3xx)

Page 65: Алексей Бережной - http-протокол

65

Ошибки клиента (4xx)

• 400 Bad Request • 401 Unauthorized • 402 Payment Required • 403 Forbidden • 404 Not Found • 405 Method Not Allowed • 406 Not Acceptable • 407 Proxy Authentication Required • 408 Request Timeout

clck.ru/28Tlv

Page 66: Алексей Бережной - http-протокол

66

Ошибки клиента (4xx)

• 409 Conflict • 410 Gone • 411 Length Required • 412 Precondition Failed • 413 Request Entity Too Large • 414 Request-URI Too Large • 415 Unsupported Media Type • 416 Requested Range Not Satisfiable • 417 Expectation Failed

clck.ru/28Tlv

Page 67: Алексей Бережной - http-протокол

67

Ошибки клиента (4xx)

• 422 Unprocessable Entity • 423 Locked • 424 Failed Dependency • 425 Unordered Collection • 426 Upgrade Required • 449 Retry With • 456 Unrecoverable Error

clck.ru/28Tlv

Page 68: Алексей Бережной - http-протокол

68

Ошибки клиента (4xx)

Page 69: Алексей Бережной - http-протокол

69

Ошибки сервера (5xx)

• 500 Internal Server Error • 501 Not Implemented • 502 Bad Gateway • 503 Service Unavailable • 504 Gateway Timeout • 505 HTTP Version Not Supported

clck.ru/28Tlv

Page 70: Алексей Бережной - http-протокол

70

Ошибки сервера (5xx)

• 506 Variant Also Negotiates • 507 Insufficient Storage • 508 Loop Detected • 509 Bandwidth Limit Exceeded • 510 Not Extended

clck.ru/28Tlv

Page 71: Алексей Бережной - http-протокол

71

Ошибки сервера (5xx)

Page 72: Алексей Бережной - http-протокол

72

Заголовки HTTP

• General Headers

Page 73: Алексей Бережной - http-протокол

73

Заголовки HTTP

• General Headers • Request Headers

Page 74: Алексей Бережной - http-протокол

74

Заголовки HTTP

• General Headers • Request Headers • Response Headers

Page 75: Алексей Бережной - http-протокол

75

Заголовки HTTP

• General Headers • Request Headers • Response Headers • Entity Headers

Page 76: Алексей Бережной - http-протокол

76

Пример заголовков

Page 77: Алексей Бережной - http-протокол

77

!HTTP/1.1 200 OK!Date: Mon, 17 Sep 2012 13:05:11 GMT!Transfer-Encoding: chunked!Connection: keep-alive!Pragma: no-cache!Cache-Control: no-cache, no-store, max-age=0, must-revalidate!Server: nginx!Vary: X-Real-SSL-Protocol!Content-Type: text/html; charset=UTF-8!Expires: Mon, 17 Sep 2012 13:05:11 GMT!Content-Encoding: gzip!

Пример заголовков

Page 78: Алексей Бережной - http-протокол

78

General Headers

• Cache-Control • Connection • Date • Pragma • Trailer • Transfer-Encoding • Upgrade • Via • Warning

clck.ru/26Kxu

Page 79: Алексей Бережной - http-протокол

79

Request Headers

• Accept • Accept-Charset • Accept-Encoding • Accept-Language • Authorization • Expect • From • Host •  If-Match

clck.ru/26Kxu

Page 80: Алексей Бережной - http-протокол

80

Request Headers

•  If-Modified-Since •  If-None-Match •  If-Range •  If-Unmodified-Since • Max-Forwards • Range • Referer • TE • User-Agent

clck.ru/26Kxu

Page 81: Алексей Бережной - http-протокол

81

Entity Headers запроса • Content-Encoding • Content-Language • Content-Length • Content-Location • Content-Range • Content-Type • Content-Version • Derived-From • Link • Title clck.ru/26Kxu

Page 82: Алексей Бережной - http-протокол

82

Response Headers

• Accept-Ranges • Age • Alternates • Etag • Location • Public • Retry-After • Server • Vary

clck.ru/26Kxu

Page 83: Алексей Бережной - http-протокол

83

Entity Headers ответа

• Allow • Content-Encoding • Content-Language • Content-Length • Content-Location • Content-Range • Content-Type • Content-Version

clck.ru/26Kxu

Page 84: Алексей Бережной - http-протокол

84

Entity Headers ответа

• Derived-From • Expires • Last-Modified • Link • Title

clck.ru/26Kxu

Page 85: Алексей Бережной - http-протокол

85

X-Frame-Options

X-Frame-Options: DENY;!// запретит загрузку через <iframe>!!!!

Нестандартные заголовки

Page 86: Алексей Бережной - http-протокол

86

X-Frame-Options

X-Frame-Options: DENY;!// запретит загрузку через <iframe>!!!X-Frame-Options: SAMEORIGIN; !// разрешит загрузку через <iframe>, но только если и <iframe>, и страница, его загружающая, находятся на одном домене!

Нестандартные заголовки

Page 87: Алексей Бережной - http-протокол

87

X-Requested-With

X-Requested-With: XMLHttpRequest!// используется для идентификации ajax запросов

Нестандартные заголовки

Page 88: Алексей Бережной - http-протокол

88

// используются чтобы пошутить =)!X-Awesome: If you found this header please email us about a writing job!!!X-Konkurentam: Preved!!X-ServerNickName: Wolverine!

Нестандартные заголовки

clck.ru/27QeD

Page 89: Алексей Бережной - http-протокол

89

Ключевые заголовки

Page 90: Алексей Бережной - http-протокол

90

Кодирование содержимого

• Accept-Encoding: <compress | gzip | deflate | identity>

• Content-Encoding

clck.ru/28Tm5

Page 91: Алексей Бережной - http-протокол

91

Кодирование передачи

• Transfer-Encoding: <chunked | compress | deflate | gzip | identity>

clck.ru/28Tm1

Page 92: Алексей Бережной - http-протокол

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!

Кодирование передачи

Page 93: Алексей Бережной - http-протокол

93

Множественное содержимое

• Content-Type: multipart/<form-data | byteranges | mixed>

clck.ru/26B9t

Page 94: Алексей Бережной - http-протокол

94

Кэширование

Page 95: Алексей Бережной - http-протокол

95

Заголовок Expires

Expires: Thu, 28 Jul 2022 21:01:19 GMT!

Кэширование

Page 96: Алексей Бережной - http-протокол

96

Заголовок Expires

GET

Page 97: Алексей Бережной - http-протокол

97

Заголовок Expires

GET

200 OK Expires: Thu, 28 Jul 2022 21:01:19 GMT

Page 98: Алексей Бережной - http-протокол

98

Заголовок Expires

Page 99: Алексей Бережной - http-протокол

99

Кэширование

Заголовок Last-Modified

Last-Modified: Tue, 18 Sep 2012 13:12:14 GMT!

Page 100: Алексей Бережной - http-протокол

100

Заголовок Last-Modified

GET

Page 101: Алексей Бережной - http-протокол

101

Заголовок Last-Modified

GET

200 OK Last-Modified: Tue, 18 Sep 2012 13:12:14 GMT

Page 102: Алексей Бережной - http-протокол

102

Заголовок Last-Modified

GET If-Modified-Since: Tue, 18 Sep 2012 13:12:14 GMT

Page 103: Алексей Бережной - http-протокол

103

Заголовок Last-Modified

GET If-Modified-Since: Tue, 18 Sep 2012 13:12:14 GMT

304 Not Modified Last-Modified: Tue, 18 Sep 2012 13:12:14 GMT

Page 104: Алексей Бережной - http-протокол

104

Заголовок Last-Modified

GET If-Modified-Since: Tue, 18 Sep 2012 13:12:14 GMT

304 Not Modified Last-Modified: Tue, 18 Sep 2012 13:12:14 GMT

Page 105: Алексей Бережной - http-протокол

105

Заголовок ETag

Etag: "3990584542"!

Кэширование

Page 106: Алексей Бережной - http-протокол

106

Заголовок ETag

GET

Page 107: Алексей Бережной - http-протокол

107

Заголовок ETag

GET

200 OK Etag: "3990584542"

Page 108: Алексей Бережной - http-протокол

108

Заголовок ETag

GET If-None-Match: "3990584542"

Page 109: Алексей Бережной - http-протокол

109

Заголовок ETag

GET If-None-Match: "3990584542"

304 Not Modified Etag: "3990584542"

Page 110: Алексей Бережной - http-протокол

110

Заголовок ETag

GET If-None-Match: "3990584542"

304 Not Modified Etag: "3990584542"

Page 111: Алексей Бережной - http-протокол

111

Заголовок Cache-Control

Cache-Control: max-age=3600, must-revalidate!

Кэширование

•  max-age=n •  s-maxage=n •  public •  private •  no-cache •  no-store •  must-revalidate •  proxy-revalidate •  no-transform

clck.ru/1gJ5

Page 112: Алексей Бережной - http-протокол

112

Заголовок Cache-Control

Page 113: Алексей Бережной - http-протокол

113

Cookie

Page 114: Алексей Бережной - http-протокол

114

Cookie

• Аутентификация пользователя • Хранение информации о пользователе • Отслеживание переходов пользователя • Ведение статистики

Page 115: Алексей Бережной - http-протокол

115

Cookie

GET

Page 116: Алексей Бережной - http-протокол

116

Cookie

GET

200 OK Set-Cookie: name=value

Page 117: Алексей Бережной - http-протокол

117

Cookie

GET/POST Cookie: name=value

Page 118: Алексей Бережной - http-протокол

118

Кроме пары имя/значение, 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!

Атрибуты cookie

Page 119: Алексей Бережной - http-протокол

119

Кроме пары имя/значение, 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!

Атрибуты cookie

Page 120: Алексей Бережной - http-протокол

120

Кроме пары имя/значение, 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!

Атрибуты cookie

Page 121: Алексей Бережной - http-протокол

121

Кроме пары имя/значение, 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!

Атрибуты cookie

Page 122: Алексей Бережной - http-протокол

122

Кроме пары имя/значение, 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!

Атрибуты cookie

Page 123: Алексей Бережной - http-протокол

123

Кроме пары имя/значение, 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!

Атрибуты cookie

Page 124: Алексей Бережной - http-протокол

124

!Set-Cookie: <name>=<value>[; expires=<date>]![; domain=<domain_name>][; path=<some_path>]![; secure][; HttpOnly]!

Атрибуты cookie, безопасность

clck.ru/28TQT

Page 125: Алексей Бережной - http-протокол

125

Условия истечения срока хранения

• В конце сессии, если сookie не являются постоянными

Page 126: Алексей Бережной - http-протокол

126

Условия истечения срока хранения

• В конце сессии, если сookie не являются постоянными

• Дата истечения была указана и срок хранения вышел

Page 127: Алексей Бережной - http-протокол

127

Условия истечения срока хранения

• В конце сессии, если сookie не являются постоянными

• Дата истечения была указана и срок хранения вышел

• Браузер удалил сookie по запросу пользователя

Page 128: Алексей Бережной - http-протокол

128

Cookieless domain

Cookie ~ 4KB clck.ru/28TQN

Page 129: Алексей Бережной - http-протокол

129

HTTP Comet

clck.ru/27xOR

Page 130: Алексей Бережной - http-протокол

130

HTTP Comet

clck.ru/27xOR

Page 131: Алексей Бережной - http-протокол

131

HTTP Comet способы реализации

• Частый опрос (polling)

Page 132: Алексей Бережной - http-протокол

132

HTTP Comet способы реализации

• Частый опрос (polling) • Длинный опрос (long-poll)

Page 133: Алексей Бережной - http-протокол

133

HTTP Comet способы реализации

• Частый опрос (polling) • Длинный опрос (long-poll) • WebSocket

Page 134: Алексей Бережной - http-протокол

134

HTTPS

• Расширение HTTP • HTTP работающий через SSL и TLS • Используются сертификаты • Не кешируется

clck.ru/28TQX

Page 135: Алексей Бережной - http-протокол

135

HTTPS

• Расширение HTTP • HTTP работающий через SSL и TLS • Используются сертификаты • Не кешируется (миф clck.ru/28TQh)

clck.ru/28TQX

Page 136: Алексей Бережной - http-протокол

136

Инструменты

Page 137: Алексей Бережной - http-протокол

137

Инструменты

•  tcpdump • Wireshark • Fiddler • Браузерные инструменты (HttpFox, FireBug,

Chrome DevTools, Opera Dragonfly)

Page 138: Алексей Бережной - http-протокол

Бережной Алексей

разработчик интерфейсов

[email protected]

Спасибо!