Иногда нас ошибают адресом. Ищем мы в доме квартиру 58, а такой нет. Варианта два — или ее никогда не было, или мы зашли не в тот дом. То же самое происходит и на вебе: страницы или файла, которые мы искали, может не оказаться.
Иногда нас ошибают адресом. Ищем мы в доме квартиру 58, а такой нет. Варианта два — или ее никогда не было, или мы зашли не в тот дом. То же самое происходит и на вебе: страницы или файла, которые мы искали, может не оказаться.
Интернет растет и перестраивается. Многих сайтов, работавших год назад, сегодня уже нет. В этом легко убедиться, пойдя по ссылкам из какого-нибудь каталога. Ничего плохого в этом нет (телефонные номера тоже не всю жизнь принадлежат одному и тому же человеку). Во-первых, страница специально могла создаваться на небольшой срок. Во-вторых, ее могли просто убрать за ненадобностью. В-третьих, она могла переехать по другому адресу. Во всех этих случаях мы должны увидеть в окне браузера сообщение о том, что страница не найдена и найденной быть не собирается.
Каждый раз, когда мы нажимаем на ссылку или набираем адрес, наш браузер посылает запрос серверу. Они здороваются, браузер интересуется, как там дела. Сервер отвечает — все нормально, забирай свои манатки. Или просит сперва сказать волшебное слово. Или, наоборот, сообщает, что ничего не отдаст.
В целях экономии времени сервер каждый свой ответ посылает в виде номера (как в анекдоте о пронумерованных анекдотах). Эти номера называются кодами статуса. Существует пять групп этих кодов, они различаются по первой цифре:
1XX — информация;
2XX — успешное действие;
3XX — переадресация;
4XX — ошибка на стороне клиента;
5XX — ошибка на стороне сервера.
Вторые две цифры (ХХ) обозначают порядковый номер кода. Скажем, когда читатель запрашивает страницу с этим параграфом в онлайн-версии, его браузер сначала получит от сервера код 200, а потом только начнет забирать сам документ. В четвертой группе код 401 означает, что пользователь должен авторизоваться (ввести логин и пароль). Код 402 означает, что запрашиваемый файл доступен только за деньги, но пока этот код не используется вообще. Код 403 сообщает о том, что доступ запрещен. А код 404 означает «не найдено».
Коды статуса HTTP 0.9 (документ для историков)
Коды статуса HTTP 1.1 (финальная версия)
Коды статуса были утверждены в 1992 году в рамках спецификации протокола ХТТП 0.9 консорциумом В3Ц. Автором является тот же мужик, который придумал веб, первый браузер и язык разметки гипертекста, — Тим Бернерс-Ли. За основу была принята система кодов статуса, использовавшаяся с начала 1980-х в протоколе ФТП.
Домашняя страница Тима Бернерса-Ли
Официальная спецификация FTP
Теперь, когда мы узнали, что число 404 взято не с потолка, можем перейти к вопросам извлечения выгоды из ситуации, когда документ не найден.
Хорошим тоном в организации сайта является внятное содержание главной страницы и помощь пользователю в понимании того, на каком свете он находится. Нас интересует конкретный случай — пользователь запросил документ, которого на сайте по какой-то причине нет. Такая ситуация возможна, если он набирал адрес и ошибся или использовал ссылку, по которой ничего нет.
В окне браузера появится такая надпись:
404 Not Found
The requested URL /botva was not found on this server.
Грех не воспользоваться моментом и не помочь заблудившемуся посетителю. Многие создатели сайтов вместо этой надписи вешают на страницу рекламу, кучу зазывающих картинок и тонны прочей информации, которой посетитель совершенно не ожидал. Это плохо.
Скорость появления страницы в первую очередь зависит от ее объема в килобайтах. Поэтому на странице 404 нежелательно размещать рекламу, длинные тексты или графику (кроме логотипа).
Кроме того, нельзя допускать, чтобы несуществующую страницу путали с обычной. Поэтому на странице с ошибкой не должно быть основного меню сайта, верстки и цветов типовой страницы.
Чем скорее посетитель поймет, что попал не туда, куда собирался, тем лучше.
Начать нужно с заголовка окна. Пока еще ничего не загрузилось, по одному только заголовку с надписью «страница не найдена» должно быть понятно, что в адресе ошибка. Если посетитель набирал адрес руками и опечатался, он тут же нажмет на кнопку «стоп» и исправит адрес. Если он пошел по указанной где-либо неправильной ссылке, он может дождаться загрузки 404-й страницы и сориентироваться на месте.
Чтобы помочь человеку разобраться, на странице ошибки нужно дать краткую информацию о том, что:
неправильно набран адрес;
такой страницы никогда не было на этом сайте;
такая страница была, но по этому адресу ее больше нет.
Последний пункт может предлагать опытным пользователям сообщить об ошибке администратору сайта. Кроме того, на странице обязательно должны быть ссылки на карту сайта (если есть) и на поиск (если есть).
Желательно, чтобы страница 404 использовала все доступные визуальные средства для сообщения о том, что это не часть сайта, а тупик. Надпись в заголовке, другой фон, отсутствие графики, черно-белый логотип вместо цветного, краткие инструкции по дальнейшим действиям — так должна выглядеть идеальная 404-я страница, помогающая пользователю как можно быстрее найти то, за чем он на сайт пришел.
Презентационные сайты позволяют немного отойти от сухого информационного стиля. Скажем, на 404-й странице сайта автомобильного производителя «ИЖ-авто» логотип нарисован с обратной стороны, а ниже висит фотография, снятая в одном из цехов завода «Ижмаш»:
Правильно сделана 404-я страница у MSN.com и совершенно чудовищно — у MSNBC.com:
Кстати, автомобиль Peugeot 404 (выпущенный в 1957 году) в свое время иллюстрировал страницу ошибки на международном сайте компании «Пежо».
Наконец, самое важное, что должен учесть создатель сайта, — это сохранение ошибочного адреса в адресной строке. Когда сервер перебрасывает пользователя на заранее подготовленную страницу со своим отдельным адресом (типа www.***.ru/error), не надо забывать высказать свое «фи» администратору ресурса. Если человек ошибся одной буквой и хочет исправиться, ему такая возможность должна быть предоставлена незамедлительно, не надо заставлять его набирать адрес заново.
Читатель, желающий узнать, существует ли на конкретном сайте страница 404, может воспользоваться нашим специальным инструментом. Нужно ввести адрес любого сайта и жать на энтер: