Каждый, кто проводит много времени в Интернете хоть раз, но встречался с кодами ответа сервера. Например, ошибка 404 — Страница не найдена. Эти коды получает браузер или поисковый бот, когда обращается к странице сайта. Первое, что отдаст ему сервер — это будет код ответа этой страницы, состоящий из трех цифр. От него уже будет полностью зависеть всё дальнейшее взаимодействие. Так, если сервер отдал код ответа 200, то страница будет успешно открыта, а если, к примеру, будет код 301, тогда выполнится перенаправление на другую страницу или сайт. Вот как-то так!
Что такое код состояния HTTP?
HTTP — это протокол передачи гипертекста. Простыми словами — метод общения между вами и серверами. Вы нажимаете на ссылку или вводите URL, либо же отправляете форму — во всех случаях браузер отправляет запрос на сервер для получения информации. Это может быть запрос страницы или отправка данных, которые называются HTTP-запросом. Как только сервер получает такой запрос — он отправляет ответ HTTP с информацией. Один из наиболее распространенных кодов ответов, как я уже сказал выше -это error 404 «Not found». Есть еще несколько кодов состояния, отправленных серверами. Эти коды состояния указывают предварительный ответ.
Коды сгруппированы в пять классов — информационные ответы, успешные ответы, перенаправления, ошибки клиентов и ошибки серверов. Всех их я покажу ниже.
Как проверить код ответа сервера
Самый простой способ проверки кода ответа страницы — это панель инструментов разработчика браузера Google Chrome. Откройте вкладку «Network», в таблице ниже смотрите столбец «Status»:
Так же для этих целей есть специализированные сайты в Интернете. Найти их несложно, потому конкретные ссылки приводить не буду. Там можно будет посмотреть не только код ответа для вашего браузера, но и для различных других браузеров и поисковых ботов. Веб-мастерам это очень полезная информация!
Для нужна массовая проверка, то для этих целей можно использовать любой парсер. Screaming Frog SEO Spider вполне подойдёт для этого. Он поможет проверить как весь сайт, так и отдельный перечень URL-адресов страниц.
Классификация: коды ответа сервера
Все коды ответа сервера разбиты на классы состояния, характеризующиеся определённым общим признаком. Выделяют пять групп кодов ответа сервера:
1хх — информационные коды. Отвечают за информацию о процессе передачи данных. Сообщают о успешном получении запроса и, что передача данных началась.
2хх — успех. Эти коды информируют об успешном принятии и обработке запроса сервером.
3хх — перенаправление. Эти коды информируют о том, что необходимо предпринять дополнительные действия для успешного выполнения запроса, например сделать запрос по другому URI..
4хх — ошибка клиента. Эти коды информируют о том, что запрос не может быть выполнен из-за ошибки на стороне клиента.
5хх — ошибка сервера. Эти коды информируют о том, что запрос не может быть выполнен из-за ошибки на стороне сервера.
1хх коды ответа сервера
100 Continue — Такой ответ означает, что начальный запрос принят и сервер может продолжать обработку заголовков от клиента.
101 Switching Protocols — Сервер по требованию клиента переключил протокол на тот, который указан в заголовке Upgrade. Он отправляет заголовок ответа Upgrade, информируя о протоколе на который выполнено переключение.
102 Processing — Запрос принят сервером, но на обработку требуется дополнительное время. Такой ответ отправляется с целью, чтобы клиент из-за долгого времени ожидания не разорвал соединение. Клиент в ответ на этот код сбрасывает таймер и ждёт последующего ответа.
103 Early Hints — Этот код ответа сервера отдается для того, чтобы клиент получил часть заголовков в то время, пока сервер готовит полноценный ответ.
2хх коды ответа сервера
200 OK — Сервер говорит, что запрос обработан успешно. Если происходил какой-то запрос данных, то они будут находится в заголовке или в теле ответа. Например, страница успешно загружена. Те страницы, что вебмастер хочет видеть в индексе поисковой системы всегда должны иметь код ответа — 200 OK.
201 Created — Означает, что в результате успешного запроса, был создан новый ресурс. Адрес (или адреса) созданного ресурса будут находится в теле ответа, либо в заголовке «Location». Серверу рекомендуется указать характеристики ресурса в теле ответа. Формат тела ответа определяется содержимым заголовка «Content-Type». Новый ресурс уже должен быть создан к тому моменту, как сервер отправил ответ клиенту. Иначе будет использоваться следующий код.
202 Accepted — Запрос клиента принят в обработку, но требуется время. Клиент может не дожидаться окончательной передачи сообщения.
203 Non-Authoritative Information — Такой код ответа сервера практически аналогичен 200, за той лишь разницей, что информация, переданная по запросу, взята из вторичного источника.. Например, это резервная копия или вообще другой сервер. Потому такая информация может являться неактуальной.
204 No Content — В ответе отсутствует тело сообщения, но при этом присутствуют заголовки (метаданные). Клиент может использовать заголовки для обновления кэшированных заголовков полученных ранее.
205 Reset Content — От клиента требуется сбросить данные введенные пользователем. Документ обновлять при этом нет необходимости, тела сообщения нет.
206 Partial Content — Сервер успешно обработал частичный запрос и вернул часть сообщения. В заголовке «Content-Range» содержатся байтовые диапазоны содержимого. Этот код может использовать для того, чтобы запустить загрузку, поставленную на паузу.
207 Multi-Status — Ответ содержит информацию сразу о нескольких независимых операциях.
3хх коды ответа сервера
300 Multiple Choice — Этот ответ придёт, если на запрос доступно несколько ответов. User-agent или пользователь должен выбрать один из вариантов ответа.
301 Moved Permanently — Именно такой код ответа сервера появится тогда, когда ресурс навсегда и бесповоротно изменил свой адрес. С помощью этого кода обычно веб-мастер указывает новый адрес для страницы или сайта, к которому теперь нужно обращаться. Это один из самых важных для SEO код ответа сервера, позволяющий склеить зеркала сайта и не потерять при этом трафик и ссылочный вес. Самый наглядный пример — перевод сайта с http на https.
302 Moved Temporarily — Документ временно перемещен по другому адресу. Сервер дает понять поисковому боту, что необходимо учитывать старый URI до тех пор, пока не поступит других указаний. Если новый адрес больше не измениться, тогда лучше использовать код «301 Moved Permanently».
303 See Other — Этим кодом клиент перенаправляется для получения запрашиваемого ресурса по другому URI с помощью метода GET.
304 Not Modified — Такой код ответа сервер отдаст когда дата последнего обновления страницы («Last-Modified») будет старше чем дата в заголовке «If-Modified-Since». То есть, если документ не менялся с указанной даты, то его не нужно загружать заново и происходит редирект на кэшированную копию. Это позволяет существенно снизить нагрузку на сервер.
305 Use Proxy — Запрос к указанному ресурсу может быть выполнен только через прокси-сервер. Клиент должен повторить запрос через прокси, указанный в поле «Location».
307 Temporary Redirect — Код ответа 307 почти полный аналог кода 302 — страница временно доступна по другому адресу, но вернется на старый. Разница в том, что http code 307 не позволяет изменить метод запроса POST на GET.
308 Permanent Redirect — является аналогом кода 301 «Редирект» с той разницей, что это перенаправление не позволяет изменить метод запроса POST на GET.
4хх коды ответа сервера
400 Bad Request — Сервер не может обработать запрос, так как в нем присутствует ошибка. Проще говоря, сервер не может понять запроса.
401 Unauthorized — Требуется аутентификация для получения доступа к запрашиваемой странице. В заголовке «Authorization» должны быть необходимые данные.
402 Payment Required — Этот http code предназначен для использования в платежных системах и на сегодня не используется.
403 Forbidden — Клиент не имеет прав для получения или для просмотра содержимого страницы.
404 Not Found — Самый распространенный код ответа сервера в классе 4хх. Сервер понял запрос и принял его, но не может найти указанный ресурс или содержимое. Важный момент — страница с информацией о том, что ресурс недоступен, должна при этом отдавать 404 код ответа сервера, а не 200 ОК.
405 Method Not Allowed — Ответ говорит о том, что используемый в запросе метод нельзя использовать, так как он или запрещен, или деактивирован. В заголовке Allow сервер должен указать доступные методы
406 Not Acceptable — Означает, что сервер принял и обработал запрос, но подходящих документов не обнаружено.
407 Proxy Authentication Required — Такой http code аналогичен коду 401. Различие в том, что аутентификация здесь требуется для прокси-сервера.
408 Request Timeout — Сообщает о том, что сервер прервал неиспользуемое соединение потому, что не получал никаких запросов от клиента длительное время. Такой код сервера отдаст, если клиент самостоятельно прервал соединение или оно прервалось по каким-то иным причинам и ответ отправить уже невозможно.
409 Conflict — Сервер не может выполнить запрос по конфликта с текущим состоянием сервера. Обычно появляется при совместной работе клиентов с файлами.
410 Gone — Ответ является аналогом 404 и используется веб-мастерами когда поисковой системе надо сказать, что страница по этому адресу больше никогда не будет доступна. Так поисковая система лучше всего поймёт, что страница больше никогда не будет доступна и скорее уберет ее из индекса. Если планируется, что страница через какое-то время вновь появится по этому адресу — оптимальнее использовать код 404.
411 Length Required — В запросе клиента должно быть указано значение заголовка «Content-Length» иначе запрос не может быть выполнен. Ответ появляться если на сервере стоит ограничение объёма загружаемого файла. В запросе указывается его размер, чтобы не совершать других запросов, которые ни к чему не приведут.
412 Precondition Failed — Запрос не может быть обработан успешно по той причине, что в одном из заголовков указано условие, которое не может соблюсти сервер.
413 Request Entity Too Large — Запрос имеет слишком большой объем и серверу это не понравилось.
414 URI Too Long — URI слишком длинный и сервер не может его обработать. Такой код появится, если URI содержит слишком большое количество параметров.
415 Unsupported Media Type — Запрашиваемый формат данных не поддерживается сервером.
429 Too Many Requests — Клиент отправил слишком много запросов за короткий промежуток времени. Иногда это один из признаков того, что на сервер идёт DDoS атака.
451 Unavailable For Legal Reasons — Доступ к содержимому закрыт по юридическим причинам. Например, из-за нарушения авторских прав.
5хх коды ответа сервера
500 Internal Server Error — http code 500 значит, что сервер не может выполнить из-за внутренней ошибки, которая не имеет обозначения другим кодом среди класса 5хх.
501 Not Implemented — Сервер не может обработать запрос. Чаще всего это происходит из-за указанного в запросе неподдерживаемого метода. Если он известен, но не разрешен — тогда будет код ответа 405.
502 Bad Gateway — Такой код ответа сервера появляется, в том случае, если промежуточный сервер, выполняющий роль шлюза между клиентом, получил некорректный ответ от и вышестоящего сервера.
503 Service Unavailable — Сервер сейчас недоступен и не может обработать запрос. Как правило, сервер недоступен в случае технических работ или перезагрузки. В ответе может содержаться заголовок «Retry-After» — там будет указано, через какое время следует обратиться к этому серверу снова.
504 Gateway Timeout — Вышло время ответа, требуемое для ответа от вышестоящего сервера, промежуточному. Проше говоря, шлюз не дождался ответа.
505 HTTP Version Not Supported — Указанная в запросе версия протокола HTTP не поддерживается сервером.
507 Insufficient Storage — Такой код ответа сервер выдаёт когда у него закончилось свободное место и запрос он не может обработать.
508 Loop Detected — Сервер обнаружил бесконечный цикл при обработке и потому запрос не будет выполнен.
511 Network Authentication Required — Появляется когда сервер-посредник требует авторизации в сети. Иногда это требование может выставлять провайдера. Считается, что с этим кодом должен возвращаться адрес формы для ввода данных.
526 Invalid SSL Certificate — Этот код появляется если не получается подтвердить сертификат шифрования веб-сервера.
Влияние кодов ответа сервера в SEO
Любой опытный веб-мастер скажет, что коды ответа сервера играют важную роль в продвижении сайтов. Чтобы поисковый бот мог быстро просканировать страницу или выполнить необходимые действия с ней, достаточно корректно настроить код и, главное, вовремя его «подсунуть». Коды ответа сервера сильно помогают веб-мастеру при каких-либо изменениях с сайтом: при смене CMS системы, при переезде на безопасный протокол соединения https, при смене адреса страницы. Во всех подобных операциях мы подсказываем поисковому боту, что происходит со страницами нашего сайта с помощью изменения кода ответа сервера. Цель — чтобы он корректно воспринял эти изменения с ресурсом.
Наиболее часто используемые веб-мастерами и SEO-специалистами коды ответа:
- 200 OK — Самый главный код, который должны отдавать все страницы, чтобы быть в индексе поисковой системы.
- 301 и 302 Redirect — Если требуется изменить URL какой-то страницы.
- 404 и 410 — Пригодятся когда страница уже удалена.
Грамотное использование кодов ответа сервера даёт возможность хорошо и быстро наладить взаимодействие между сайтом и поисковой системой. Само собой, это очень положительно отразиться на эффективности в SEO.