Gernar
HTTP, API и сеть

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

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

Вопрос

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

Профессия

Frontend Developer

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

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

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

  • Основные типы HTTP-запросов: GET, POST, PUT, PATCH, DELETE.
  • GET используется для получения данных с сервера, например, запрос информации о пользователе.
  • POST отправляет данные на сервер, например, создание нового пользователя.
  • PUT обновляет существующий ресурс целиком, например, изменение профиля пользователя.
  • PATCH частично обновляет ресурс, например, изменение только email пользователя.
  • DELETE удаляет ресурс, например, удаление пользователя из системы.
  • Также существуют менее распространенные методы, такие как HEAD, OPTIONS, CONNECT.
  • HEAD возвращает только заголовки ответа без тела, используется для проверки доступности ресурса.
  • OPTIONS позволяет узнать, какие методы поддерживаются сервером для конкретного ресурса.

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

HTTP (HyperText Transfer Protocol) — это протокол, используемый для передачи данных в сети. Он определяет различные типы запросов (методы), которые клиент может отправлять серверу для выполнения определенных действий. Основные типы HTTP-запросов включают GET, POST, PUT, PATCH и DELETE. Каждый из этих методов имеет свою специфику и используется в зависимости от задачи. Например, GET используется для получения данных с сервера, например, запрос информации о пользователе. POST отправляет данные на сервер, например, создание нового пользователя. PUT обновляет существующий ресурс целиком, например, изменение профиля пользователя. PATCH частично обновляет ресурс, например, изменение только email пользователя. DELETE удаляет ресурс, например, удаление пользователя из системы. Кроме того, существуют менее распространенные методы, такие как HEAD, который возвращает только заголовки ответа без тела, и OPTIONS, который позволяет узнать, какие методы поддерживаются сервером для конкретного ресурса.

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

Пример 1

javascript
Пример использования GET: fetch('https://api.example.com/users/1').then(response => response.json()).then(data => console.log(data));

Пример 2

Пример использования POST: fetch('https://api.example.com/users', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'John', age: 30 }) });

Пример 3

Пример использования PUT: fetch('https://api.example.com/users/1', { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'John', age: 31 }) });
```text

### Пример 4

Пример использования PATCH: fetch('https://api.example.com/users/1', { method: 'PATCH', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ age: 31 }) });



### Пример 5

Пример использования DELETE: fetch('https://api.example.com/users/1', { method: 'DELETE' });



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

- Использование POST вместо PUT или PATCH: кандидаты часто путают эти методы и используют POST для обновления данных, что не соответствует стандартам REST API.
- Игнорирование идемпотентности: кандидаты могут не учитывать, что PUT и DELETE являются идемпотентными методами, то есть многократное выполнение одного и того же запроса не изменяет результат.
- Незнание различий между PUT и PATCH: кандидаты могут не понимать, что PUT обновляет весь ресурс, а PATCH только его часть.

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

- REST API: понимание принципов REST и использование HTTP-методов в соответствии с ними.
- HTTP-заголовки: изучение различных заголовков HTTP-запросов и их назначения.
- Коды состояния HTTP: понимание различных кодов состояния HTTP и их значения.

## Follow-up вопросы

### В чем разница между PUT и PATCH?

Уровень: intermediate

PUT полностью заменяет существующий ресурс новыми данными, тогда как PATCH вносит частичные изменения в ресурс. Например, PUT обновит весь профиль пользователя, а PATCH изменит только одно поле, например, email.

### Какой HTTP-метод идемпотентен, а какой нет?

Уровень: intermediate

Идемпотентные методы (GET, PUT, DELETE, HEAD, OPTIONS) при повторном выполнении не изменяют состояние сервера. POST не является идемпотентным, так как каждый запрос может создавать новый ресурс.

### Для чего используется метод OPTIONS?

Уровень: basic

OPTIONS позволяет клиенту узнать, какие HTTP-методы поддерживаются сервером для конкретного URL. Это полезно для CORS-запросов, где браузер автоматически отправляет OPTIONS для проверки разрешенных методов.

### Какие заголовки HTTP-запроса ты знаешь и для чего они используются?

Уровень: intermediate

Content-Type указывает тип данных в теле запроса (например, application/json). Authorization содержит токен для аутентификации. Accept определяет, какие типы данных клиент может принять. User-Agent идентифицирует клиентское приложение.

### Как обрабатываются ошибки в HTTP-запросах? Какие коды статусов ты знаешь?

Уровень: basic

Ошибки обрабатываются через коды статусов: 2xx — успех (200 OK), 3xx — перенаправление (301 Moved Permanently), 4xx — ошибка клиента (404 Not Found), 5xx — ошибка сервера (500 Internal Server Error). Клиент может реагировать на них, например, показывая сообщение пользователю.

Содержание