×
Россия +7 (909) 261-97-71

Написание скрипта для просмотра HTTP-заголовков

Россия +7 (909) 261-97-71
Шрифт:
0 8619
Подпишитесь на нас в MAX

1. Введение

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

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

Если в результатах присутствует строка, подобная

HTTP/1.1 200 OK

значит все в порядке, а если вроде

HTTP/1.1 404 OK,

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

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

При этом стоит отметить довольно большое преимущество подобного метода оценки сайта: объем получаемой информации значительно меньше, чем при прямой загрузке интересуемой страницы в окно браузера (полный размер которой может достигать нескольких мегабайтов, например, при использовании flash-анимации), а значит, расходы за входящий трафик существенно снижаются. В предлагаемом мастер-классе будут повторены общие сведения о HTTP-заголовоках, а также приведен пример самостоятельного написания скрипта, позволяющего просматривать эти загаловки.

1.1. Назначение протокола HTTP

(С использованием материалов www.codenet.ru)

HyperText Transfer Protocol (HTTP) - это протокол высокого уровня, уровня приложений (дословно - протокол передачи гипертекста), обеспечивающий необходимую скорость передачи данных, требующуюся для распределенных информационных систем гипермедиа. HTTP используется проектом World Wide Web с 1990 года.

Практические информационные системы требуют большего, чем примитивный поиск, модификация и аннотация данных. HTTP/1.0 предоставляет открытое множество методов, которые могут быть использованы для указания целей запроса. Они построены на дисциплине ссылок, где для указания ресурса, к которому должен быть применен данный метод, используется Универсальный Идентификатор Ресурсов (Universal Resource Identifier - URI), в виде местонахождения (Uniform Resource Locator - URL) или имени (Uniform Resource Name - URN). Формат сообщений сходен с форматом Internet Mail или Multipurpose Internet Mail Extensions (MIME - Многоцелевое Расширение Почты Internet).

HTTP/1.0 используется также для коммуникаций между различными пользовательскими просмоторщиками и шлюзами, дающими гипермедиа доступ к существующим Internet протоколам, таким как SMTP, NNTP, FTP, Gopher и WAIS. HTTP/1.0 разработан, чтобы позволять таким шлюзам через proxy серверы, без какой-либо потери передавать данные с помощью упомянутых протоколов более ранних версий.

2. Просмотр HTTP-заголовков

2.1. Методы HTTP

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

Метод GET служит для получения любой информации, идентифицированной URI Запроса. Если URI Запроса ссылается на процесс, выдающий данные, в качестве ответа будут выступать данные, сгенерированные данным процессом, а не код самого процесса (если только это не является выходными данными процесса).

Метод HEAD аналогичен методу GET, за исключением того, что в ответе сервер не возвращает «тело» Ответа. Метаинформация, содержащаяся в HTTP заголовках ответа на запрос HEAD, должна быть идентична информации HTTP заголовков ответа на запрос GET. Данный метод может использоваться для получения метаинформации о ресурсе без передачи по сети самого ресурса.

