Top.Mail.Ru
HTTP Headers
HTTP – это веб-протокол, при помощи которого браузер взаимодействует с сервером, загружая определенный веб-ресурс. Эта технология устроена довольно просто: клиент и сервер устанавливают соединения, обмениваясь запросами и ответами; клиент запрашивает документ, находящиеся по конкретному адресу, а сервер – направляет их в ответ на запрос. В этой системе также используются заголовки – специальные параметры с определенной служебной информацией. Их нужно проверять, чтобы оценить работоспособность и уязвимость сайта. Для этого подойдет наш сервис RedBox – в нем есть функции проверки заголовков HTTP, управления поведенческим факторами, удаления дубликатов и другие полезные механизмы.

Понятие заголовков

HTTP-заголовок – это строка вида «Имя-Заголовок:Значение». Для разделения элементов используется двоеточие. В название заголовка не входит регистр. То есть, учитывая формат HTTP нет разницы между date и Date. Однако согласно практике, в названиях заголовков обычно каждое новое слово начинается с заглавной буквы. Структура значения завязана на конкретном элементе. При этом общий заголовок может быть достаточно протяженным, но он занимает лишь одну строку.

Запросы могут содержать различные типы заголовков, но их условно можно разделить на 3 категории:

  • Общие, которые работают со всем сообщением без исключения;
  • Под запрос – содержат сведения о запросе, указывая дополнительные условия или ограничивая их логическими параметрами;
  • Представительные, содержащие формат данных сообщений с кодировкой. Приписываются к запросу только в ситуациях, когда с ними передается определенное тело.

Сервис проверки заголовков HTTP

Заголовки HTTP скрыты от пользователя, но играют значимую роль при разработке веб-сервисов, так как используются для распознания, согласования контента и кэширования. Если требуется разработать веб-службу для определенного сайта, то с помощью сервиса для проверки можно понять, какие типы контента он принимает и какие языки использует. Онлайн алгоритм позволяет просмотреть HTTP-заголовки, выдаваемые сервером при запросе URL-адреса. Это важно для того, чтобы узнать, активировано ли сжатие контента на сайте, корректен ли исходный код, включена ли поддержка кэширования и получить разную полезную информацию. Сервис позволяет проверить:
Доступность и коды состояния URL-адресов
Механизм кеширования страниц
Сжатие контента на сервере
Исходный код страницы
Серверный ответ для разных User Agent
Тип сервера, время, кодировка
Также сервис проверки HTTP-заголовков позволяет задать значение стандартных заголовков, добавлять произвольные запросы, проверить версию HTTP и др. Для отдельных проектов и сайтов могут быть различия. Однако в любом случае сервис поможет понять, на что лучше обратить внимание и, возможно, отредактировать.

Преимущества сервиса RedBox

Сервис позволяет:
Повысить скорость загрузки страницы
Оценить объем обращения браузера для загрузки сайта
Повысить безопасность веб-ресурсов
Улучшить уровень доверия от поисковых систем
Повысить доверие к дате последнего изменения, частоте и важности контента
Проверить правильность кодировки и языка

Модуль проверки HTTP позволяет быстро проверить коды ответов страниц. Это необходимо для SEO-специалистов, продвигающих сайт. Прогнав список релевантных страниц, можно понять, какие ответы выдает сервер. Сервис позволяет проверить работу редиректов.

RedBox – это уникальный инструмент, полезный и для специалистов по контекстной рекламе. С его помощью можно вести масштабную рекламную компанию с разными рекламными страницами. Через сервис можно оценить их доступность и создать отчет для заказчика.

RedBox позволяет:

  • Проверить одну ссылку;
  • Ввести в специальную форму до 500 ссылок (для массовой проверки).

Для удобства можно настроить время задержки между запросами. Интерфейс системы прост и понятен – его легко освоит даже начинающий специалист без опыта работы с HTTP-заголовками.

Заголовки разного формата: RedBox проверка устаревших и важных заголовков

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

Server с подробным описанием сервер;

  • X-Power-By;

  • X_ASPNET-Version;

  • Expires;

  • Pragma;

  • P3P;

  • Via;

  • X-UA-Compatible.

