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

136

Upload: yandex

Post on 11-Nov-2014

10.733 views

Category:

Technology


2 download

DESCRIPTION

 

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 /foo/bar2 HTTP/1.0!!

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

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

Page 51: Алексей Бережной — «HTTP-протокл»

51

HTTP/1.0 200 OK!

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

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

Page 52: Алексей Бережной — «HTTP-протокл»

52

Методы

• GET

Page 53: Алексей Бережной — «HTTP-протокл»

53

Методы

• GET • POST

Page 54: Алексей Бережной — «HTTP-протокл»

54

Методы

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

UNLINK, CONNECT

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

Page 55: Алексей Бережной — «HTTP-протокл»

55

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 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

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

Page 58: Алексей Бережной — «HTTP-протокл»

58

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

• 100 Continue • 101 Switching protocols • 102 Progressing

clck.ru/28Tlv

Page 59: Алексей Бережной — «HTTP-протокл»

59

Ответы успеха (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 60: Алексей Бережной — «HTTP-протокл»

60

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

Page 61: Алексей Бережной — «HTTP-протокл»

61

Ответы перенаправления (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 62: Алексей Бережной — «HTTP-протокл»

62

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

Page 63: Алексей Бережной — «HTTP-протокл»

63

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

Page 64: Алексей Бережной — «HTTP-протокл»

64

Ошибки клиента (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 65: Алексей Бережной — «HTTP-протокл»

65

Ошибки клиента (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 66: Алексей Бережной — «HTTP-протокл»

66

Ошибки клиента (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 67: Алексей Бережной — «HTTP-протокл»

67

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

Page 68: Алексей Бережной — «HTTP-протокл»

68

Ошибки сервера (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 69: Алексей Бережной — «HTTP-протокл»

69

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

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

clck.ru/28Tlv

Page 70: Алексей Бережной — «HTTP-протокл»

70

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

Page 71: Алексей Бережной — «HTTP-протокл»

71

Заголовки HTTP

• General Headers

Page 72: Алексей Бережной — «HTTP-протокл»

72

Заголовки HTTP

• General Headers • Request Headers

Page 73: Алексей Бережной — «HTTP-протокл»

73

Заголовки HTTP

• General Headers • Request Headers • Response Headers

Page 74: Алексей Бережной — «HTTP-протокл»

74

Заголовки HTTP

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

Page 75: Алексей Бережной — «HTTP-протокл»

75

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

Page 76: Алексей Бережной — «HTTP-протокл»

76

!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 77: Алексей Бережной — «HTTP-протокл»

77

General Headers

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

clck.ru/26Kxu

Page 78: Алексей Бережной — «HTTP-протокл»

78

Request Headers

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

clck.ru/26Kxu

Page 79: Алексей Бережной — «HTTP-протокл»

79

Request Headers

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

clck.ru/26Kxu

Page 80: Алексей Бережной — «HTTP-протокл»

80

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

Page 81: Алексей Бережной — «HTTP-протокл»

81

Response Headers

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

clck.ru/26Kxu

Page 82: Алексей Бережной — «HTTP-протокл»

82

Entity Headers ответа

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

clck.ru/26Kxu

Page 83: Алексей Бережной — «HTTP-протокл»

83

Entity Headers ответа

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

clck.ru/26Kxu

Page 84: Алексей Бережной — «HTTP-протокл»

84

X-Frame-Options

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

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

Page 85: Алексей Бережной — «HTTP-протокл»

85

X-Frame-Options

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

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

Page 86: Алексей Бережной — «HTTP-протокл»

86

X-Requested-With

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

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

Page 87: Алексей Бережной — «HTTP-протокл»

87

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

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

clck.ru/27QeD

Page 88: Алексей Бережной — «HTTP-протокл»

88

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

Page 89: Алексей Бережной — «HTTP-протокл»

89

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

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

• Content-Encoding

clck.ru/28Tm5

Page 90: Алексей Бережной — «HTTP-протокл»

90

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

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

clck.ru/28Tm1

Page 91: Алексей Бережной — «HTTP-протокл»

91

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 92: Алексей Бережной — «HTTP-протокл»

92

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

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

clck.ru/26B9t

Page 93: Алексей Бережной — «HTTP-протокл»

93

Кэширование

Page 94: Алексей Бережной — «HTTP-протокл»

94

Заголовок Expires

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

Кэширование

Page 95: Алексей Бережной — «HTTP-протокл»

95

Заголовок Expires

GET

Page 96: Алексей Бережной — «HTTP-протокл»

96

Заголовок Expires

GET

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

Page 97: Алексей Бережной — «HTTP-протокл»

97

Заголовок Expires

Page 98: Алексей Бережной — «HTTP-протокл»

98

Кэширование

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

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

Page 99: Алексей Бережной — «HTTP-протокл»

99

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

GET

Page 100: Алексей Бережной — «HTTP-протокл»

100

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

GET

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

Page 101: Алексей Бережной — «HTTP-протокл»

101

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

GET If-Modified-Since: 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

304 Not Modified Last-Modified: 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

Заголовок ETag

Etag: "3990584542"!

Кэширование

Page 105: Алексей Бережной — «HTTP-протокл»

105

Заголовок ETag

GET

Page 106: Алексей Бережной — «HTTP-протокл»

106

Заголовок ETag

GET

200 OK Etag: "3990584542"

Page 107: Алексей Бережной — «HTTP-протокл»

107

Заголовок ETag

GET If-None-Match: "3990584542"

Page 108: Алексей Бережной — «HTTP-протокл»

108

Заголовок ETag

GET If-None-Match: "3990584542"

304 Not Modified Etag: "3990584542"

Page 109: Алексей Бережной — «HTTP-протокл»

109

Заголовок ETag

GET If-None-Match: "3990584542"

304 Not Modified Etag: "3990584542"

Page 110: Алексей Бережной — «HTTP-протокл»

110

Заголовок 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 111: Алексей Бережной — «HTTP-протокл»

111

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

Page 112: Алексей Бережной — «HTTP-протокл»

112

Cookie

Page 113: Алексей Бережной — «HTTP-протокл»

113

Cookie

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

Page 114: Алексей Бережной — «HTTP-протокл»

114

Cookie

GET

Page 115: Алексей Бережной — «HTTP-протокл»

115

Cookie

GET

200 OK Set-Cookie: name=value

Page 116: Алексей Бережной — «HTTP-протокл»

116

Cookie

GET/POST Cookie: name=value

Page 117: Алексей Бережной — «HTTP-протокл»

117

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

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

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

clck.ru/28TQT

Page 123: Алексей Бережной — «HTTP-протокл»

123

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

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

Page 124: Алексей Бережной — «HTTP-протокл»

124

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

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

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

Page 125: Алексей Бережной — «HTTP-протокл»

125

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

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

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

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

Page 126: Алексей Бережной — «HTTP-протокл»

126

Cookieless domain

Cookie ~ 4KB clck.ru/28TQN

Page 127: Алексей Бережной — «HTTP-протокл»

127

HTTP Comet

clck.ru/27xOR

Page 128: Алексей Бережной — «HTTP-протокл»

128

HTTP Comet

clck.ru/27xOR

Page 129: Алексей Бережной — «HTTP-протокл»

129

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

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

Page 130: Алексей Бережной — «HTTP-протокл»

130

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

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

Page 131: Алексей Бережной — «HTTP-протокл»

131

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

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

Page 132: Алексей Бережной — «HTTP-протокл»

132

HTTPS

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

clck.ru/28TQX

Page 133: Алексей Бережной — «HTTP-протокл»

133

HTTPS

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

clck.ru/28TQX

Page 134: Алексей Бережной — «HTTP-протокл»

134

Инструменты

Page 135: Алексей Бережной — «HTTP-протокл»

135

Инструменты

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

Chrome DevTools, Opera Dragonfly)

Page 136: Алексей Бережной — «HTTP-протокл»

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

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

[email protected]

Спасибо!