Ответ
Это основные HTTP-методы, различающиеся семантикой (назначением) и свойствами.
| Метод | Назначение | Свойства | Данные |
|---|---|---|---|
| GET | Получение (чтение) данных с сервера. | Безопасный (не изменяет состояние сервера), идемпотентный. | Передаются в URL (query string). |
| POST | Отправка данных на сервер для создания нового ресурса или выполнения операции. | Не безопасный, не идемпотентный. | Передаются в теле запроса (body). |
| PUT | Полное обновление существующего ресурса или его создание по известному URI. | Не безопасный, но идемпотентный. | Передаются в теле запроса (body). |
Пояснение свойств:
- Безопасный (Safe): Метод не должен изменять состояние сервера.
- Идемпотентный (Idempotent): Многократное выполнение одного и того же запроса дает идентичный результат состоянию после первого выполнения.
Примеры в контексте REST API:
// GET - получить пользователя с id=123
GET /api/users/123
// POST - создать нового пользователя
POST /api/users
Body: {"name": "John", "email": "john@example.com"}
// PUT - полностью обновить данные пользователя с id=123
PUT /api/users/123
Body: {"name": "John Doe", "email": "doe@example.com"} Ответ 18+ 🔞
А, ну вот, опять эти ваши HTTP-методы, блядь. Сидишь, читаешь, а там "семантика", "свойства" — ёпта, глаза сломаешь. Давайте разжую, как есть, на пальцах, а то вы тут, пизда, с умным видом таблички рисуете.
Смотри сюда, у нас тут три главных героя: GET, POST и PUT. Как в плохом анекдоте, только про веб.
GET — это как самый вежливый гость. Приходит, сука, в гости, смотрит, что в холодильнике лежит, но нихуя не трогает. Безопасный, идемпотентный, всё такое. То есть можешь его хоть сто раз вызвать — сервер не обосрётся от этого, данные не поменяются. Всё, что он хочет сказать, он тащит прямо в адресной строке, как последний распиздяй. ?id=123&name=Vasya — вот это его язык, блядь.
POST — это уже не гость, а тот мудак, который приходит и начинает переставлять мебель. Создаёт что-то новое, сука. Отправил форму регистрации — бац, и новый пользователь в базе. Он ни разу не безопасный и не идемпотентный. Отправил два одинаковых запроса — получишь двух одинаковых пользователей, и потом будешь ебаться, удаляя дубли. Данные свои он прячет в теле запроса, стесняется, блядь.
PUT — это такой максималист, ёпта. "Всё старое — нахуй, будет по-моему!" Полное обновление ресурса. Не безопасный, но идемпотентный. То есть если ты им десять раз подряд одно и то же ебальник пользователя поменяешь, результат будет как после первого раза — один обновлённый ебальник, а не десять. Данные тоже в теле, как у POST.
А теперь, чтобы твоя мартышлюшка-логика не взорвалась, вот тебе примеры, как это в коде выглядит:
// GET - получить пользователя с id=123. Просто посмотреть, не трогая.
GET /api/users/123
// POST - создать нового пользователя. Вжух, и он уже есть, пиздец.
POST /api/users
Body: {"name": "John", "email": "john@example.com"}
// PUT - полностью обновить данные пользователя с id=123. Старое имя "John" пошло нахуй, теперь он "John Doe".
PUT /api/users/123
Body: {"name": "John Doe", "email": "doe@example.com"}
Вот и вся магия, блядь. Главное — не путай их местами, а то получишь волшебный пиздец, когда вместо чтения данных всё похеришь.