Skip to content
HTTP и сайты
NEXIP / EDITORIAL STORY

Что показывают HTTP-заголовки

Полное руководство по HTTP-заголовкам: request и response headers, кеш, redirects, cookies, CORS, security headers, CDN и диагностика через curl и NexIP.

NexIP editorialNexIP Published Updated Reading time9 min Start reading
NEXIP JOURNAL Cover image
← Journal Что показывают HTTP-заголовки

HTTP-заголовки передают служебную информацию между клиентом и сервером. Они помогают понять, какой контент отправляется, как браузеру его кешировать, куда выполняется перенаправление, разрешены ли CORS-запросы, какие политики безопасности включены и как запрос проходит через CDN или reverse proxy.

При диагностике сайта заголовки часто дают больше информации, чем сама HTML-страница. По ним можно увидеть тип ответа, кодировку, кеширование, редиректы, серверную инфраструктуру, cookies и часть защитных настроек.

В этом руководстве разберём основные request и response headers, покажем практические команды curl и объясним, какие заголовки действительно полезны при поиске ошибок.

Что такое HTTP-заголовок

HTTP-заголовок состоит из имени и значения.

Пример:

Content-Type: text/html; charset=UTF-8

В одном HTTP-запросе или ответе может передаваться много заголовков.

Request и response headers

Заголовки делятся по направлению.

Request headers отправляет клиент:

Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html

Response headers возвращает сервер:

Content-Type: text/html
Cache-Control: max-age=300
Server: nginx

Как посмотреть заголовки через curl

Самый простой вариант:

curl -I https://example.com/

Он выполняет запрос и показывает заголовки ответа.

Как посмотреть заголовки подробно

curl -v https://example.com/

Verbose-режим показывает детали соединения и заголовки в обе стороны.

Как посмотреть только response headers

curl -sS -D - -o /dev/null https://example.com/

Что показывает Host

Host сообщает серверу, к какому доменному имени обращается клиент.

Host: example.com

На одном IP может обслуживаться множество сайтов, поэтому правильный Host критически важен.

Почему Host важен при диагностике

Если запрос отправить только на IP без правильного имени, сервер может выбрать другой virtual host.

Поэтому проверка сайта по IP не всегда репрезентативна.

Что показывает User-Agent

User-Agent описывает клиент.

User-Agent: Mozilla/5.0

Сервер может использовать его для:

  • аналитики;
  • совместимости;
  • защиты от ботов;
  • выдачи разных вариантов ответа.

Что показывает Accept

Accept сообщает серверу, какие типы содержимого клиент готов получить.

Accept: text/html,application/xhtml+xml

Что показывает Accept-Encoding

Accept-Encoding: gzip, br

Клиент сообщает, какие алгоритмы сжатия он поддерживает.

Что показывает Accept-Language

Accept-Language: ru-RU,ru;q=0.9,en;q=0.8

Некоторые сайты используют этот заголовок для выбора языка.

Что такое Authorization

Authorization используется для передачи данных аутентификации.

Пример:

Authorization: Bearer TOKEN

Такие данные нельзя публиковать в логах и диагностических скриншотах без необходимости.

Что такое Cookie

Клиент отправляет сохранённые cookies:

Cookie: session=abc123

Cookies часто используются для сессии, авторизации и пользовательских настроек.

Что такое Referer

Referer может содержать адрес страницы, с которой пользователь перешёл на текущий ресурс.

Его наличие зависит от политики браузера и Referrer-Policy.

Что показывает Content-Type

Content-Type сообщает тип передаваемого содержимого.

Content-Type: text/html; charset=UTF-8

Для API часто встречается:

Content-Type: application/json

Почему неправильный Content-Type создаёт проблемы

Если сервер отдаёт неверный MIME type, браузер или клиент может неправильно интерпретировать содержимое.

Это особенно важно для:

  • JavaScript;
  • CSS;
  • JSON;
  • изображений;
  • файлов загрузки.

Что показывает Content-Length

Content-Length может содержать размер тела ответа в байтах.

Content-Length: 12345

Но при chunked transfer или некоторых современных протоколах этого заголовка может не быть.

Что такое Location

Location обычно используется при перенаправлениях.

HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/

Как проверить цепочку redirect

curl -IL http://example.com/

Так можно увидеть каждый промежуточный HTTP-ответ.

Что такое Cache-Control

Cache-Control управляет кешированием.

Пример:

Cache-Control: public, max-age=3600

Это означает, что ресурс можно кешировать определённое время.

Что означает no-cache

no-cache не обязательно означает полный запрет хранения.

Чаще это требует повторной проверки актуальности перед использованием кешированной копии.

Что означает no-store

Cache-Control: no-store

Такой ответ не должен сохраняться в обычном кеше.

Что такое ETag

ETag — идентификатор версии ресурса.

ETag: "abc123"

Клиент может использовать его для условного запроса.

Что такое If-None-Match

