← Назад к вопросам

Что содержит 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 содержат метаинформацию о передаче данных: тип контента, размер, кодировку, аутентификацию, кэширование, безопасность и другие параметры, необходимые для правильной обработки запроса и ответа.

Что содержит header в http? | PrepBro