Назовите основные HTTP-методы и их назначение

Ответ

HTTP-методы (или "глаголы") указывают, какое действие клиент хочет выполнить с ресурсом на сервере. Каждый метод имеет свою семантику.

Основные методы:

  • GET: Запрашивает представление ресурса. Является безопасным (не изменяет состояние сервера) и идемпотентным (повторные запросы дают тот же результат).
  • POST: Отправляет данные на сервер для создания нового ресурса (например, нового пользователя). Не является идемпотентным.
  • PUT: Полностью заменяет (обновляет) существующий ресурс данными из тела запроса. Идемпотентный.
  • PATCH: Частично изменяет ресурс. В отличие от PUT, отправляются только изменяемые поля. Не является идемпотентным.
  • DELETE: Удаляет указанный ресурс. Идемпотентный.
  • HEAD: Аналогичен GET, но сервер возвращает только заголовки без тела ответа. Используется для проверки метаданных ресурса (например, Content-Type или Last-Modified) без загрузки всего содержимого.
  • OPTIONS: Запрашивает информацию о параметрах соединения для целевого ресурса, например, какие HTTP-методы поддерживаются (Allow заголовок).

Пример использования с библиотекой requests в Python:

import requests

# Получение списка пользователей
response_get = requests.get('https://api.example.com/users')
print(f"GET Status: {response_get.status_code}")

# Создание нового пользователя
new_user_data = {'name': 'John Doe', 'email': 'john.doe@example.com'}
response_post = requests.post('https://api.example.com/users', json=new_user_data)
print(f"POST Status: {response_post.status_code}")

# Удаление пользователя
response_delete = requests.delete('https://api.example.com/users/123')
print(f"DELETE Status: {response_delete.status_code}")