$30 off During Our Annual Pro Sale. View Details »

HTTPs и его прикладные друзья

HTTPs и его прикладные друзья

Слайды с внутренней обзорной лекции о прикладном уровне стека TCP/IP и протоколе HTTP(s).

Vladimir Plizga

November 26, 2019
Tweet

More Decks by Vladimir Plizga

Other Decks in Programming

Transcript

  1. HTTPs и его
    прикладные
    друзья

    View Slide

  2. 0
    Вспомнить всё

    View Slide

  3. View Slide

  4. Коротко о главном



    View Slide

  5. Соотношение
    уровней
    OSI и TCP/IP

    View Slide

  6. Общеизвестные жители этажей TCP/IP

    View Slide

  7. Цель встречи:

    View Slide

  8. 1
    Разминка

    View Slide

  9. Задачка №1




    View Slide

  10. Задачка №2




    View Slide

  11. Задачка №3


    View Slide

  12. Задачка №3


    View Slide

  13. 2
    Прикладной
    уровень TCP/IP

    View Slide

  14. Разница между форматом и протоколом


    View Slide

  15. Выясняем отношения
    AMQP
    gRPC
    HTTP
    SOAP
    DICOM
    JSON
    Protobuf
    HTML
    XML
    PFIF

    View Slide

  16. View Slide

  17. Прикладных протоколов много


















    View Slide

  18. Прикладной уровень может быть составным

    View Slide

  19. 3
    HTTP

    View Slide

  20. 1991

    View Slide

  21. Швей-
    цария

    View Slide

  22. Женева

    View Slide

  23. HTTP v0.9



    View Slide

  24. RFC

    View Slide

  25. View Slide

  26. HTTP v1.0




    View Slide

  27. HTTP v1.1


    View Slide

  28. HTTP/2





    View Slide

  29. HTTP/3






    View Slide

  30. 4
    HTTP 1.1

    View Slide

  31. Hyper Text Transfer Protocol



    View Slide

  32. Участники взаимодействия в HTTP

    View Slide

  33. Общие сведения об HTTP






    View Slide

  34. 5
    HTTP запросы

    View Slide

  35. URL

    View Slide

  36. URL задает точку направления запроса
    http://example.ru:8081/artifactory/home.html?id=1&v=2

    View Slide

  37. Структура сообщения запроса (вид сверху)


    ◎ ツ

    View Slide

  38. Строка запроса

    ○ ⚠



    ○ HTTP/1.1
    GET /images/logo.png HTTP/1.1

    View Slide

  39. View Slide

  40. Заголовки запроса







    View Slide

  41. Стандартные
    заголовки
    запроса
    • MIME-тип ожидаемого ответа
    Accept
    • Размер тела в байтах
    Content-Length
    • MIME-тип тела запроса
    • У нас обычно application/json
    Content-Type
    • (см. далее)
    Cookie

    View Slide

  42. Стандартные
    заголовки
    запроса
    • Единственный обязательный
    • Нужен виртуальному хостингу
    Host
    • Адрес предыдущего посещения
    • Не опечатка
    Referer
    • Адрес(а) предыдущих прокси
    • Когда-то был специфичным
    X-Forwarded-For
    • ID клиентской программы
    • Жертва войны браузеров
    User-Agent

    View Slide

  43. Разновидности лжи

    View Slide

  44. 351 000+

    View Slide

  45. Empty Line

    View Slide

  46. Тело запроса

    View Slide

  47. Аргументы запроса можно передавать по-разному



    View Slide

  48. Какой способ выбрать?

    View Slide

  49. Не спи!

    View Slide

  50. 6
    HTTP ответы

    View Slide

  51. Структура сообщения ответа (вид сверху)


    ◎ ツ

    View Slide

  52. Строка статуса

    ○ HTTP/1.1




    HTTP/1.1 200 OK

    View Slide

  53. Коды ответов






    View Slide

  54. Некоторые стандартные коды ответов







    View Slide

  55. Стандартные
    заголовки
    ответа
    • Название и версия сервера
    Server
    • Адрес перенаправления
    • Используется при редиректах
    Location
    • Форма кодирования ответа:
    chunked, compress, deflate, gzip
    Transfer-
    Encoding
    • Сохранение данных на клиенте
    Set-Cookie

    View Slide

  56. Cookie – это как номерок в гардеробе

    View Slide

  57. Основные сведения о cookies







    View Slide

  58. Атрибуты cookies







    View Slide

  59. По источнику cookies бывают «свои» и «сторонние»

    View Slide

  60. В начале 2000-х

    View Slide

  61. GPDR

    View Slide

  62. Передача cookies





    View Slide

  63. View Slide

  64. 6
    Соучастники HTTP

    View Slide

  65. HTTP Secure
    ◎ ⚠






    View Slide

  66. План рассказа про SSL/TLS
    Что охвачено
    в этом докладе
    Что творится
    на самом деле

    View Slide

  67. SSL/TLS






    View Slide

  68. Где можно узнать подробнее?


    View Slide

  69. View Slide

  70. SOAP – Simple Object Access Protocol
    SOAP ≈ HTTP + XML

    View Slide

  71. SOAP строится на 2 артефактах

    View Slide



  72. Достоинства и недостатки SOAP



    View Slide

  73. REST – REpresentational State Transfer
    REST ≈ HTTP + JSON

    View Slide

  74. Основные свойства REST







    View Slide

  75. Варианты реализации сервисов по уровням
    API-1
    API-2
    API-3
    API-4
    SOAP
    HTTP
    SSL/TLS
    TCP
    IP

    View Slide

  76. 7
    Практика

    View Slide

  77. Задачка №1


    a) somehost.ru
    b) http://somehost.ru
    c) https://somehost.ru

    View Slide

  78. Задачка №2




    View Slide

  79. Задачка №3




    View Slide

  80. 8
    Резюме

    View Slide

  81. Краткая суть предыдущих 80 слайдов





    View Slide

  82. Спасибо!

    View Slide