Ответ
HTTP/1.1 — это текстовый протокол прикладного уровня, работающий по принципу "запрос-ответ" поверх TCP. Каждый обмен состоит из двух частей: запроса от клиента и ответа от сервера.
### 1. HTTP-запрос (Client Request)
Состоит из трех частей:
* **Стартовая строка (Start Line):** `METHOD /path HTTP/VERSION`. Например: `GET /index.html HTTP/1.1`.
* **Заголовки (Headers):** Пары `ключ: значение`, предоставляющие метаинформацию. Обязательный заголовок в HTTP/1.1 — `Host`.
* **Тело (Body):** Необязательные данные, передаваемые серверу (например, JSON в POST-запросе). Отделяется от заголовков пустой строкой.
### 2. HTTP-ответ (Server Response)
Структура аналогична запросу:
* **Строка состояния (Status Line):** `HTTP/VERSION STATUS_CODE REASON_PHRASE`. Например: `HTTP/1.1 200 OK`.
* **Заголовки (Headers):** Метаинформация об ответе, например `Content-Type` или `Content-Length`.
* **Тело (Body):** Содержимое ответа (HTML-страница, JSON-данные и т.д.).
### Пример обмена
```http
# --- Запрос клиента ---
GET /page.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept-Language: en-US
# --- Ответ сервера ---
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 155
Date: Fri, 20 Oct 2023 10:00:00 GMT
Example Page