Gernar
HTTP, API и сеть

Какие знаешь протоколы

Разбор вопроса «Какие знаешь протоколы» для Frontend Developer: что проверяет интервьюер, ключевые тезисы, практические примеры и частые ошибки.

Вопрос

Какие знаешь протоколы

Профессия

Frontend Developer

Что хочет услышать интервьюер

Интервьюер хочет убедиться, что кандидат понимает основные протоколы, используемые в веб-разработке, и может объяснить их назначение и применение.

Ключевые тезисы

  • HTTP/HTTPS — основные протоколы для передачи данных в вебе. HTTPS — это защищённая версия HTTP с шифрованием.
  • WebSocket — протокол для двусторонней связи между клиентом и сервером в реальном времени.
  • TCP/IP — набор протоколов для передачи данных в сетях, включая интернет.
  • FTP — протокол для передачи файлов между клиентом и сервером.
  • REST — архитектурный стиль для создания веб-сервисов, использующий протокол HTTP.
  • GraphQL — альтернатива REST, предоставляющая гибкость в запросах данных.

Подробный ответ

Веб-разработка использует множество протоколов для передачи данных. HTTP (HyperText Transfer Protocol) — это базовый протокол для обмена данными между клиентом и сервером. HTTPS — его защищенная версия, использующая шифрование SSL/TLS для безопасности данных. WebSocket позволяет устанавливать постоянное соединение для обмена данными в реальном времени, что полезно для чатов или онлайн-игр. TCP/IP — это фундаментальный набор протоколов для передачи данных в интернете, обеспечивающий надежную доставку пакетов. FTP (File Transfer Protocol) используется для передачи файлов между клиентом и сервером, но требует дополнительных мер безопасности, таких как SFTP или FTPS. REST и GraphQL — это подходы к проектированию API, где REST использует стандартные HTTP-методы, а GraphQL предоставляет гибкость в запросах данных.

Практические примеры

Пример 1

Пример HTTP/HTTPS: Отправка GET-запроса к API для получения данных о пользователе. HTTPS обеспечивает шифрование данных, защищая их от перехвата.

Пример 2

Пример WebSocket: Чат в реальном времени, где сообщения мгновенно передаются между клиентом и сервером без необходимости обновления страницы.

Пример 3

Пример REST API: Использование fetch в JavaScript для получения списка товаров с сервера: fetch('https://api.example.com/products').then(response => response.json()).then(data => console.log(data));

Пример 4

Пример GraphQL: Запрос только нужных полей с сервера: query { user(id: 1) { name, email } }.

Частые ошибки

  • Путаница между HTTP и HTTPS: Кандидаты часто забывают упомянуть, что HTTPS обеспечивает шифрование данных.
  • Непонимание разницы между REST и GraphQL: Некоторые считают, что GraphQL — это протокол, а не архитектурный стиль.
  • Игнорирование вопросов безопасности при использовании FTP: Многие не упоминают SFTP или FTPS как безопасные альтернативы.

Связанные темы

  • SSL/TLS: Протоколы шифрования, используемые в HTTPS.
  • WebSockets vs HTTP Long Polling: Альтернативные подходы к реальному времени.
  • API Design: Принципы проектирования REST и GraphQL API.
  • Network Security: Основы безопасности при передаче данных.

Follow-up вопросы

В чем разница между HTTP и HTTPS?

Уровень: basic

HTTPS — это HTTP с добавлением шифрования (обычно TLS/SSL). HTTPS защищает данные от перехвата и подмены, что критично для безопасности, например, при передаче паролей или платежных данных.

Как WebSocket отличается от HTTP?

Уровень: intermediate

HTTP — однонаправленный (клиент запрашивает, сервер отвечает), а WebSocket — двунаправленный (постоянное соединение для обмена данными в реальном времени, например, в чатах). HTTP создает новый запрос для каждого действия, WebSocket держит соединение открытым.

Какие преимущества у GraphQL перед REST?

Уровень: intermediate

GraphQL позволяет клиенту запрашивать только нужные данные (минимизируя избыточность), объединять несколько запросов в один и получать предсказуемую структуру ответа. В REST эти задачи часто требуют отдельных эндпоинтов или приводят к over-fetching.

Как FTP обеспечивает безопасность передачи файлов?

Уровень: basic

Обычный FTP небезопасен (данные передаются открыто). Для защиты используют FTPS (FTP + SSL/TLS) или SFTP (SSH File Transfer Protocol), которые шифруют и данные, и аутентификацию.

Какие механизмы кэширования поддерживает HTTP/2?

Уровень: advanced

HTTP/2 сохраняет базовые методы кэширования из HTTP/1.1 (например, заголовки Cache-Control, ETag), но добавляет Server Push — сервер может заранее отправить ресурсы, которые, по его прогнозу, понадобятся клиенту. Это снижает задержки, но требует аккуратной настройки.

Содержание