Более подробную информацию о протоколе HTTP и его методах можно найти в сети Интернет (http://www.citforum.ru/internet/cgi_tut/http.shtml, http://www.citycat.ru/doc/HTML/short/http.html). На http://webkomora.com.ua/ru/articles/web/raskrutka/httpoptimisation.html можно прочитать небольшую, но полезную статью про оптимизацию HTTP-заголовка страницы.

2.2. Скрипт для просмотра HTTP-заголовков интересующих интернет-ресурсов

Существует много сервисов, предоставляющих возможность просмотра HTTP-заголовков интересующего вас URL (например, http://www.webcode.ru/use/header/ или http://seolab.ru/add/header.htm).

Но попробуем написать скрипт, позволяющий просматривать заголовки HTTP интересующих интернет-ресурсов (сайтов или страниц), самостоятельно.

< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

< head>
< title >Просмотр HTTP-заголовков интересующих Интернет-ресурсов
< meta http-equiv="content-type" content="text/html; charset=windows-1251">
< meta http-equiv="content-language" content="ru">
< /head>

< style>
* {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}

input {
width: 380px;
}
< /style>

< body>
< form action="gh.php?action=exec" method="post">
Введите URI интересующего Интернет-ресурса:

< input type="text" name="uri" value=" if ($uri) { echo $uri; }
else { echo "http://www.domain.ru/"; } ?>">

< input type="submit" name="exec" value="Просмотреть HTTP-заголовок">





Выберите User-Agent:

< select name="user_agent" selected=" echo $user_agent; ?>">
< option value="None" " if ($user_agent == "None")
{ echo "selected"; }
?>">None
< option value="User-Agent: Mozilla/4.0
(compatible; MSIE 6.0; Windows NT 5.1)"
if ($user_agent == "User-Agent: Mozilla/4.0
(compatible; MSIE 6.0; Windows NT 5.1)")
{ echo "selected"; }
?>>User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)








if ($action == exec)
{
// Указываем номер порта соединения
$httpport = 80;

// Удаляем "http://", если URI содержит данную подстроку
$uri = (substr(trim($uri), 0, 7) == "http://") ? substr(trim($uri), 7) : $uri;

// Выделяем из URI домен и страницу (если она присутствует):
// $res[1] будет содержать имя домена (заканчиваться должен слэшем)
// $res[2] будет содержать имя страницы (без имени домена)
preg_match("/(w{0,3}.?[wW]+.w{2,3})(?=/)/([wW]*)/?/", $uri, $res);

// Открывает сокет соединения указанного домена/страницы
$fp = @fsockopen($res[1], $httpport);
?>




// Сообщаем об ошибке, в случае если соединение не было установлено
// Возможно по причине долгого ответа сервера или неверного URI
if (!$fp)
exit ("Невозможно установить соединение!");
?>




// Формируем запрос для указанного домена
// Используем метод HEAD
// Если требуется получить в ответе домена "тело" страницы,
необходимо использовать метод GET
$query = "HEAD /".$res[2]." HTTP/1.1 ";
$query = $query."HOST: ".$res[1]." ";

if ($user_agent "None")
{
$query = $query.$user_agent." ";
}

$query = $query."Connection: close ";

// Отображаем текст запроса
echo nl2br(htmlspecialchars($query))."
";

// Отправляем домену запрос
fputs($fp, $query);

while (!feof($fp))
{
// Получаем ответ от домена (по одной строке)
$s = fgets($fp);
// Выводим ответ домена (также по одной строке)
echo nl2br(htmlspecialchars($s));
}

// Закрываем соединение
fclose($fp);
}
?>
< /body>



3. Заключение

Итак, у нас получился довольно простой, но в то же время очень полезный скрипт.На каком языке его писать - выбирать Вам. Например, при написании подобного скрипта на Perl (при обращении к удаленному ресурсу) можно воспользоваться Perl-модулем LWP::UserAgent. Затем необходимо создать объект данного класса и сделать запрос HEAD (или GET) по интересующему URL. Функция, реализующая подобный алгоритм, может выглядеть так:

sub get_http_header
{
my $uri = shift;
my $usr = LWP::UserAgent->new;

my $req = HTTP::Request->new (HEAD => $uri);
my $res = $usr ->request($req);

my $str = $res->as_string;

return $str;
}

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

В заключение стоит сказать, что данный скрипт будет полезен при анализе интересующего сайта/страницы (например, своего собственного или конкурента): с помощью него можно узнать как тот или иной сайт/страница «относится» к поисковым роботам (например, Яндекса), которые постоянно блуждают по всемирной паутине.

Есть о чем рассказать? Тогда присылайте свои материалы Марине Ибушевой


Новые 
Новые
Лучшие
Старые
Сообщество
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
Отправить отзыв
ПОПУЛЯРНЫЕ ОБСУЖДЕНИЯ НА SEONEWS
Как ИИ усиливает маркетинг и помогает общаться с пользователем
Иван
1
комментарий
0
читателей
Полный профиль
Иван - Классная статья, забрал Хотелось бы услышать еще от эксперта мнение про модели в таком случае и дисперсию
GEO-продвижение: гайд повышения видимости бренда (сайта) в нейросетях
dayitrix
3
комментария
0
читателей
Полный профиль
dayitrix - Спасибо за разбор. Сейчас как раз в процессе изучения GEO-продвижения, хочется разобраться, как вообще попадать в ответы нейросетей. Ну и смотрю, уже услуги по такому продвижению начали появляться, типа Zenlink Geo. Но пока по большей части информацию собираем, что это и стоит ли в это лезть. Но учитывая то, что люди сейчас в основном через нейронной информацию ищут, было б неплохо, чтоб нейросети нас упоминали)
Как ChatGPT выбирает компании для рекомендаций: что уже известно и как бизнесу подготовиться к эпохе AI Search
Сергей Семенов
1
комментарий
0
читателей
Полный профиль
Сергей Семенов - Спасибо за вопрос. Нет, полностью автоматически отчёт не генерируется. Мы сознательно не пошли по пути «нажал кнопку — получил PDF». В RECOMO мы используем ИИ как инструмент анализа, а не как замену методологии. Наш процесс состоит из нескольких этапов: Проводится серия проверок в различных AI-системах (ChatGPT, Gemini, Claude и других) по заранее сформированной методике и набору запросов. Собираются данные о том, какие компании рекомендуются, в каком контексте, какие источники используются и какие цифровые сигналы присутствуют. Далее ИИ помогает структурировать и анализировать большой объём информации, выявлять закономерности и формировать черновики выводов. После этого отчёт обязательно проходит экспертную проверку нашей командой. Мы дополняем его интерпретацией результатов, практическими рекомендациями и проверяем, чтобы выводы действительно соответствовали данным. Пока рынок AI Search только формируется, полностью доверять генерацию подобных аудитов одной языковой модели было бы неправильно. Именно поэтому мы сочетаем собственную методологию, автоматизированный сбор и анализ данных и экспертную валидацию результатов. Наша цель — не просто красиво оформить отчёт, а дать бизнесу рекомендации, которые действительно помогут повысить AI Visibility и увеличить вероятность появления бренда в рекомендациях современных AI-систем.
Накрутка ПФ vs Бизнес: как накрутка поведенческих факторов «убьет» ваш бизнес в интернете
Гость
1
комментарий
0
читателей
Полный профиль
Гость - Вообще бред несут-пункт позиции и там и там суотрудничать,банов нет,риски и остальные пункты просто смешно,пф гораздо эффективнее чем платить в пиксель)))
Мы сократили рутину SEO-специалиста на 95% – вот архитектура, которая это сделала
Гостьkorayaskin
2
комментария
0
читателей
Полный профиль
Гостьkorayaskin - Можно также посмотреть разбор инструментов типа KeywordKick — помогает быстрее понять, где именно конфликт сигналов.
5 полезных сервисов для работы с учебными текстами
Anna B.
2
комментария
0
читателей
Полный профиль
Anna B. - Отличный разбор, очень своевременно!
Битрикс24 запускает бесплатный курс по вайбкодингу для гуманитариев
Ирина
1
комментарий
0
читателей
Полный профиль
Ирина - Хорошее решение для бизнеса
Сайт компании в 2026 году: что проверяет Роскомнадзор и как не получить штраф
Олег Черников
1
комментарий
0
читателей
Полный профиль
Олег Черников - Дима спасибо, отличный обзор! За ГОСТ Р 52872-2019 спасибо! Давно около него ходил.
Yandex Cloud сменил логотип и визуальный стиль
Гостьфы
1
комментарий
0
читателей
Полный профиль
Гостьфы - это че такое
Яндекс добавил продвинутую ИИ-модель в Алису на всех умных устройствах
Тимофей
1
комментарий
0
читателей
Полный профиль
Тимофей - Какой смысл усовершенствовать если в нашей стране запрещено говорить правду!
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
393
Комментариев
373
Комментариев
262
Комментариев
249
Комментариев
171
Комментариев
156
Комментариев
142
Комментариев
130
Комментариев
121
Комментариев
100
Комментариев
97
Комментариев
97
Комментариев
96
Комментариев
80
Комментариев
77
Комментариев
74
Комментариев
67
Комментариев
66
Комментариев
60
Комментариев
59

Отправьте отзыв!
Отправьте отзыв!