Заголовки для кэширования нужны для статического контента с долгим кэшированием и рекомендуемы для динамических материалов с малым сроком кэширования. Их можно просмотреть через сервис:

  • Last-Modified

  • ETag

  • Cache-Control

  • Vary

Важней всего, что сервер правильно реагировал на заголовки If-Modified-Since и If-None-Match. Всю информацию можно просмотреть, вбив соответствующий URL в форму RedBox. Система выдаст полноценный ответ, с которым можно продолжить работать для обеспечения стабильности сайта.

Заголовки безопасности: защита сайта с RedBox

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

  • Nginx — nginx.conf;
  • htaccess;
  • PHP — index.php .

Для проверки, что в ответе сервера есть конкретный заголовок, нужно воспользоваться сервисом проверки заголовков HTTP RedBox. Система проанализирует ответы сервера и позволит определить, в каких случаях безопасность находится не на высоком уровне. Основные заголовки безопасности:

  • Strict Transport Security – не позволяет использовать HTTP, запускает форсирование зашифрованного соединения, в автоматическом режиме переводит запросы формата HTTP в HTTPS. Также не позволяет клиенту пройти дальше уведомления о проблемах с сертификатом. Отображает попытки перехватить трафик с использованием замещающего сертификата;
  • X-Xss-Protection – помогает бороться с XSS-атаками методом активации фильтра межсайтового скриптинга;
  • X-Frame-Options – сдерживает загрузку страниц сайта во фреймах, сокращает восприимчивость к кликджекинг-атакам;
  • X-Content-Type-Options – не дает пройти фишинговым атакам, используемым на базе MIME-типов и не проверенных горячих ссылках. Если запретить клиентам сайта загружать исполняемые файлы, к примеру, в формате .js, то хакер может отправить изображение или файл .txt на сервер с внедренным в него JavaScript-кодом и подключиться к нему без посредников через url, открыв его со всеми последствиями действия;
  • Content-Security-Policy – мешает кликджекингу, методам интеграции кода и XSS-атакам. Принцип сводится к тому, чтобы пометить для сервера безопасный источник содержания и получения контента. Это могут быть скрипты, стили или др. Использование источников не из белого списка запрещено. Если на ресурсе активирован CDN, то счетчики метрики и другие скрипты с внешним подключением, этот заголовок необходим;
  • Referrer-Policy – в ссылках, перенаправляющих через ресурсы, обычно содержатся данные, иногда конфиденциальные. Это может навредить безопасности, особенно при переходе с защищенного протокола на обычный HTTP. Заголовок используется для защиты от потери информации;
  • Feature-Policy – нужен для выборочной активации некоторых функций браузера клиента при открытии сайта, либо смены их поведения.

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

Базовые инструменты

