← Назад к вопросам
Что содержит header в http?
2.0 Middle🔥 71 комментариев
#DevOps и инфраструктура#Django
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
HTTP Headers (HTTP Заголовки)
Что такое HTTP Headers
HTTP Headers (заголовки HTTP) — это метаинформация, которая передается в каждом HTTP запросе и ответе. Заголовки содержат дополнительные сведения о содержимом, кодировке, кэшировании, безопасности и других аспектах передачи данных.
Структура Headers
Каждый заголовок состоит из имени и значения, разделённых двоеточием:
ИМЯ-ЗАГОЛОВКА: значение
Content-Type: application/json
Authorization: Bearer token123
Основные типы Headers
1. General Headers (Общие заголовки)
Применяются и к запросу, и к ответу:
# Date — дата и время создания сообщения
Date: Wed, 23 Mar 2026 10:30:00 GMT
# Connection — управление соединением
Connection: keep-alive # или close
# Cache-Control — правила кэширования
Cache-Control: max-age=3600, public
2. Request Headers (Заголовки запроса)
Отправляются клиентом на сервер:
# Host — адрес целевого сервера (ОБЯЗАТЕЛЬНЫЙ)
Host: api.example.com
# User-Agent — информация о клиенте
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
# Accept — какой Content-Type принимает клиент
Accept: application/json, text/html
# Authorization — учетные данные
Authorization: Bearer eyJhbGc...
Authorization: Basic dXNlcjpwYXNz
# Content-Type — формат отправляемых данных
Content-Type: application/json
# Content-Length — размер тела запроса в байтах
Content-Length: 256
# Cookie — хранимые cookies
Cookie: session_id=abc123; user=john
# Referer — источник запроса
Referer: https://example.com/page
# X-Requested-With — указывает, что запрос от AJAX
X-Requested-With: XMLHttpRequest
3. Response Headers (Заголовки ответа)
Отправляются сервером клиенту:
# Server — информация о веб-сервере
Server: nginx/1.21.0
# Content-Type — формат отправляемых данных
Content-Type: application/json; charset=utf-8
# Content-Length — размер тела ответа
Content-Length: 512
# Set-Cookie — установка cookies на клиенте
Set-Cookie: session_id=xyz789; Path=/; HttpOnly
# Location — URL для редиректа (при 301, 302, 307)
Location: https://example.com/new-page
# ETag — уникальный идентификатор версии ресурса
ETag: \"33a64df551425fcc55e4d42a148795d9f25f89d4\"
# Last-Modified — время последнего изменения
Last-Modified: Wed, 21 Oct 2025 07:28:00 GMT
# Allow — доступные методы (GET, POST, PUT, DELETE)
Allow: GET, POST, OPTIONS
# Access-Control-Allow-Origin — CORS разрешение
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST
Entity/Content Headers (Заголовки содержимого)
# Content-Encoding — способ сжатия
Content-Encoding: gzip, deflate
# Content-Language — язык содержимого
Content-Language: ru
# Content-Disposition — как отображать/скачивать
Content-Disposition: attachment; filename="report.pdf"
Пример полного запроса и ответа
ГОСПОДА: POST /api/users HTTP/1.1
Request Headers:
Host: api.example.com
User-Agent: Python-Requests/2.28.0
Authorization: Bearer token123
Content-Type: application/json
Content-Length: 45
Accept-Encoding: gzip, deflate
Connection: keep-alive
Тело запроса:
{\"name\": \"John\", \"email\": \"john@example.com\"}
---
HTTP/1.1 201 Created
Response Headers:
Server: nginx/1.21.0
Date: Wed, 23 Mar 2026 10:30:00 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 156
Set-Cookie: session=abc123; Path=/; HttpOnly
Access-Control-Allow-Origin: *
Cache-Control: no-cache, no-store, must-revalidate
Тело ответа:
{\"id\": 123, \"name\": \"John\", \"email\": \"john@example.com\", \"created_at\": \"2026-03-23T10:30:00Z\"}
Работа с Headers в Python
import requests
# Отправка запроса с заголовками
headers = {
"Authorization": "Bearer token123",
"Content-Type": "application/json",
"User-Agent": "MyApp/1.0"
}
response = requests.post(
"https://api.example.com/users",
json={"name": "John"},
headers=headers
)
# Получение заголовков ответа
print(response.headers["Content-Type"])
print(response.headers.get("Set-Cookie", "No cookies"))
# Все заголовки
for header_name, header_value in response.headers.items():
print(f"{header_name}: {header_value}")
Безопасность Headers
# Важные headers для безопасности:
headers = {
"X-Content-Type-Options": "nosniff",
"X-Frame-Options": "DENY",
"X-XSS-Protection": "1; mode=block",
"Strict-Transport-Security": "max-age=31536000; includeSubDomains",
"Content-Security-Policy": "default-src self"
}
Итоговая сводка
HTTP Headers содержат метаинформацию о передаче данных: тип контента, размер, кодировку, аутентификацию, кэширование, безопасность и другие параметры, необходимые для правильной обработки запроса и ответа.