Большинство людей, знающих, что такое HTTP-статус (коды возврата сервера, код состояния HTTP, статус HTTP-соединения), знакомы лишь со следующими кодами: 200 — окей, 404 — не найдено, 301 и 302 — редирект. Иногда при проблемах сервера можно получить ещё статус 5хх. Тем не менее, моему пытливому уму всё мало, я озадачился и нашёл справочник HTTP статусов в самом логичном месте — Яндекс помощь вебмастеру.

Справочник по кодам статуса 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 канал блога RSS подписка (как это?) поможет вам не пропустить ничего интересного на этом блоге.