10 вопросов
Основы сетевого взаимодействия: TCP vs UDP, HTTP/1.1 и HTTP/2, TLS, WebSocket, DNS, модель OSI. Знание протоколов необходимо для backend-разработки и часто проверяется на собеседованиях.
TCP гарантирует надёжную, упорядоченную доставку. Потерянные пакеты повторно отправляются. UDP быстрее, но не гарантирует ни доставку, ни порядок. UDP используют для видео, DNS, игр, где скорость важнее надёжности.
Подробнее →DNS (Domain Name System) преобразует доменные имена (google.com) в IP-адреса (142.250.74.14). Работает как телефонная книга интернета. Запросы кешируются на нескольких уровнях: браузер, ОС, провайдер.
Подробнее →201 Created - ресурс успешно создан (обычно после POST). 200 OK, 204 No Content, 301 Moved Permanently. Группы: 2xx - успех, 3xx - перенаправление, 4xx - ошибка клиента, 5xx - ошибка сервера.
Подробнее →TLS обеспечивает: 1) шифрование - данные нельзя прочитать; 2) аутентификацию - сервер подтверждает идентичность сертификатом; 3) целостность - данные нельзя подменить. HTTPS = HTTP + TLS.
Подробнее →TCP-соединение устанавливается в три шага: 1) клиент отправляет SYN, 2) сервер отвечает SYN-ACK, 3) клиент подтверждает ACK. После этого соединение установлено и можно передавать данные.
Подробнее →TCP работает на транспортном уровне (L4). IP - на сетевом (L3). HTTP, gRPC, DNS - на прикладном (L7). Балансировщики нагрузки бывают L4 (по IP/порту) и L7 (по URL/заголовкам).
Подробнее →HTTP/2 позволяет отправлять несколько запросов параллельно по одному TCP-соединению (мультиплексирование). HTTP/1.1 требует отдельные соединения для параллельных запросов. Также HTTP/2 использует бинарный формат и сжатие заголовков (HPACK).
Подробнее →WebSocket - протокол поверх TCP для двусторонней (full-duplex) связи. В отличие от HTTP (запрос-ответ), сервер может отправлять данные клиенту без запроса. Используется для чатов, уведомлений, real-time обновлений.
Подробнее →HTTP Keep-Alive позволяет повторно использовать одно TCP-соединение для нескольких HTTP-запросов вместо создания нового для каждого. Экономит время на TCP handshake. В HTTP/1.1 включён по умолчанию.
Подробнее →Идемпотентный метод даёт одинаковый результат при повторных вызовах. GET - чтение, PUT - замена, DELETE - удаление (повторное удаление = ресурс уже удалён). POST не идемпотентен - каждый вызов может создать новый ресурс.
Подробнее →