Что такое протокол HTTP и из каких основных компонентов он состоит

Ответ

HTTP (HyperText Transfer Protocol) — это протокол прикладного уровня для обмена данными, чаще всего в формате HTML-документов или JSON, в архитектуре «клиент-сервер».

Любой HTTP-обмен состоит из двух основных частей: запроса от клиента и ответа от сервера.

1. HTTP-запрос (Request) Содержит:

  • Стартовая строка (Start Line): Метод (GET, POST, PUT и др.), URI (путь к ресурсу) и версия протокола (HTTP/1.1).
  • Заголовки (Headers): Пары ключ-значение с метаинформацией (Host, User-Agent, Accept, Content-Type).
  • Тело (Body): Опциональные данные, передаваемые на сервер (например, JSON в POST-запросе).

2. HTTP-ответ (Response) Содержит:

  • Стартовая строка (Status Line): Версия протокола, код состояния (200 OK, 404 Not Found) и его текстовое описание.
  • Заголовки (Headers): Метаинформация об ответе (Content-Type, Content-Length, Set-Cookie).
  • Тело (Body): Запрошенный ресурс (HTML-страница, JSON-объект, изображение).

Пример на Python с библиотекой requests:

import requests

# Клиент формирует и отправляет HTTP GET-запрос
response = requests.get('https://api.github.com/users/python')

# Анализ HTTP-ответа от сервера
print(f"Статус-код: {response.status_code}") # 200
print(f"Тип контента: {response.headers['Content-Type']}") # application/json; charset=utf-8

# Вывод тела ответа
# print(response.json())