Клиент может отправить:

If-None-Match: "abc123"

Если ресурс не изменился, сервер может ответить:

304 Not Modified

Что такое Last-Modified

Last-Modified: Mon, 05 Oct 2026 08:00:00 GMT

Это дата последнего изменения ресурса по мнению сервера.

Что такое If-Modified-Since

Клиент может использовать дату для условного запроса и получить 304, если содержимое не изменилось.

Что такое Expires

Expires — более старый механизм указания срока актуальности кеша.

Сегодня чаще основную роль играет Cache-Control.

Что показывает Server

Пример:

Server: nginx

Он может раскрывать часть информации о серверной технологии.

Некоторые администраторы скрывают или сокращают это значение.

Что показывает X-Powered-By

Иногда приложение сообщает технологию:

X-Powered-By: PHP

Излишнее раскрытие версии ПО может быть нежелательным.

Что такое Set-Cookie

Сервер создаёт или изменяет cookie:

Set-Cookie: session=abc123; Secure; HttpOnly; SameSite=Lax

У cookie могут быть важные защитные атрибуты.

Что означает Secure

Cookie с флагом Secure должна передаваться через защищённое HTTPS-соединение.

Что означает HttpOnly

HttpOnly ограничивает доступ к cookie из JavaScript.

Что означает SameSite

SameSite управляет отправкой cookie в межсайтовых сценариях и помогает уменьшать некоторые риски CSRF.

Что такое CORS

CORS управляет тем, какие web origins могут обращаться к ресурсу из браузера.

Основной заголовок:

Access-Control-Allow-Origin: https://example.com

Почему CORS — не firewall

CORS в первую очередь является браузерным механизмом контроля межсайтовых запросов.

Он не заменяет серверную авторизацию и сетевые ограничения.

Что такое Content-Security-Policy

CSP позволяет ограничивать источники контента, которые браузеру разрешено загружать.

Пример:

Content-Security-Policy: default-src 'self'

CSP является важной частью защиты web-приложения, но требует аккуратной настройки.

Что такое Strict-Transport-Security

HSTS сообщает браузеру, что домен должен использовать HTTPS.

Strict-Transport-Security: max-age=31536000

Ошибочная HSTS-конфигурация может иметь длительные последствия, поэтому включать её нужно осознанно.

Что такое X-Content-Type-Options

X-Content-Type-Options: nosniff

Помогает запретить браузеру MIME-sniffing в ряде сценариев.

Что такое Referrer-Policy

Определяет объём информации, отправляемой в Referer при переходах и запросах.

Что такое Permissions-Policy

Позволяет ограничивать доступ страницы к отдельным возможностям браузера.

Что такое X-Frame-Options

Исторически используется для ограничения встраивания страницы во frame или iframe.

В современных политиках многие задачи лучше решать через CSP frame-ancestors.

Заголовки CDN и reverse proxy

При использовании CDN или proxy можно увидеть дополнительные поля.

Например:

Via:
X-Cache:
X-Request-ID:
CF-Cache-Status:
X-Forwarded-For:
X-Forwarded-Proto:

Конкретные имена зависят от инфраструктуры.

Что такое X-Forwarded-For

Reverse proxy может передавать исходный IP клиента:

X-Forwarded-For: 198.51.100.25

Но доверять этому заголовку можно только в правильно настроенной proxy-архитектуре, потому что внешний клиент способен самостоятельно отправить одноимённый header.

Что такое X-Forwarded-Proto

Помогает backend понять исходную схему запроса:

X-Forwarded-Proto: https

Это важно, когда TLS завершается на reverse proxy.

Что такое request ID

Некоторые системы добавляют идентификатор запроса:

X-Request-ID: 8f02...

Он очень полезен при сопоставлении пользовательской ошибки с серверными логами.

Как заголовки помогают диагностировать кеш CDN

CDN может добавлять признаки:

  • cache hit;
  • cache miss;
  • age;
  • edge location;
  • proxy chain.

Это помогает понять, получил ли пользователь ответ из кеша или от origin.

Что такое Age

Age: 120

Обычно показывает возраст кешированного ответа в секундах.

Почему заголовки могут отличаться по регионам

CDN, балансировщики и географическая маршрутизация могут приводить к разным ответам.

Поэтому внешняя проверка из разных точек может быть полезна.

Как добавить свой заголовок в curl

curl -I \
  -H 'User-Agent: NexIP-Test' \
  https://example.com/

Как проверить API с Authorization

curl \
  -H 'Authorization: Bearer TOKEN' \
  https://api.example.com/

Не публикуйте реальные токены в логах, скриншотах и общедоступных диагностических отчётах.

Как проверить конкретный Host на IP

Для HTTP:

curl -I \
  -H 'Host: example.com' \
  http://203.0.113.10/

Для HTTPS предпочтительнее использовать --resolve, чтобы корректно работал и SNI:

