Разбираем по косточкам компьютерные сети: HTTP, TCP, REST

2 комментария

Большинство разговоров о компьютерных сетях сводится к набору аббревиатур: HTTP, TCP, REST. Разберёмся в том, как всё устроено.
Сети подразумевают передачу информации.Самый простой способ передачи информации — это текст.Протоколы — это наборы соглашений, что обеспечивают передачу данных.
Если не углубляться в сложную терминологию, то хорошим примером передачи информации послужат системы мгновенного обмена сообщениями (англ. IM — Instant messaging). Viber, Skype, Messenger, etc. Все они имеют отдельные серверы и протоколы, оснащены своими особенностями и правилами передачи данных. Теперь разбираемся подробно:

TCP

Содержание

Протокол управления передачей (англ. TCP — Transmission Control Protocol) обеспечивает надежную доставку данных. Сервис TCP так и называется: reliable byte stream (надежная передача потока байт). Этот протокол отвечает за доставку данных и сохранение порядка передаваемых сообщений.
Поток может быть большим. Как же в этом случае работает протокол? Допустим, вы скачиваете файл, который весит несколько Гб. В протоколе поток будет разбиваться на сегменты, и каждый из этих сегментов — отправляться получателю. На стороне получателя все части снова собираются.
Чтобы обеспечить гарантию доставки данных, TCP использует подтверждение получения сообщений. Как это работает?
От отправителя к получателю «уходит» некий сегмент данных.Приняв этот сегмент, получатель посылает отправителю подтверждение (ACK или Acknowledgement).Данный процесс повторяется, пока передаются данные.
А вот что происходит, если при передаче произошла ошибка: сегмент теряется в сети, не доходит до получателя, и подтверждение не отправляется. Со стороны отправителя есть таймер, который задает время ожидания подтверждения. По истечении этого времени и за неимением ACK сегмент отправляется повторно.
Вот только в протоколе TCP подтверждаются сразу несколько сегментов, которые отправляются друг за другом (механизм скользящего окна). В противном случае скорость обмена данными была бы ужасающе медленной.
В протоколе TCP также предусмотрена защита от дублирования и нарушения порядка сообщений (сообщения нумеруются).

HTTP

Мы видим HTTP в каждой ссылке: http://google.com/. Что это значит? HTTP — это протокол передачи гипертекста. Грубо говоря, это тип разметки, которая добавляется в текстовые документы для определенного отображения текста.
В стеке протоколов HTTP находится на прикладном уровне.
Он использует протокол TCP и порт сервера 80 (для клиента порт генерируется операционной системой).
Режим работы HTTP — запрос-ответ: клиент посылает серверу запрос на передачу web-страницы, после чего сервер пересылает эту страницу клиенту. При этом нет жестко заданного формата пакетов: используется текстовый режим.

REST

REST представляет собой стиль архитектуры ПО для распределенных систем вроде World Wide Web. Используется, как правило, для построения веб-служб. Именно Рой Филдинг, один из авторов HTTP, ввел термин REST в 2000 году.
Это очень простой интерфейс управления данными, в котором не предусмотрены дополнительные внутренние «прослойки». Такой механизм означает передачу информации в точно том же виде, что и сама информация. Грубо говоря, мы не заворачиваем ее в XML, что присуще SOAP, не юзаем AMF, как Flash, etc.
Управление информацией основано на протоколе передачи данных. Наиболее распространенный — HTTP, о котором мы говорили ранее. В этом случае операции над информацией выполняются с помощью GET, PUT, POST, DELETE.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Выбираем SSD
Выбираем SSD

Что такое SSD, в чём его отличие от HDD, на что стоит обратить внимание при выборе SSD накопителя и как Читать

IP-адрес, что это такое?
IP-адрес, что это такое?

Уникальный идентификатор компьютера в сети, построенной на базе стека TCP/IP. Сетевые устройства взаимодействуют друг с другом, используя его. На данный момент применяется Читать

Тест скорости USB и SSD дисков в Linux
Тест скорости USB и SSD дисков в Linux

Как быстр ваш USB? Как быстр ваш SSD-накопитель? Это очень распространенный вопрос. Я собрал и скомпилировал несколько тестов, которые помогут Читать

Установка принтера xerox phaser 3010 Ubuntu 18.04 64bit
Установка принтера xerox phaser 3010 Ubuntu 18.04 64bit

Сегодня рассмотрим как добавить драйвера на принтер Xerox phaser 3010 в Ubuntu, Debian и им подобным дистрибутивами. Устанавливаем библиотеки sudo Читать

0 0 голоса
Рейтинг статьи

Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

2 комментариев
новее
старее большинство голосов
Inline Feedbacks
Просмотреть все комментарии
Otto
Otto
12.05.2020 07:46

Было интересно прочесть, спасибо!)

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: