Сетевые протоколы в веб
План лекции
Клиент-серверная архитектура приложений
Протоколы
Протокол IP (Internet Protocol)​
Как узнать IP-адрес своего компьютера?
Специальные адреса
Как узнать ip-адрес ресурса в интернете
Протоколы UDP и TCP
Протокол TCP
Протокол TCP
Протокол UDP
Протокол UDP
Использование UDP и TCP
Протокол HTTP(s)
Давайте ответим на вопрос:
 Структура HTTP(s)-запросов
HTTP: Стартовая строка запроса
HTTP: Стартовая строка запроса: примеры
HTTP: Методы
HTTP-заголовки
HTTP-запросы: пример GET
HTTP-запросы: пример POST
HTTP: ответ
HTTP: Стартовая строка ответа
HTTP-ответ: Коды состояния
HTTP-ответ: Коды состояния – примеры
Дополнительные материалы для изучения
1.80M
Категория: ИнтернетИнтернет

Lecture_7._Network_Protocols_(Russian)[1]

1. Сетевые протоколы в веб

2. План лекции

Клиент-серверная архитектура приложений
Протокол IP
План лекции
Протоколы UDP/TCP
Протокол HTTP(s)
Структура HTTP-запросов
Структура HTTP-ответов

3. Клиент-серверная архитектура приложений

4. Протоколы

Сетевой протокол – набор правил, по которым обмениваются различные
узлы и программы в сетях.
Основа для любой сети - это:
IP (сетевой уровень) – именует адресами все узлы и устройства в сети;
TCP/UDP (транспортный уровень)
– передача данных в «пакетах»;
HTTP, HTTPS (Hypertext Transfer Protocol) – протокол прикладного
уровня для передачи данных (изначально – в виде HTML-документов,
сейчас – для передачи произвольных данных).

5.

6. Протокол IP (Internet Protocol)​

Протокол IP (Internet Protocol)
Решает две задачи:
1)адресация узлов сети;
2)передача данных между адресованными узлами.
Система адресации позволила объединять сети.
Адресация в IP-сетях
Каждому узлу IP-сети назначается числовой сетевой адрес (IPадрес, «айпишник»).
Принятая форма записи адреса: 192.168.0.99

7. Как узнать IP-адрес своего компьютера?

Как узнать IP-адрес
своего компьютера?
Cmd (win+r) – команда
ipconfig
Сторонние сервисы в
интернете (напр. myip.com)

8. Специальные адреса

10.x.x.x, 172.16.x.x – 172.31.x.x, 192.168.x.x – внутренние адреса,
действуют только в локальной сети.
Уникальность таких адресов необходимо поддерживать только в пределах
локальной сети, но при этом узел не может иметь прямого выхода в
глобальную сеть.
Сетевой шлюз конвертирует протоколы (e.g. TCP/IP) одной сети
(в ISsoft Intranet – локальной\частной ) в протоколы другой сети
(глобальной\публичной – Internet).
Например: TCP/IP пакеты, идущие с моего локального ПК частного IP адреса (команда ipconfig 10.10.102.115) шлюз оборачивает
в публичный IP адрес (может быть статическим
\ динамическим 86.57.158.250) и отправляет «гулять» в Интернет
Поэтому «MyIP» сервисы всегда показывают ваш «публичный» IP адрес.

9. Как узнать ip-адрес ресурса в интернете

Как узнать ipадрес ресурса в
интернете
Cmd -> команда ping
Через Browser Dev
Tools

10. Протоколы UDP и TCP

Протоколы UDP и TCP
UDP – User Datagram Protocol (протокол пользовательских датаграмм).
TCP – Transmission Control Protocol (протокол управления передачей).
Оба протокола транспортного уровня. Решают задачи доставки
сообщений.

11. Протокол TCP

Протокол TCP
Основная задача – надёжная доставка данных.
Ориентирован на соединение: два приложения перед обменом данными должны
выполнить определенные вспомогательные действия, называемые установлением
соединения.
Следствие: в обмене данными всегда участвуют две конечные точки. Организовать
широковещательную рассылку при помощи протокола TCP нельзя!
Что делает протокол TCP для обеспечения надёжности:
1.
Разбивает передаваемые данные на сегменты оптимальной длины, которые
приёмник собирается в правильном порядке.
2.
При пересылке сегмента использует таймер для ожидания подтверждения от
принимающей стороны (квитанция). Если квитанция не приходит,
выполняется повторная передача сегмента.
3.
После получения сегмента данных принимающая сторона проверяет
контрольную сумму сегмента.
4.
Устранение дубликатов.

12. Протокол TCP

Протокол TCP
+ Обеспечивает
надёжную доставку информации
– Нет
широковещательной рассылки
– Медленнее
«стартует» (установление
соединения)

13. Протокол UDP

Протокол UDP
Простой транспортный протокол.
По сути, берёт порцию данных, снабжает её коротким служебным
заголовком и отдаёт всё это протоколу IP для дальнейшей передачи.
Факт получения или пропажи данных никак не отслеживается.

14. Протокол UDP

Протокол UDP
+ Быстрее передаёт данные,
так как не выполняет
процедуры установления
соединения между узлами
+ Позволяет
вести широковещательную
рассылку (в рамках локальной
сети)
– Не гарантирует доставки данных

15. Использование UDP и TCP

Использование UDP и TCP

16.

17. Протокол HTTP(s)

Протокол HTTP(s)
HTTP (Hypertext Transfer Protocol) – протокол прикладного уровня для
передачи произвольных данных (хотя изначально данные передавались только
в виде HTML документов)
HTTPs – расширение протокола HTTP, поддерживающее шифрование.
Данные, передаваемые по протоколу HTTPS, шифруются с помощью
криптографического протокола SSL (v. 3.0) или более нового и
защищенного TLS (v. 1.1 или 1.2) в целях
обеспечения безопасности, например: защиты от
прослушивания снифферами.
Для работы по HTTPS необходимо, чтобы на веб-сервере
был установлен SSL(TLS) сертификат.

18. Давайте ответим на вопрос:

Что происходит, когда я набираю в адресной
строке браузера URL и нажимаю Enter?
- трансляция имени хоста в IP-адрес
- установление TCP-соединения с указанным адресом
- HTTP-запрос (GET) для получения ресурса
- Получение HTTP-ответа
- Рендеринг страницы (HTML, CSS). В процессе – дополнительные запросы

19.  Структура HTTP(s)-запросов

Структура HTTP(s)-запросов
Структура:
1.Стартовая строка запроса (request starting line) – обязательна;
2.Заголовки (headers) – опциональны;
3.Тело сообщения (message body) – опционально, отделяется пустой
строкой.

20. HTTP: Стартовая строка запроса

HTTP: Стартовая строка запроса
Метод
HTTP/Версия
Метод URL
URI HTTP/Версия
Метод – название запроса (определяет действие), одно слово
из стандартного списка, заглавными буквами (GET, POST, PUT и т.д.)
URL определяет путь к запрашиваемому ресурсу
Версия – пара разделённых точкой цифр. Например:
1.1 - сейчас наиболее часто используется
2.0 – на нее постепенно переходят наиболее популярные сайты
Для построения HTTP запросов можно использовать:
HTTP Proxy Tools: Fiddler или Charles (триал версия)
Postman

21. HTTP: Стартовая строка запроса: примеры

HTTP: Стартовая строка запроса: примеры
GET /dashboard/index.html HTTP/1.1
GET /dashboard/index.html?x=1&y=2
HTTP/1.0
POST /wordpress/wp-login.php HTTP/1.1

22. HTTP: Методы

HTTP: Методы

23. HTTP-заголовки

HTTP-заголовки используются для настройки параметров передачи,
описания тела сообщения (если оно есть) и прочих сведений.
Записываются в виде ИмяЗаголовка: Значение
Host: en.wikipedia.org
Accept-Language: en-US
User-Agent: Mozilla/5.0
Content-Length: 348
Content-Type: text/html; charset=utf-8
Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1

24. HTTP-запросы: пример GET

HTTP-запросы: пример GET
GET /wiki/List_of_HTTP_header_fields HTTP/1.1
Host: en.wikipedia.org
Accept-Language: en-US
User-Agent: Mozilla/5.0

25. HTTP-запросы: пример POST

HTTP-запросы: пример POST
POST /wordpress/wp-login.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0
Content-Length: 22
log=romanchuk&pwd=password

26. HTTP: ответ

HTTP: ответ
Структура:
1.
Стартовая строка ответа – обязательно!
2.
Заголовки – опционально
3.
Тело сообщения – опционально, отделяется пустой строкой от заголовков

27. HTTP: Стартовая строка ответа

HTTP: Стартовая строка ответа
HTTP/Версия
КодКод
Состояния
Пояснение
HTTP/Версия
Состояния
Пояснение
Версия – версия HTTP протокола, например: 1.1
Код состояния – три цифры. По коду состояния определяется дальнейшее
содержимое сообщения и поведение клиента.
Пояснение – короткое текстовое пояснение кода состояния для пользователя.
Не является обязательным.

28. HTTP-ответ: Коды состояния

29. HTTP-ответ: Коды состояния – примеры

HTTP-ответ: Коды состояния – примеры
100 Continue (Заголовки получены, жду тела запроса)
200 OK (Запрос успешно обработан)
301 Moved Permanently (Ресурс перемещён)
400 Bad Request (Ошибка в запросе)
401 Unauthorized (Не авторизован)
403 Forbidden (Запрет доступа)
404 Not Found (Не найдено)
500 Internal Server Error (Общая ошибка сервера)
503 Service Unavailable (Сервер не справляется с обработкой)

30. Дополнительные материалы для изучения

Protocol HTTP: https://www.youtube.com/watch?v=HFt7Lm7hv1E
HTTP Methods: https://www.youtube.com/watch?v=-jR7mGCNXBo
HTTP: https://www.youtube.com/watch?v=iYM2zFP3Zn0
Protocols: https://www.youtube.com/watch?v=Z-a7MNStFQs
HTTPS: https://www.youtube.com/watch?v=39sAcwYcAxA
SSL: https://www.youtube.com/watch?v=-G256iibFYg
TLS: https://www.youtube.com/watch?v=AlE5X1NlHgg

31.

TCP/IP: что это и зачем это тестировщику:
https://www.youtube.com/watch?v=rLUzYeLdM0k
UDP против TCP: https://www.youtube.com/watch?v=aXYJlizk3CQ
Asymmetric encryption: https://www.youtube.com/watch?v=AQDCe585Lnc
Networks: (Очень простой теоретический курс)
Networks: Топология локальных сетей. =>
https://www.youtube.com/watch?v=lnFeG4DOMcE&t=14s
Networks: Система доменных имён. =>
https://www.youtube.com/watch?v=4hVSwy1lUjo
Networks: IP-адресация => https://www.youtube.com/watch?v=0rfUDjsIids
Networks: Стек протоколов OSI =>
https://www.youtube.com/watch?v=FYrpX0alwak
Networks: Функции уровней модели OSI. =>
https://www.youtube.com/watch?v=7cIC-o2wODs
English     Русский Правила