Мы часто говорим, ошибка 404, ошибка 403, 301, ошибка 503 и друг друга отлично понимаем. И примерно понимаем, что нужно делать в данной ситуации. Данная статья направлена на тех, кто только начинает во всё этом разбираться, чтобы мы все могли говорить на одном языке.
Что такое код ответа сервера
На каждый запрос пользователя сервер дает определенный ответ. На стороне пользователя браузер анализирует этот ответ и понимает, что делать дальше: прогружать страницу сайта, давать запрет на доступ, или перенаправлять пользователя на страницу 404 ошибки.
Именно по кодам ответа ищутся на сайте битые ссылки. Это самый простой и надежный способ.
Какие бывают коды ответа
Коды ответа делятся по числовым значениям
- 1xx — Информационный ответ
- 2xx — Успешная обработка запроса
- 3xx — Переадресация (редиректы постоянные и временные)
- 4xx — Ошибки выполнения запроса
- 5xx — Ошибки сервера
Информационные ответы (1xx):
- 100 Continue
Часть запроса принята, можно отправлять следующую часть запроса. Часто даже не выделяется отдельно. Код говорит серверу — ОК, работаем дальше, всё идет по плану! - 101 Switching Protocols
Сервер производит переключение протоколов в соответствии с заголовком Upgrade. Пользователя это никоим боком не касается. Про этот код ответа можете забыть 🙂
Успешная обработка запроса (2xx):
- 200 OK
Запрос обработан успешно. Самый главный код. Именно он дает команду браузеру производить загрузку страницы. Говорит, что всё хорошо с запросом, он успешно обработан. - 201 Created
Данный код используется когда происходит создание нового URI. Вместе с кодом сервер посылает заголовок Location с адресом нового URI. Например при поиске или фильтрации может возвращаться этот код. - 202 Accepted
Запрос принят и обрабатывается. В теле ответа как правило содержится дополнительная информация. - 203 Non-Authoritative Information
Ответ означает, что информация получена из ненадежного источника (например, с другого сервера). Иногда этим пользуются злоумышленники, поэтому при наличии 203 кода следует проверить сайт на вирусы. - 204 No Content
Запрос обработан, но в ответ ничего не возвращается. Как правило используется если в ответ на запрос не нужно обновлять содержимое документа. Чисто технический момент, на него не обращайте внимания - 205 Reset Content
Означает, что содержимое документа должно быть сброшено в начальное состояние. Обычно используется при очистке форм ввода данных. Похож на 204 код, но тут нужно перезагружать документ. - 206 Partial Content
При данном ответе возвращается лишь часть данных. Обычно используется если клиент запросил часть данных с использованием заголовка Range. Тесно связан с процессом кэширования.
Переадресация (3xx):
- 300 Multiple Choices
Означает, что существует несколько вариантов запрашиваемой страницы. Например, сайт, переведенный на несколько языков и пользователю предложены варианты выбора. В теле содержимого могут возвращаться данные для выбора правильного ресурса. - 301 Moved Permanently
Затребованный URI уже не используется сервером, и указанная в запросе операция не выполнена. Новое местонахождение затребованного документа указывается в заголовке Location файла .htaccess. Во всех последующих запросах данного документа следует указывать новый URI. Очень важный код ответа, с помощью которого можно избавиться от дублей страниц и сменить адреса страниц на новые без потери позиций и веса. - 302 Moved Temporarily
Затребованный URI перемешен, но лишь временно. Заголовок Location файла .htaccess указывает на новое местонахождение. После получения этого кода ответа клиент получает документ по новому адресу, а во всех последующих запросах — по старому. - 303 See Other
Затребованный URI можно найти по другому адресу, указанному в заголовке Location файла .htaccess. Его следует выбрать методом GET по данному ресурсу. - 304 Not Modified
Данный код ответа возвращается если был запрос lf-Modified-Since, и документ не изменялся с указанной даты. Тело документа не посылается, а клиент должен использовать локальную версию документа. - 305 Use Proxy
Доступ к документу должен осуществляться через proxy-сервер, адрес которого указан в Location.
Ошибки выполнения запроса (4xx):
- 400 Bad Request
Любая синтаксическая ошибка в строке запроса. - 401 Unauthorized
Этот ответ, передаваемый с заголовком WWW-Authenticate, означает, что пользователь не имеет достаточных прав для просмотра документа. Как правило эта ошибка появляется, если для просмотра документа нужна авторизация пользователя, а пользователь не авторизован, например, через связку htaccess-htpasswd. - 402 Payment Required
Этот код ответа еще не реализован, но название говорит само за себя. Используется несколькими популярными сервисами (в частности, youtube), чтобы защититься от спама с конкретного IP адреса. - 403 Forbidden
Запрос клиента отклонен по какой-либо причине. Чаще всего, когда страница находится в закрытом разделе с ограниченным доступом. - 404 Not Found
Документ не найден. Наверное это самая распространенная ошибка сервера. Возникает, когда документ был удален или допущена ошибка в адресе документа. - 405 Method Not Allowed
Означает, что метод, используемый клиентом, не поддерживается. Например, при попытке отправить POST — данные документу, который не является скриптом. - 406 Not Acceptable
Ресурс существует, но в другом формате, например, может различаться язык документа. Вместе с этим кодом сервер возвращает заголовки Content-Language, Content-Encoding и Content-Type. - 407 Proxy Authentication Required
Proxy-сервер должен санкционировать запрос перед тем, как пересылать его. Используется с заголовком Proxy-Authenticate. - 408 Request Time-out
Сервер разорвал соединение из-за превышенного таймаута. Этот код ответа означает, что клиент не передал полный запрос в течение некоторого установленного промежутка времени (который задается в конфигурации сервера) и сервер разрывает сетевое соединение. Как правило это происходит при плохом качестве связи, при передачи больших объемов данных серверу, при очень низкой скорости сайта. - 409 Conflict
Данный запрос конфликтует с другим запросом или с конфигурацией сервера. Информация о конфликте обычно возвращается в информационной части ответа. Можно почитать и быстро устранить. - 410 Gone
Запрошеный документ навсегда удален с сервера. - 411 Length Required
Пропущено необходимое поле в заголовке запроса Content-Length. - 412 Precondition Failed
Не выполнено условие, указанное в заголовке. - 413 Request Entity Too Large
Слишком большой запрос. - 414 Request-URI Too Long
Слишком длинный URL в запросе. Часто возникает при GET фильтрации данных в многоуровневых фильтрах. Поэтому на этапе разработки сайта следует подумать, а может лучше фильтровать данные через POST, генерируя потом уникальную ЧПУ ссылку. Ведь данные в POST могут передаваться в огромном количестве (зависит от параметра в php.ini) - 415 Unsupported Media Type
Сервер не поддерживает указанный формат данных. Не поддерживает и не собирается. Всё, точка. - 416 Requested Range Not Satisfiable
Сервер сообщает — форма запроса (требуемый диапазон) не выполнима. - 417 Expectation Failed
Время ожидания истекло.
Ошибки сервера (5xx):
- 500 Internal Server Error
Внутренняя ошибка сервера. Ошибка выполнения скрипта, ошибка в файле .htaccess и т.д. Легко обнаруживается в логах веб-сервера. Исправляется программистами 🙂 - 501 Not Implemented
Недопустимое действие. - 502 Bad Gateway
Недопустимый ответ с другого ресурса. - 503 Service Unavailable
Данный код означает, что указанный сервис временно недоступен, если известно время восстановления работы, то может быть передан заголовок Retry-After. Часто возникает из-за перегрузок сервера на слабых хостингах. - 504 Gateway Time-out
Превышен таймаут ожидания от другого ресурса. - 505 HTTP Version not supported
Данная версия протокола HTTP не поддерживается сервером.
Что делать при возникновении ошибок
Некоторые ошибки являются временными (например, 503), а некоторые делают работу сайта невозможной.
Поэтому сперва при возникновении ошибок следует смотреть записи в логах сервера. Там будут ответы на очень многие вопросы.
А если сайт часто не отвечает, то есть смысл подумать о смене хостера.
Хотите задать вопрос или заказать услугу? Пишите!
Гарантирован ответ в течение 1 часа в рабочее время!
Понравилась статья? Поделись ею с друзьями!
Доброго времени суток Эдуард. Скажите, как исправлять все эти ошибки, у вас есть статья на эту тему? Спасибо.
Здравствуйте, Альберт!
Всё зависит от того, что за ошибка возникает. Вариантов решения — масса. Всё зависит от конкретной ситуации, настроек сервера, используемой системы управления сайтом.