сервис аналитики звонков и оптимизации
бизнес-процессов
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:

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

Россия +7 (495) 960-65-87
Шрифт:
0 2400

1. Введение
   1.1. Назначение протокола HTTP
2. Просмотр HTTP-заголовков
   2.1. Методы HTTP

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

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=" else { echo "http://www.domain.ru/"; } ?>">

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





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

< select name="user_agent" selected="">
< option value="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
Как построить качественную ссылочную массу сайта
Айрат Рахимзянов
38
комментариев
0
читателей
Полный профиль
Айрат Рахимзянов - Спасибо Кирилл. Сейчас восстановилась работа сервиса: take.ms/ttXrw
Анализ ссылок: сравнение многофункциональных платформ по размеру их баз
Андрей Ольшевский - Очень неточная статистика, объясню почему. Довольно часто делаю анализ сайтов на качество и объём ссылочной массы. Всегда делаю выгрузку из трех источников – Вебмастера Яндекса, сервиса Мегаиндекс, сервиса Линкпад. Потом с помощи алгоритмов и функции Excel отсеиваются много дублей, битых ссылок, несуществующих урл и тп. Как показала практика, вебмастера Яндекса вполне достаточно, там вся информация и она самая актуальная, в других сервисах куча мусора, а нового, чтоб было найдено и проиндексировано ПС - очень мало. Поэтому мирятся количеством в данном анализе не профессионально.
Как создать интернет-магазин: сколько стоит открытие?
Пришел посмеяться
1
комментарий
0
читателей
Полный профиль
Пришел посмеяться - Я просто посмеюсь :D Даже не хочу ничего особо говорить :D Смех, а не статья.
ТОП-10 автоматизированных сервисов контекстной рекламы
Гость - Действительно, очень плохая статья. А у редактора Блондинки видимо слишком много свободного времени.
Кому и зачем нужен маркетплейс от Яндекса
Дарья Калинская
212
комментария
0
читателей
Полный профиль
Дарья Калинская - Максим, спасибо, рада, что статья оказалась полезной )
Конкурс: угадай победителя рейтинга «Известность бренда SEO-компаний»
Андрей
1
комментарий
0
читателей
Полный профиль
Андрей - Оптимизм Дэмис Кокос Ашманов и Партнеры Раш эдженси
Инструкция по применению: обзор сервиса обратного звонка Callbackhunter
Полина Ковальчук
1
комментарий
0
читателей
Полный профиль
Полина Ковальчук - Возможно, но не советую экономить на этом сервисе, функционал то тоже круче, чем у аналогов. Вы создаете сайт для получения денег и чем качественнее Вы выстроите продвижение, тем больше лидов Вы получите!
Тест: Какой ты интернет-маркетолог?
Петр - Мда уж, есть ряд очень и очень субъективных вопросов, например с картинками и ctr или с несколькими вариантами ответа, когда из 5 пунктов надо выбрать 4, что несерьезно. Поэтому, как минимум, к этому тесту нельзя относиться серьезно. Его надо очень серьезно дотягивать, а не вываливать отсебятину.
SEO-тренды на 2017 год: мнение специалистов
Olga Inventor
1
комментарий
0
читателей
Полный профиль
Olga Inventor - Хорошая статья. То, что SEO - антитренд, уже давно говорят. Нужен комплексный подход.
Чек-лист: SEO для B2B-бизнеса
Антон Зозуля
8
комментариев
0
читателей
Полный профиль
Антон Зозуля - Ваша цель вывести страницу, на которой будет только ваш товар (обычно это фильтр бренд/производитель в нужном каталоге) по СЧ запросам в ТОП. Например, вы продаете "велосипеды Елочка". В каталоге дилера велосипеды, вы выбираете Бренд - "Елочка" и должны получить страницу "велосипеды Елочка". Она должна быть на уникальном урл, иметь уникальные метатеги, лучше, чтобы был SEO-текст. После этого ваша задача получить на нее трафик по запросам: идеально: купить велосипед, цена велосипед хуже: велосипед дешево, китайский велосипед еще хуже (меньше трафика и ниже конверсия, но они есть): велосипед + [регион], велосипед + [фильтр другой]. Тут трудно без прямого влияния на содержимое страницы (метатеги и текст). ПС бренд елочка выдуман. :)
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
373
Комментариев
285
Комментариев
262
Комментариев
212
Комментариев
171
Комментариев
156
Комментариев
137
Комментариев
123
Комментариев
97
Комментариев
97
Комментариев
95
Комментариев
80
Комментариев
71
Комментариев
67
Комментариев
60
Комментариев
55
Комментариев
52
Комментариев
50
Комментариев
45
Комментариев
44

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