Для оценки состояния сайта используются запросы. Они могут быть полезны при использовании сервиса проверки RedBox. Их понимание позволит лучше настроить сайт, обеспечив его безопасность и удобство посещения.
Основные заголовки запроса
HOST  Необходим для пометки о том, с какого конкретного хоста запрашивается ресурс. В роли допустимых значений могут приниматься доменные имена, IP-адреса. На сервере с протоколом HTTP может находиться не один сайт. Для обращения к конкретному ресурсу и нужен этот заголовок.
User-Agent Применяется для описания клиента, от которого исходит запрос. В нем заключено много сведений об окружении пользователя. Способен предоставить информацию о том, какой браузер является клиентом, его версию, ОС, на которой этот клиент работает.
Refer Необходим для получения данных о том, откуда направлен запрос. Например, если пользователь собирается перейти по ссылке в материале, то скорее всего к его команде будет добавлен этот заголовок.
Accept Помогает определить, какой тип медийных файлов принимается клиентом. В нем может содержаться описание разных типов. Они перечисляются через запятую. Для ввода того, что клиент готов к любым типам, применяется последовательность */*. 
Coockie  Этот заголовок может включать одну или больше пар куки и значений. Куки являются маленькими частями информации, которые хранятся и на сервере, и на устройстве клиента. Они используются как идентификатор. Куки направляются вместе с запросом для поддержания клиентского доступа к сайту. Также они могут понадобится и для иных целей: например, для хранения данных о вкусах пользователя и его сессии на ресурсе. Несколько куки под единым заголовком могут идти в формате перечисления, отделяясь друг от друга запятой.
Authorization Необходим как один из методов идентификации клиента на сервере. После успешного определения пользователя возвращает токен, создаваемый уникально для каждого конкретного устройства. Отличается от куки, так как находится только на стороне клиента и направляется на сервер только по запросу. Есть разные методы идентификации, так как конкретный вариант определяется веб-сайтом, к которому обращается пользователь.

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

Основные заголовки ответа
Content-Type Указывает на формат направляемого материала. Нужен для правильного определения файлов браузером.                                            
Date Отображает дату направляемого контента – для этого учитывается время, установленное на сервере.
Last-Modified Показывает дату последнего изменения материалов. 
Location Отображает URL-адрес для клиента, по которому он может перейти, или URL созданного сайта.
Accept-Encoding Список методов кодирования контента ответа при отправке.
Expires Дата примерного окончания срока хранения материалов.
If-Modified-Since Дата, когда требуется загружать материалы, если они изменялись с определенного момента.
Server Перечень наименований и версий сервера, его частей с комментариями.

Также при работе с сервисом понадобятся основные методы HTTP. Они необходимы для указания конкретики действия, которое требуется от сервера при направлении запроса. Некоторые варианты, например, позволяют браузеру (именно он чаще всего выступает в роли источника запросов) формировать дополнительные сведения в теле запроса – например, документ или формуляр.

Основные методы HTTP
GET  Применяется для обращения к конкретному ресурсу. Дополнительные данные могут передаваться через строку запроса как часть URL. 
POST  Нужен для отправки информации на сервер. Способен работать с разными типами файлов, например, с PDF-документами и другими двоичными видами. Обычно применяется при отправке данных или их загрузки на веб-сайт.
HEAD В большинстве случаев на этот запрос сервер выдает заголовок и тело, в котором хранится запрашиваемый ресурс. С его помощью можно получить только заголовки, которые сервер направил бы при получении GET-команды на тот же сайт. Использование этого инструмента часто нужно, чтобы определить размер конкретного ресурса перед началом загрузки.
PUT Нужен для размещения новых ресурсов на сервере. Если метод в конкретный момент разрешен без дополнительного контроля, то это приводит к образованию уязвимостей в безопасности.
DELETE Необходим для удаления ресурсов с сервера. Если применение метода настроено неправильным образом, то это может вызвать атаку формата «Отказ в обслуживании», так как удалены критические компоненты файлов.
OPTIONS Помогает получить данные о сервере, в том числе сведения о разрешенных к использованию методов HTTP.
PATCH Нужен для внесения частичных изменений в определенный сайт по конкретному расположению. 

Проверка популярных проблем

Поддерживается ли If-Modified-Since?

Для проверки нужно ввести адрес целевой страницы и в сервисе отметить нужный заголовок ответа, затем выделить дату прошлого посещения. Если программа выдаст «Not Modified», значит на сервере есть поддержка метки – тело контента отправляется только в ситуации, если были изменения с момента прошлого посещения.

На сервере работает сжатие?

Нужно вбить в сервис адрес страницы, которую нужно проверить. Для проверки используется параметр Accept-Encoding: gzip. Если в ответе системы будет приведен заголовок Content-Encoding: gzip, то сервер работает со сжатием.

Сервис может проверить домены с разными директивами?

Сервис без дополнительных команд перенаправляется по адресам редиректа и проверяет страницы, приведенные в каталоге Location. Можно отслеживать страницу с множеством переадресаций. Для каждой из них сервис выведет отправленные и полученные заголовки сервера.

Можно ли осуществлять проверки с мобильного устройства?

Сервис можно использовать и на смартфонах или других портативных устройствах, чтобы проверить HTTP-заголовки сайта. Система загружается без задержек и отображается в правильном формате, удобном для работы.

Допустима ли работа с доменами на кириллице?

Конечно, сервис способен взаимодействовать с IDN-доменами. Для их проверки не придется переводить имя через punycode. Достаточно вбить адрес домена в формате кириллицы, чтобы проверить HTTP-заголовки сервера. При этом не возникает никаких задержек или проблем. Сервис остается функциональным и удобным в любом варианте.

Попробовать сейчас

Зарегистрироваться