Ответ
Да, HTTP-ответ содержит несколько частей:
- Статусная строка (HTTP версия, код статуса, текст статуса)
- Заголовки (Headers)
- Тело ответа (Body)
- Опционально - куки (Cookies)
Пример ответа:
HTTP/1.1 200 OK
Content-Type: application/json
Set-Cookie: session=abc123; Path=/
{"message": "Success"}
Основные компоненты:
- Статус (200, 404 и др.)
- Заголовки (Content-Type, Cache-Control и др.)
- Тело (HTML, JSON и др. данные)
- Метод (GET, POST и др.) указывается в запросе, но не в ответе
Ответ 18+ 🔞
А, ну это ж про HTTP-ответы! Давай разжуём, как это всё работает, а то некоторые думают, что это какая-то магия, а на деле — проще пареной репы, если, конечно, не считать этих ёбаных заголовков, которых иногда как говна за баней.
Смотри, представь, ты серверу крикнул: «Эй, дай-ка мне главную страницу!» (это твой запрос). А он тебе в ответ — не просто файл швыряет, а целое послание с протоколом, как дипломатическую ноту. И вот из чего эта нота состоит, блядь:
-
Статусная строка. Это как первая фраза в разговоре. Сервер тебе сразу заявляет: «Всё пиздато, держи!» (
200 OK) или «Пошёл нахуй, ничего нет!» (404 Not Found), или «Я занят, отъебись!» (503 Service Unavailable). Тут же версия протокола, типаHTTP/1.1. Короче, сразу ясно, понравилась ли серверу твоя просьба или ты ему весь день испортил. -
Заголовки (Headers). А вот это уже технические подробности, ёпта. Тут сервер такой: «Слушай, данные я тебе в формате JSON посылаю, смотри не обосрись» (
Content-Type: application/json). Или: «Запомни этот кусок, чтобы сто раз не дергать» (Cache-Control: max-age=3600). А может, и подколет: «А вот тебе печенька, заходи ещё» (Set-Cookie: session=abc123). Заголовков этих — овердохуища, на все случаи жизни. -
Тело ответа (Body). А вот это, сука, и есть самое вкусное — то, ради чего всё и затевалось. HTML-страница, JSON с данными, картинка котика — всё, что душе угодно. Может быть и пустым, если сервер просто сказал «OK» и больше нихуя.
-
Куки (Cookies). Их обычно в заголовки пихают, как в примере (
Set-Cookie), но они такие важные, что про них отдельно орут. Это как жетон в гардеробе: «Держи, мудак, при следующем запросе предъяви, а то не узнаю тебя».
Вот смотри на пример, как на наглядную пьесу:
HTTP/1.1 200 OK
Content-Type: application/json
Set-Cookie: session=abc123; Path=/
{"message": "Success"}
Видишь? Сервер говорит: «Всё чётко (200 OK), данные в JSON (Content-Type), вот тебе пропуск на будущее (Set-Cookie), а в самом конверте — бумажка с надписью "Success"». И делу конец.
И да, запомни раз и нахуй: метод запроса (GET, POST, PUT) — это ТЫ серверу говоришь, что делать. В ответе его нет, серверу похуй, как ты его просил, он уже сделал. Он тебе только результат отсылает. Всё, теперь ты гуру, можешь идти и тыкать этим знанием в лицо тем, кто не в теме. Чих-пых!