На каких протоколах основан REST?

Ответ

REST (Representational State Transfer) — это архитектурный стиль, который использует протокол HTTP/HTTPS как транспорт.

Ключевые аспекты использования HTTP в REST:

  1. HTTP-методы (глаголы) для операций с ресурсами:
    • GET — получение ресурса.
    • POST — создание ресурса.
    • PUT — полное обновление ресурса.
    • PATCH — частичное обновление ресурса.
    • DELETE — удаление ресурса.
  2. Коды состояния HTTP для информирования о результате:
    • 200 OK — успех.
    • 201 Created — ресурс создан.
    • 400 Bad Request — ошибка клиента.
    • 404 Not Found — ресурс не найден.
    • 500 Internal Server Error — ошибка сервера.
  3. Заголовки HTTP (Headers) для метаданных, например, Content-Type: application/json.
  4. URI (Uniform Resource Identifier) для уникальной идентификации каждого ресурса.

Пример RESTful HTTP-запроса:

GET /api/users/123 HTTP/1.1
Host: api.example.com
Accept: application/json
Authorization: Bearer <token>

Данные между клиентом и сервером обычно передаются в форматах JSON или XML.

Ответ 18+ 🔞

А, ну вот, слушай, сейчас я тебе так разложу по полочкам, что ты офигеешь. REST, блядь. Это не какая-то магия, а просто архитектурный стиль, который взял наш старый добрый HTTP и сказал: «Ты, сука, будешь у меня транспортом!». И всё, пиздец.

Вот смотри, как это работает, по-простому, без этих ваших заумных книжек.

Во-первых, HTTP-методы, они же глаголы. Это как команды, блядь.

  • GET — это когда ты пришёл, сука, и хочешь что-то получить. Как в магазин: дай мне этот ресурс, я посмотрю.
  • POST — это когда ты принёс на сервер что-то новое и говоришь: «Создай, блядь, ресурс из этого!».
  • PUT — это когда ты такой: «Всё, старьё, нахуй!». Полностью обновляешь весь ресурс новыми данными.
  • PATCH — а это хитрая жопа. Не всё ломаешь, а только частично подправляешь, как заплатку поставил.
  • DELETE — ну тут всё ясно, ёпта. Удали это нахуй, чтобы глаза не мозолило.

Во-вторых, коды состояния. Это как сервер тебе моргает лампочками, говорит, мол, чувак, как там у нас дела.

  • 200 OK — о, красава, всё заебись, держи что просил.
  • 201 Created — я, блядь, только что создал твой ресурс, горжусь, на.
  • 400 Bad Request — а вот тут ты, дружок, накосячил. Запрос твой кривой, как хуй с винтом. Переделывай.
  • 404 Not Found — ищешь, ищешь, а нихуя нету. Ресурс в помойке истории.
  • 500 Internal Server Error — а это я, сервер, обосрался. У меня внутри пиздец, подожди или иди нахуй.

В-третьих, заголовки. Это такая служебная информация, метаданные, блядь. Типа Content-Type: application/json — значит, данные в формате JSON летят, готовься их парсить, а не в XML, который тебе в сраку.

В-четвёртых, URI. Это уникальный адресок каждого ресурса. Как паспорт, блядь. /api/users/123 — значит, вот он, пользователь под номером 123, держи.

Вот тебе живой пример, как это всё выглядит в деле:

GET /api/users/123 HTTP/1.1
Host: api.example.com
Accept: application/json
Authorization: Bearer <token>

Перевожу с технического на русский: «Эй, сервер на api.example.com, дай-ка ты мне (GET) данные пользователя с айдишником 123. И смотри, я умный, я понимаю JSON (Accept), так что в этом формате отдавай. А вот мой пропуск (Authorization), не гони пургу».

И всё общение, блядь, идёт обычно в JSON или XML. JSON сейчас, конечно, царь и бог, потому что он человекочитаемый и не такой раздутый, как этот ваш XML, ёперный театр.

Вот и вся философия. Никакой ебалы с сокетами, просто старый добрый HTTP, но использованный с умом. Прямо как из топора щи сварить.