curl -I \
  --resolve example.com:443:203.0.113.10 \
  https://example.com/

Как проверить HTTP-заголовки через NexIP

Инструмент HTTP Headers NexIP позволяет получить заголовки сайта без ручной работы с терминалом.

При анализе полезно смотреть на:

  • status;
  • Location;
  • Content-Type;
  • Cache-Control;
  • Server;
  • Set-Cookie;
  • security headers;
  • CDN/proxy headers.

Как связать заголовки с проблемой доступности

Если сайт не открывается, сначала выполните общую диагностику.

После успешного DNS/TCP/TLS именно HTTP headers помогают понять, что произошло уже на web-уровне.

Полный порядок разобран в статье «Как проверить доступность сайта».

Связь HTTP-заголовков с SSL/TLS

HTTP headers появляются только после успешного TLS handshake при HTTPS.

Если сертификат или TLS не работают, до HTTP-заголовков клиент вообще не дойдёт.

Подробнее: SSL/TLS и HTTPS.

Типовые ошибки

Неправильный Content-Type

Проверьте MIME type и конфигурацию сервера.

Бесконечный redirect

Посмотрите всю цепочку через curl -IL.

Сайт не обновляется

Проверьте Cache-Control, ETag, CDN и браузерный кеш.

API блокируется браузером

Проверьте CORS headers.

Приложение считает запрос HTTP вместо HTTPS

При reverse proxy проверьте X-Forwarded-Proto и доверие к proxy.

Backend видит IP прокси вместо пользователя

Проверьте архитектуру X-Forwarded-For / Forwarded и список доверенных proxy.

Что важно запомнить

  • HTTP headers передают служебные параметры запроса и ответа.
  • Request и response headers решают разные задачи.
  • Host критически важен для virtual hosting.
  • Content-Type определяет тип содержимого.
  • Location используется в redirects.
  • Cache-Control, ETag и Last-Modified связаны с кешированием.
  • CORS не заменяет авторизацию.
  • Security headers нужно оценивать в контексте.
  • Proxy headers нельзя безусловно доверять от любого клиента.
  • curl и NexIP позволяют быстро исследовать HTTP-ответ.

FAQ

Как посмотреть HTTP-заголовки сайта?

Используйте HTTP Headers в NexIP или команду curl -I https://example.com/.

Что важнее всего проверить?

Status, Location, Content-Type, Cache-Control, cookies, security headers и признаки CDN/proxy.

Почему curl -I и браузер могут показывать разные ответы?

Могут отличаться User-Agent, cookies, HTTP-метод, кеш, география и поведение защиты.

Можно ли определить сервер по Server header?

Иногда частично, но значение можно изменить или скрыть.

Почему CORS работает в curl, но не в браузере?

Потому что CORS в первую очередь контролируется браузером.

Что означает 304?

Ресурс не изменился относительно условного запроса, и клиент может использовать кешированную копию.

Можно ли доверять X-Forwarded-For?

Только если приложение получает его через контролируемую цепочку доверенных proxy.

Какие заголовки отвечают за безопасность?

Часто анализируют CSP, HSTS, X-Content-Type-Options, Referrer-Policy, Permissions-Policy и настройки cookies, но безопасность нельзя оценивать только по наличию нескольких headers.

Thank you for reading

More practical guides are waiting in the NexIP journal.

NEXIP / TOOLS

Put it into practice

Use NexIP tools to check the parameters covered in this article.

NEXIP / DIAGNOSTICS

Verify what matters

Check a website, domain or network settings with real NexIP diagnostics.

Launch diagnostics

Continue reading

Related materials

HTTP и сайты

Нейросеть уже покупает за вас: как искусственный интеллект получает доступ к нашим деньгам

Нейросети перестают быть обычными советчиками и начинают покупать товары от имени людей. Shopify уже открыла доступ ИИ-агентам к миллиардам товаров, а Visa исследует платежи между программами. Но кто ответит, если алгоритм потратит деньги неправильно? Разбираемся, как меняется интернет-торговля и почему привычные магазины могут столкнуться с совершенно новым типом покупателей.

Read
HTTP и сайты

HTTP-коды ответа: что означают 200, 301, 404, 500 и другие

Когда браузер открывает страницу, сервер отвечает не только HTML-кодом. Вместе с ответом он отправляет числовой HTTP-статус: 200, 301, 404, 500 и так далее. Эти три цифры часто позволяют понять проблему быстрее, чем длинное сообщение…

Read

FAQ

Frequently asked questions

Можно ли выполнить эту проверку самостоятельно?

Да. В материале описана безопасная последовательность действий и указаны подходящие инструменты NexIP. Для изменения настроек сервера или DNS могут понадобиться доступы к панели провайдера.

Когда нужно повторить проверку?

Повторите её после внесения изменений и завершения времени обновления. Сохраните исходный результат, чтобы увидеть, что именно изменилось.

Back to knowledge base