Блог о SEO оптимизация и поисковое продвижение
30 Янв
Большинство людей, знающих, что такое HTTP-статус (коды возврата сервера, код состояния HTTP, статус HTTP-соединения), знакомы лишь со следующими кодами: 200 — окей, 404 — не найдено, 301 и 302 — редирект. Иногда при проблемах сервера можно получить ещё статус 5хх. Тем не менее, моему пытливому уму всё мало, я озадачился и нашёл справочник HTTP статусов в самом логичном месте — Яндекс помощь вебмастеру.
http://help.yandex.ru/webmaster/?id=995305
HTTP статус — это код, который возвращает сервер при запросе документа. Этот статус не отображается в браузере, но браузер может на него реагировать. Например, если сервер вернул код 200, значит всё окей, а если 404, то браузер может показать встроенную страницу «по такому адресу документ не найден».
Мне бывает интересно знать возвращаемый статус сервера. Например, в детстве я обманывал линкаторы. В коде линкатора отправлял заголовок 404 — при этом Яндекс страницы линкатора игнорировал, а линкатор видел ссылки и считал, что я правила выполнил, значит и на меня ссылки размещать надо. Для выполнения такой нехитрой (и, наверное, сейчас бесполезной) манипуляции надо вначале страницы до любого вывода текста вставить php-код:
header («HTTP/1.0 404 Not Found»);
Обратите внимание, что это надо сделать до любого вывода текста, то есть ...
... уже не прокатит, потому что заголовки будут отправлены ещё до вызова функции «header», и результатом вызова «header» будет сообщение об ошибке.
Если всё сделано правильно, то в браузере вы, скорее всего, ничего необычного не заметите, но вот боты не будут эту страницу индексировать, так как сочтут, что её просто нет.
Как же посмотреть код статуса? Просто: нужно погуглить или пояндексить по запросу «просмотр HTTP заголовков» или сразу идти сюда. Если же вы уже взрослый и самостоятельный ребёнок, я могу научить, как самому написать скрипт проверки HTTP заголовков. Скрипт напишу на PHP, и для его работы понадобится, чтобы был подключен модуль curl (на любом нормальном хостинге он подключен). Проверить, подключен ли модуль curl можно, запустив скрипт с кодом:
<? phpinfo (); ?>
В появившейся таблице должна быть строка «CURL support — enabled». А вот и скрипт для проверки кода статуса:
Можно было, конечно, воспользоваться встроенной функцией PHP для получения заголовков:
$hdr = @ get_headers ($url_q, 1);
Но это ж я — не люблю, когда всё просто :-). К тому же, «get_headers» не позволяет оправить рефреррера или юзерагента (или другие параметры запроса). Если в функции «get_headers» второй аргумент «1» (как в примере), то будет возвращён ассоциативный массив со строковыми ключами, если не задан — вернётся нормальный массив с числовыми ключами.
А у вас когда-либо возникала необходимость просмотра заголовков или желание выяснить, что значит определённый код статуса HTTP сервера? Опишите в комментариях ситуацию и свои действия. Пожалуйста 🙂
Запись опубликована 30 января 2010 года. Кто-то говорил, что я мало пишу в рубрику «Web-кодинг», так читайте же:
RSS подписка (как это?) поможет вам не пропустить ничего интересного на этом блоге.
На «Просмотр HTTP заголовков, установка кода HTTP статуса» получено 2 отзыва
Конкретно такого желания не было, но была когда то необходимость вместо html кода отправлять обычный текст. Это тоже делалось специальной вставкой.
Вы правы, mozgolom. Отправить код HTML в браузер в виде обычного текста можно при помощи заголовков. Чтобы браузер обработал HTML и отформатировал текст, сервер отправляет заголовок, например, такой:
Content-Type: text/html; charset=utf-8
А чтобы этот HTML код не форматировался браузером, а выводился в таком виде, как есть, надо послать такой заголовок:
Content-Type: text/plan; charset=utf-8
Сделать это можно вышеописанной функцией «header».
Ваше SEO-мнение
Я прошу высказать своё мнение, а не оставить ссылку на раскручиваемый сайт. В любом случае, ссылки в комментариях у меня закрыты от индексации, если интересует качественный обмен ссылками -обращайтесь