> For the complete documentation index, see [llms.txt](https://kaze.gitbook.io/qa-theory/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kaze.gitbook.io/qa-theory/web/kakie-est-http-metody.md).

# Какие есть HTTP-методы?

Основные HTTP-методы определяют тип действия, которое клиент хочет выполнить с ресурсом на сервере. Вот ключевые:

***

### 1️⃣ **GET**

* **Назначение:** Получение ресурса с сервера.
* **Особенности:**
  * Безопасный и идемпотентный (не изменяет данные).
  * Может содержать параметры в URL (`query string`).
* **Пример:** `GET /users/123` — получить пользователя с ID 123.

***

### 2️⃣ **POST**

* **Назначение:** Создание нового ресурса на сервере.
* **Особенности:**
  * Не идемпотентный (каждый вызов создаёт новый ресурс).
  * Данные передаются в теле запроса (JSON, form-data).
* **Пример:** `POST /users` с телом `{ "name": "John" }` — создать нового пользователя.

***

### 3️⃣ **PUT**

* **Назначение:** Полное обновление существующего ресурса.
* **Особенности:**
  * Идемпотентный (несколько одинаковых запросов дают один результат).
  * Тело запроса содержит полный объект.
* **Пример:** `PUT /users/123` с телом `{ "name": "John", "active": true }` — обновить все поля пользователя.

***

### 4️⃣ **PATCH**

* **Назначение:** Частичное обновление ресурса.
* **Особенности:**
  * Идемпотентный.
  * Тело запроса содержит только изменяемые поля.
* **Пример:** `PATCH /users/123` с телом `{ "active": false }` — изменить только статус активности.

***

### 5️⃣ **DELETE**

* **Назначение:** Удаление ресурса.
* **Особенности:**
  * Идемпотентный.
* **Пример:** `DELETE /users/123` — удалить пользователя с ID 123.

***

### 6️⃣ Дополнительные методы

* **HEAD** — как GET, но возвращает только заголовки без тела.
* **OPTIONS** — возвращает допустимые методы для ресурса (CORS и проверка).
* **CONNECT** — устанавливает туннель (например, для HTTPS через прокси).
* **TRACE** — возвращает путь запроса для отладки.
