Gernar
HTTP, API и сеть

Какие знаешь виды запросов

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

Вопрос

Какие знаешь виды запросов

Профессия

Frontend Developer

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

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

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

  • HTTP-запросы: GET (получение данных), POST (отправка данных), PUT/PATCH (обновление), DELETE (удаление), HEAD (заголовки без тела)
  • GraphQL-запросы: Query (чтение), Mutation (изменение данных), Subscription (реактивные обновления)
  • WebSocket: двустороннее взаимодействие в реальном времени
  • Fetch API vs XMLHttpRequest: современный и legacy подходы к AJAX

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

Веб-разработка использует несколько типов запросов для обмена данными между клиентом и сервером. Основные группы: HTTP-методы (RESTful подход), GraphQL-операции, WebSocket-соединения и AJAX-технологии. HTTP-запросы включают GET для получения данных (например, загрузка страницы), POST для отправки (форма логина), PUT/PATCH для обновления (PUT требует полной замены, PATCH - частичной), DELETE для удаления ресурсов. GraphQL предлагает Query для чтения (аналог GET), Mutation для изменений (POST/PUT/DELETE) и Subscription для реального времени (чат). WebSocket создает постоянное соединение для двусторонней связи (онлайн-игры). Fetch API - современная замена XMLHttpRequest с промисами и более чистым синтаксисом.

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

Пример 1

Пример GET-запроса через Fetch API: fetch('https://api.example.com/data').then(response => response.json())

Пример 2

GraphQL Mutation для добавления комментария: mutation { addComment(text: "Hello") { id } }

Пример 3

WebSocket-подключение: const socket = new WebSocket('wss://echo.websocket.org')

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

  • Путаница между PUT (полная замена ресурса) и PATCH (частичное обновление)
  • Игнорирование обработки ошибок в Fetch API (отсутствие .catch())
  • Использование GET для sensitive-данных (пароли в URL)

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

  • REST vs GraphQL архитектура
  • CORS и безопасность запросов
  • Состояния HTTP (коды ответов)
  • JWT-авторизация в запросах

Follow-up вопросы

В чем основное отличие между PUT и PATCH?

Уровень: intermediate

PUT заменяет весь ресурс целиком, а PATCH обновляет только указанные поля ресурса.

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

Уровень: intermediate

GraphQL позволяет клиенту запрашивать только нужные данные, избегая избыточных запросов и проблем с избыточным или недостаточным получением данных.

В каких случаях используют WebSocket?

Уровень: basic

WebSocket используется для двустороннего взаимодействия в реальном времени, например, в чатах, онлайн-играх или приложениях с мгновенными уведомлениями.

Чем Fetch API отличается от XMLHttpRequest?

Уровень: basic

Fetch API — это современный подход к AJAX, использующий промисы и более простой синтаксис, тогда как XMLHttpRequest — это устаревший метод, основанный на колбэках.

Как работает подписка (Subscription) в GraphQL?

Уровень: advanced

Subscription позволяет клиенту получать обновления данных в реальном времени через механизм подписки, например, используя WebSocket или другие протоколы.

Содержание