Многие пользователи при входе на какой нибудь сайт, под своим логином, или для регистрации, иногда сталкиваются с проблемой не возможностью этого сделать, из-за ошибки 423 (Method locked due to malicious activity from your IP address). Эта ошибка означает, что этот ip заблокирован хостером за аномальную активность, а именно интернет мошенничество. Так же вероятно, что это результат вируса на компьютере пользователя. Существуют и другие причины этой ошибки о которых пойдет речь в этой статье, а также как с этим можно бороться.
Как написано выше, эта ошика может возникнуть из-за вируса на компьютере, поэтому, первым делом проверьте вашу систему антивирусными утилитами на наличие таковых. Хороший вариант воспользоваться такими сканерами как Dr.Web CureIt или AdwCleaner.
Зачастую, Error 423 (Method locked due to malicious activity from your IP address) происходит из-за Вашего динамического IP адреса, через который в сеть выходят тысячи пользователей.
Для решения этой ситуации необходимо приобрести статистический IP, или так называемый «белый адрес», который получить сейчас довольно таки сложно, так как провайдеры сидят на IPv4 и свободных адресов может и не быть, а если и есть, то стоят они гараздо дороже. В случае если у Вас нет возможности перейти на статистический IP адрес, есть вариант применить «исскуственный» способ смены IP адреса установив специальные программы дополнения в Ваш браузер. Очень хорошая программка для таких целей ZenMate. Эта дополнение сделана для браузеров Mozilla Firefox и Google Chrome. Включайте ZenMate по мере надобности, там где блокируется вход на нужный Вам сайт.
Со временем Error 423 может исчезнуть сама по себе, если причиной этой ошибки был Ваш интернет-провайдер.
Меню сайта
Компьютеры и железо
Инструменты
Информационные справочники
Облако тегов
1С Google PHP SEO TrustRank Индексация Интернет магазин Поисковая оптимизация Поисковый робот Продвижение блога Продвижение интернет магазина Продвижение сайта Разработка сайта Раскрутка блога Раскрутка интернет магазина Раскрутка сайта Создание блога Создание сайта
BNAME.RU » Код ошибки HTTP 423 Locked
Что означает ошибка 423 Locked ?
Состояние 423 указывает, что целевой ресурс недоступен для указанного метода. Этот ответ ДОЛЖЕН содержать соответствующее предварительное условие или постусловие, такое как «lock-token-submissed» или «no-conflicting-lock»
Если Вам помогла информация размещенная на странице «HTTP коды» — Вы можете поддержать наш проект.
«1xx» — Информационные коды HTTP
100 — Continue (Продолжай)
«Продолжить». Этот промежуточный ответ указывает, что запрос… Читать далее
Подробнее
101 — Switching Protocol (Переключение протоколов)
«Переключение протокола». Этот код присылается в ответ на за… Читать далее
Подробнее
102 — Processing (Идёт обработка)
«В обработке». Этот код указывает, что сервер получил запрос… Читать далее
Подробнее
103 — Early Hints (Ранняя метаинформация)
«Ранние подсказки». В ответе сообщаются ресурсы, которые мог… Читать далее
Подробнее
«2xx» — Успешные коды HTTP
200 — OK (Хорошо)
«Успешно». Запрос успешно обработан. Что значит «успешно», з… Читать далее
Подробнее
201 — Created (Создано)
«Создано». Запрос успешно выполнен и в результате был создан… Читать далее
Подробнее
202 — Accepted (Принято)
«Принято». Запрос принят, но ещё не обработан. Не поддержива… Читать далее
Подробнее
203 — Non-Authoritative Information (Информация не авторитетна)
«Информация не авторитетна». Этот код ответа означает, что и… Читать далее
Подробнее
204 — No Content (Нет содержимого)
«Нет содержимого». Нет содержимого для ответа на запрос, но … Читать далее
Подробнее
205 — Reset Content (Сбросить содержимое)
«Сбросить содержимое». Этот код присылается, когда запрос об… Читать далее
Подробнее
206 — Partial Content (Частичное содержимое)
«Частичное содержимое». Этот код ответа используется, когда … Читать далее
Подробнее
207 — Multi-Status (Многостатусный)
Код 207 (Multi-Status) позволяет передавать статусы для неск… Читать далее
Подробнее
208 — Already Reported (Уже сообщалось)
Относится к DAV и был ранее включен в 207 ответ. Там поныне … Читать далее
Подробнее
226 — IM Used (Использовано IM)
Расширение HTTP для поддержки «дельта кодирования» ( delta e… Читать далее
Подробнее
«3xx» — Коды перенаправлений (HTTP Редиректы)
300 — Multiple Choice (Множество выборов)
«Множественный выбор». Этот код ответа присылается, когда за… Читать далее
Подробнее
301 — Moved Permanently (Перемещено навсегда)
«Перемещён на постоянной основе». Этот код ответа значит, чт… Читать далее
Подробнее
302 — Found / Moved Temporarily (Найдено / Перемещено временно)
«Найдено». Этот код ответа значит, что запрошенный ресурс вр… Читать далее
Подробнее
303 — See Other (Смотреть другое)
«Просмотр других ресурсов». Этот код ответа присылается,&nbs… Читать далее
Подробнее
304 — Not Modified (Не изменялось)
«Не модифицировано». Используется для кэширования. Это код о… Читать далее
Подробнее
305 — Use Proxy (Использовать прокси)
«Использовать прокси». Это означает, что запрошенный ресурс … Читать далее
Подробнее
306 — Switch Proxy (Сменить прокси)
Больше не использовать. Изначально подразумевалось, что » по… Читать далее
Подробнее
307 — Temporary Redirect (Временное перенаправление)
«Временное перенаправление». Сервер отправил этот ответ… Читать далее
Подробнее
308 — Permanent Redirect (Постоянное перенаправление)
«Перенаправление на постоянной основе». Это означает, что ре… Читать далее
Подробнее
«4xx» — Коды ошибок на стороне клиента
400 — Bad Request (Некорректный запрос)
«Плохой запрос». Этот ответ означает, что сервер не понимает… Читать далее
Подробнее
401 — Unauthorized (Не авторизован)
«Неавторизовано». Для получения запрашиваемого ответа нужна … Читать далее
Подробнее
402 — Payment Required (Необходима оплата)
«Необходима оплата». Этот код ответа зарезервирован для буду… Читать далее
Подробнее
403 — Forbidden (Запрещено)
«Запрещено». У клиента нет прав доступа к содержимому, поэто… Читать далее
Подробнее
404 — Not Found (Не найдено)
«Не найден». Сервер не может найти запрашиваемый ресурс. Код… Читать далее
Подробнее
405 — Method Not Allowed (Метод не поддерживается)
«Метод не разрешен». Сервер знает о запрашиваемом методе, но… Читать далее
Подробнее
406 — Not Acceptable (Неприемлемо)
Этот ответ отсылается, когда веб сервер после выполнения ser… Читать далее
Подробнее
407 — Proxy Authentication Required (Необходима аутентификация прокси)
Этот код ответа аналогичен коду 401, только аутентификация т… Читать далее
Подробнее
408 — Request Timeout (Истекло время ожидания)
Ответ с таким кодом может прийти, даже без предшествующего з… Читать далее
Подробнее
409 — Conflict (Конфликт)
Этот ответ отсылается, когда запрос конфликтует с текущим со… Читать далее
Подробнее
410 — Gone (Удалён)
Этот ответ отсылается, когда запрашиваемый контент удален с … Читать далее
Подробнее
411 — Length Required (Необходима длина)
Запрос отклонен, потому что сервер требует указание заголовк… Читать далее
Подробнее
412 — Precondition Failed (Условие ложно)
Клиент указал в своих заголовках условия, которые сервер не … Читать далее
Подробнее
413 — Request Entity Too Large (Полезная нагрузка слишком велика)
Размер запроса превышает лимит, объявленный сервером. Сервер… Читать далее
Подробнее
414 — Request-URI Too Long (URI слишком длинный)
URI запрашиваемый клиентом слишком длинный для того, чтобы с… Читать далее
Подробнее
415 — Unsupported Media Type (Неподдерживаемый тип данных)
Медиа формат запрашиваемых данных не поддерживается сервером… Читать далее
Подробнее
416 — Requested Range Not Satisfiable (Диапазон не достижим)
Диапозон указанный заголовком запроса Range не может бы… Читать далее
Подробнее
417 — Expectation Failed (Ожидание не удалось)
Этот код ответа означает, что ожидание, полученное из заголо… Читать далее
Подробнее
418 — I’m a teapot (Я — чайник)
I’m a teapot — Этот код был введен в 1998 году как одна из т… Читать далее
Подробнее
419 — Authentication Timeout (not in RFC 2616) (Обычно ошибка проверки CSRF)
Authentication Timeout (not in RFC 2616) — Этого кода нет в … Читать далее
Подробнее
420 — Enhance Your Calm (Twitter) (Подождите немного (Твиттер))
Возвращается Twitter Search и Trends API, когда клиент отпра… Читать далее
Подробнее
421 — Misdirected Request (Неверный запрос)
Misdirected Request — запрос был перенаправлен на сервер, не… Читать далее
Подробнее
422 — Unprocessable Entity (Необрабатываемый экземпляр)
Запрос имел правильный формат, но его нельзя обработать из-з… Читать далее
Подробнее
423 — Locked (Заблокировано)
Целевой ресурс из запроса заблокирован от применения к нему … Читать далее
Подробнее
424 — Failed Dependency (Невыполненная зависимость)
Не удалось завершить запрос из-за ошибок к предыдущем запрос… Читать далее
Подробнее
425 — Too Early (Слишком рано)
Too Early — сервер не готов принять риски обработки «ранней … Читать далее
Подробнее
426 — Upgrade Required (Необходимо обновление)
Указание сервера, клиенту, обновить протокол. Заголовок отве… Читать далее
Подробнее
428 — Precondition Required (Необходимо предусловие)
Precondition Required — сервер указывает клиенту на необходи… Читать далее
Подробнее
429 — Too Many Requests (Слишком много запросов)
Too Many Requests — клиент попытался отправить слишком много… Читать далее
Подробнее
430 — Would Block (Будет заблокировано)
Код состояния 430 would Block — это код, который сервер мог … Читать далее
Подробнее
431 — Request Header Fields Too Large (Поля заголовка запроса слишком большие)
Request Header Fields Too Large — Превышена допустимая длина… Читать далее
Подробнее
434 — Requested host unavailable (Запрашиваемый адрес недоступен)
Сервер к которому вы обратились недоступен… Читать далее
Подробнее
444 — No Response (Nginx) (Нет ответа (Nginx))
Код ответа Nginx. Сервер не вернул информацию и закрыл соеди… Читать далее
Подробнее
449 — Retry With (Повторить с…)
Retry With — возвращается сервером, если для обработки запро… Читать далее
Подробнее
450 — Blocked by Windows Parental Controls (Microsoft) (Заблокировано родительским контролем Windows (Microsoft))
Расширение Microsoft. Эта ошибка возникает, когда родительск… Читать далее
Подробнее
451 — Unavailable For Legal Reasons (Недоступно по юридическим причинам)
Unavailable For Legal Reasons — доступ к ресурсу закрыт по ю… Читать далее
Подробнее
499 — Client Closed Request (Клиент закрыл соединение)
Нестандартный код состояния, представленный nginx для случая… Читать далее
Подробнее
«5xx» — Коды ошибок на стороне сервера
500 — Internal Server Error (Внутренняя ошибка сервера)
«Внутренняя ошибка сервера». Сервер столкнулся с ситуацией, … Читать далее
Подробнее
501 — Not Implemented (Не реализовано)
«Не выполнено». Метод запроса не поддерживается сервером и н… Читать далее
Подробнее
502 — Bad Gateway (Плохой шлюз)
«Плохой шлюз». Эта ошибка означает что сервер, во время рабо… Читать далее
Подробнее
503 — Service Unavailable (Сервис недоступен)
«Сервис недоступен». Сервер не готов обрабатывать запрос. За… Читать далее
Подробнее
504 — Gateway Timeout (Шлюз не отвечает)
Этот ответ об ошибке предоставляется, когда сервер действует… Читать далее
Подробнее
505 — HTTP Version Not Supported (Версия HTTP не поддерживается)
«HTTP-версия не поддерживается». HTTP-версия, используемая в… Читать далее
Подробнее
506 — Variant Also Negotiates (Вариант тоже проводит согласование)
Из-за не верной конфигурации, выбранный вариант указывает са… Читать далее
Подробнее
507 — Insufficient Storage (Переполнение хранилища)
Не хватает места для выполнения текущего запроса. Проблема м… Читать далее
Подробнее
508 — Loop Detected (Обнаружено бесконечное перенаправление)
Сервер обнаружил бесконечный цикл при обработке запроса…. Читать далее
Подробнее
509 — Bandwidth Limit Exceeded (Исчерпана пропускная ширина канала)
Данный код статуса, используется в случае превышения веб пло… Читать далее
Подробнее
510 — Not Extended (Не расширено)
У сервера отсутствует расширение, которое пытается использов… Читать далее
Подробнее
511 — Network Authentication Required (Требуется сетевая аутентификация)
Необходимо выполнить аутентификацию, при этом в ответе должн… Читать далее
Подробнее
520 — Unknown Error (Неизвестная ошибка)
Unknown Error, возникает когда сервер CDN не смог обработать… Читать далее
Подробнее
521 — Web Server Is Down (Веб-сервер не работает)
Web Server Is Down, возникает когда подключения CDN отклоняю… Читать далее
Подробнее
522 — Connection Timed Out (Соединение не отвечает)
Connection Timed Out, возникает когда CDN не удалось подключ… Читать далее
Подробнее
523 — Origin Is Unreachable (Источник недоступен)
Origin Is Unreachable, возникает когда веб-сервер недостижим… Читать далее
Подробнее
524 — A Timeout Occurred (Время ожидания истекло)
A Timeout Occurred, возникает при истечении тайм-аута подклю… Читать далее
Подробнее
525 — SSL Handshake Failed (Квитирование SSL не удалось)
SSL Handshake Failed, возникает при ошибке рукопожатия SSL м… Читать далее
Подробнее
526 — Invalid SSL Certificate (Недействительный сертификат SSL)
Invalid SSL Certificate, возникает когда не удаётся подтверд… Читать далее
Подробнее
527 — Error: Railgun Listener to origin error (Ошибка прослушивателя рейлгана для источника)
Нестандартный код CloudFlare — указывает на прерванное соеди… Читать далее
Подробнее
530 — Origin DNS Error (Ошибка исходного DNS)
Нестандартный код CloudFlare. Ошибка HTTP 530 возвращается с… Читать далее
Подробнее
598 — Network read timeout error (Ошибка тайм-аута сетевого чтения)
Используется прокси-серверами Microsoft HTTP для передачи си… Читать далее
Подробнее
599 — Network connect timeout error (Ошибка тайм-аута сетевого подключения)
Используется прокси-серверами Microsoft HTTP для передачи си… Читать далее
Подробнее
Copyright © BNAME.RU 2006 – | Все права защищены.
Последние комментарии
Ewan — 5 февраля 2023 14:43
PHP преобразовать первый символ в верхний регистр — функция mb_ucfirst() в многобайтных кодировках и юникода
CBD Oil Malta, trustedrevie.ws, Write more, thats all I have to say. Literally, it seems as though you relied on the
Christopher — 15 января 2023 20:08
PHP преобразовать первый символ в верхний регистр — функция mb_ucfirst() в многобайтных кодировках и юникода
Are you looking to jumpstart your career in the exciting world of Web3 and blockchain technology? Look no further
Darci — 15 января 2023 10:52
PHP преобразовать первый символ в верхний регистр — функция mb_ucfirst() в многобайтных кодировках и юникода
toto slot (archive.ams.cmu.ac.th)
Allan — 15 января 2023 04:40
PHP преобразовать первый символ в верхний регистр — функция mb_ucfirst() в многобайтных кодировках и юникода
Are you looking to jumpstart your career in the exciting world of Web3 and blockchain technology? Look no further than
Rosaline — 4 января 2023 03:34
PHP преобразовать первый символ в верхний регистр — функция mb_ucfirst() в многобайтных кодировках и юникода
bestspherepictures.blogspot.com It’s a shame you don’t have a donate button! I’d without a doubt donate to this
Все комментарии
Онлайн статистика
7 посетителей на сайте. Из них:
Гости7
Умные люди придумали коды, по которым можно определить, что произошло с HTTP-запросом. Успешен ли он, произошло ли перенаправление. Или же все закончилось ошибкой. Как раз об ошибках и будем говорить в этой статье. Вкратце расскажу, какие они бывают и с чем связаны.
А еще тут будет парочка забавных (и не очень) пикч и анимаций на тему описанных ошибок. Хоть какое-то развлечение.
Ошибки со стороны клиента (4xx)
Для начала перечислим коды ошибок на стороне клиента. Вина за их появление ложится на плечи обоих участников соединения.
400 Bad Request
Такой ответ от браузера можно получить в том случае, если сервер не смог правильно отреагировать на запрос со стороны пользователя. Часто код 400 возникает при попытке клиента получить доступ к серверу без соблюдения правил оформления синтаксиса протокола передачи гипертекста (HTTP). Повторный запрос не стоит отправлять до тех пор, пока не будет исправлена ошибка (или несколько из них).
401 Unauthorized
Код 401 возникает при попытке клиента получить доступ к серверу, используя неправильные данные для авторизации. По сути, используется, когда пользователь вводит неправильный логин и пароль на ресурсе, где требуется эта информация для входа. Читайте: Как исправить ошибку 401
402 Payment Required
Эта ошибка сообщает клиенту о том, что для успешного выполнения запроса ему необходимо оплатить доступ к серверу. Изначально код 402 должен был стать неким стандартом для цифровой валюты и оплаты контента в сети. Но не срослось. До сих пор нет единого решения по поводу того, как должны выглядеть платежи в сети. Также нет и единого решения по поводу того, как стоит использовать 402.
Все еще считается, что код существует с расчетом на будущее. Сейчас почти не используется и поддерживается не всеми браузерами.
403 Forbidden
Почти то же, что и 401. Сервер снова не разрешает к нему подключиться, хотя с запросом все в порядке. Просто нет доступа. Причем повторная авторизация с другими логином и паролем никак не помогут. Все вопросы к владельцам сервера (но не всегда). Инструкция по устранению ошибки.
Творчество на тему знаменитой киносаги
404 Not Found
Легендарная ошибка, ставшая популярным мемом. 404 оповещает клиента о том, что его запрос ведет в никуда. Код возникает, когда пользователь пытается попасть на страницу, которой не существует. Например, когда случайно ошибается при вводе ссылки и вводит ее с опечаткой. Или же пытается получить доступ к странице, которой на сайте уже нет.
В отличие от других кодов, страницу с 404 частенько кастомизируют, создавая для нее уникальный дизайн. Мало того, что это выглядит симпатичнее, так еще и полезнее для посетителей. Можно прямо на странице с ошибкой разъяснить, что произошло и как дальше действовать.
И таких вариаций тысячи. Каждый пытается добавить в оформление что-то свое.
405 Method Not Allowed
405 сообщает клиенту о том, что метод, используемый при запросе, не разрешен. В качестве примера можно привести попытку со стороны клиента ввести данные в форму с помощью GET, когда она работает только с POST. Ну и в таком же духе.
406 Not Acceptable
Ошибка 406 сообщает о том, что страница передает контент, который не может быть распознан клиентом. Возможно, проблема в методе сжатия или в формате страницы. Иногда сюда же приплетают неправильные настройки кодировки.
Этот код редко используют на практике, так как его появления можно избежать, предоставив пользователю информацию на сайте в том виде, который его браузер способен принять. Посетитель сайта по итогу получит не то, что ожидал, но хотя бы не ошибку.
407 Proxy Authentication Required
Этот код тоже похож на 401. Только на этот раз логин и пароль нужны не для основного сервера, а для прокси, который находится между клиентом и сервером. Обычно в теле ошибки содержится информация о том, как можно правильно пройти авторизацию и получить доступ к ресурсу.
408 Request Timeout
408 говорит нам о том, что сервер пожелал разорвать соединение с клиентом, потому что оно никак не используется. Происходит это в том случае, если сервер буквально устал ждать, пока наладится соединение с ним. Поэтому такую ошибку часто можно лицезреть после очень долгой и безуспешной загрузки какого-нибудь сайта.
Многие серверы не отправляют никаких сообщений, а просто прерывают соединение по той же причине. На запрос уходит больше времени, чем на то полагается.
В Мистере Роботе частенько называли серии в честь ошибок HTTP (весь четвертый сезон в нумерации 4хх). В честь 408, например, назвали восьмую серию четвертого сезона
409 Conflict
Сообщение о конфликте возникает, когда запрос со стороны клиента не соответствует тому, чего ожидает сервер. В качестве примера приводят проблемы при проверки версий, когда пользователь пытается с помощью метода PUT загрузить на сервер новый файл, но там уже имеется более новая версия того же файла. Конфликта версий можно легко избежать, загрузив корректную версию.
410 Gone
Своего рода аналог 404. Разница лишь в том, что 410 намекает на перманентность отсутствия страницы. Так что этот код стоит использовать, когда на 100% уверен, что страница ушла в небытие (ну или с текущего адреса) навсегда. В любом другом случае есть универсальный 404.
411 Length Required
411 оповещает пользователя о том, что сервер не желает принимать запрос со стороны клиента, потому что в нем не определен заголовок Content-Length. Да, это первый код в подборке, который смогут понять только люди, сведущие в настройке серверов. По-простому уложить сущность HTML-заголовков в этот материал не получится.
412 Precondition Failed
Еще один код, сообщающий о том, что сервер отклонил запрос пользователя и не разрешает доступ к выбранному ресурсу. Проблемы возникают при неправильной настройке работы методов, отличающихся от GET и HEAD.
413 Payload Too Large/Request Entity Too Large
Код 413 говорит нам, что запрос, который посылает клиент на сервер, слишком большой. Поэтому сервер отказывается его обрабатывать и разрывает соединение. Обычно это происходит при попытке загрузить на ресурс какой-то файл, превышающий ограничение, выставленное в настройках сервера. Соответственно, решается проблема изменением настроек сервера.
414 URI Too Long
Чем-то этот код похож на предыдущий. Здесь тоже идет речь о превышение лимита. Только теперь это касается не запроса со стороны клиента, а длины URI. То есть ссылки. Выходит, что адрес, используемый клиентом, больше, чем тот, что может обработать сервер. Как-то так.
Такая ошибка иногда выскакивает при попытке взломать ресурс. Сайт так реагирует на слишком частые попытки воспользоваться потенциальными дырами в безопасности.
415 Unsupported Media Type
Ошибка 415 возникает, когда клиент пытается загрузить на сервер данные в неподходящем формате. В таком случае сервер просто отказывается принимать посылаемые файлы и разрывает соединение. Как и в случае с 413.
416 Range Not Satisfiable
Подобный ответ можно ожидать, если клиент запрашивает у сервера определенные данные, но эти данные на сервере не соответствуют запросу. То есть, грубо говоря, вы просите у сервера какой-то набор данных с заранее заданным размером, а в итоге оказывается, что размер этих данных меньше, чем объем, указанный в запросе. Серверу ничего не остается, кроме как послать вас, ведь он не обучен поведению в таких ситуациях.
417 Expectation Failed
Такая ошибка высвечивается, когда ожидания сервера не совпадают с данными в запросе клиента. Сведения об ожиданиях прописываются в заголовке Expect заранее. Так что можно ознакомиться с ними, чтобы выяснить, как решить названную проблему.
418 I’m a teapot
Код 418 можно увидеть, если сервер откажется варить кофе, потому что он чайник. Это первоапрельская шутка. Естественно, 418 не используется нигде всерьез и просто существует как дань памяти программистам-юмористам, придумавшим это в 1998 году.
У Google получился такой симпатичный чайник
421 Misdirected Request
Появляется когда запрос клиента переправляется на сервер, который не может дать на него адекватный ответ. Например, если запрос был отправлен на ресурс, который вообще не настроен обрабатывать запросы извне.
Чтобы исправить проблему, можно попробовать переподключиться к ресурсу заново или попробовать другое соединение.
422 Unprocessable Entity
Код 422 говорит, что сервер вроде бы принял запрос, понял его, все хорошо, но из-за семантических ошибок корректно обработать не смог. Значит, где-то в запросе затаилась логическая ошибка, мешающая корректному взаимодействию клиента и сервера. Надо ее найти и исправить.
423 Locked
Обычно на этот код напарываются, когда запрашиваемый ресурс оказывается под защитой. Используемые клиентом методы блокируются на уровне сервера. Это делается, чтобы обезопасить данные, хранящиеся на защищенной странице. Без логина и пароля выудить информацию с такого сервера не получится.
424 Failed Dependency
424 сообщает о том, что для выполнения запроса со стороны клиента успешно должна завершиться еще одна или несколько параллельных операций. Если какая-то из них «провалится», то «помрет» все соединение сразу, и обработать запрос до конца не получится. Аналогичное происходит, если некорректно был обработан один из предыдущих запросов.
425 Too Early
Появляется в ответ на запрос, который может быть моментально запущен заново. Сервер не рискует и не берется за его обработку, чтобы не подставиться под так называемую «атаку повторного воспроизведения».
426 Upgrade Required
Тут нам прямо сообщают, что сервер не желает с нами общаться, пока мы не перейдем на более современный протокол. Наткнуться на такую ошибку очень тяжело, но в случае появления, скорее всего, будет достаточно установить браузер посвежее.
428 Precondition Required
428 выскакивает, если пользователь отправляет запрос на сервер, но получает некорректные или неактуальные данные. Так ресурс оповещает о необходимости внести в запрос информацию о предварительных условиях обработки данных. Только так он сможет гарантировать получение клиентом нужной информации.
429 Too Many Requests
Здесь все просто. Ошибка появляется, когда клиент отправляет на сервер слишком много запросов в короткий промежуток времени. Очень похоже на поведение взломщиков. По этой причине запрос моментально блокируется.
431 Request Header Fields Too Large
Из названия понятно, что ошибка с кодом 431 появляется из-за того, что в запросе клиента используются слишком длинные заголовки (неважно, один или несколько из них). Исправляется это с помощью сокращения заголовков и повторной отправки запроса. В теле ошибки обычно отображается краткая информация о том, как пользователь может решить эту проблему самостоятельно.
444 No Response
Этот код вам вряд ли удастся увидеть. Он отображается в лог-файлах, чтобы подтвердить, что сервер никак не отреагировал на запрос пользователя и прервал соединение.
449 Retry With
Код используется в расширениях компании Microsoft. Он сигнализирует о том, что запрос от клиента не может быть принят сервером. Причиной становятся неверно указанные параметры. Сама 449 ошибка говорит о необходимости скорректировать запрос и повторить его снова, подготовив к работе с сервером.
450 Blocked by Windows Parental Controls
450 код увидят дети, попавшие под действие системы «Родительский контроль» компании Microsoft. По сути, ошибка говорит о том, что с компьютера попытались зайти на заблокированный ресурс. Избежать этой ошибки можно изменением параметров родительского контроля.
451 Unavailable For Legal Reasons
Этот код сообщает клиенту, что он не может попасть на запрашиваемый ресурс из юридических соображений. Скорее всего, доступ был заблокирован из-за каких-нибудь государственных санкций, нового законодательства или цензуры со стороны властей. В общем, все вопросы к государству и провайдеру связи.
Читайте также
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Список ошибок на стороне сервера (5xx)
Теперь поговорим об ошибках, которые возникают где-то на сервере. Все они связаны с запросами, которые не удается обработать на том конце. Пользователь зачастую в их появлении не виноват.
500 Internal Server Error
Этот код возникает, когда сервер сталкивается с непредвиденными обстоятельствами. Такими, которые и сам не может пояснить. Как, собственно, и завершить запрос со стороны пользователя. По факту, эта ошибка говорит нам что-то вроде «Я не могу подобрать более подходящий код ошибки, поэтому лови 500 и делай с этим, что хочешь». Мы писали о нем чуть подробнее тут.
Дело не в тебе, дело во мне (С)
501 Not Implemented
501 говорит нам, что функциональность, необходимая для обработки запроса со стороны клиента, попросту не реализована на сервере. Он не сможет корректно обработать используемый метод.
Иногда в теле ошибки еще пишут что-то в духе «Приходите попозже, возможно, в будущем нужная функция появится».
502 Bad Getaway
Можно встретить в том случае, если запрашиваемый сервер выступает в роли шлюза или прокси. Возникает из-за несогласования протоколов между вышестоящим серверов и его шлюзом. Рассказываем о том, как ее исправить, в этой статье.
503 Service Unavailable
Появляется, когда сервер не может обработать запрос клиента по одной из двух технических причин:
- Слишком много пользователей в текущий момент пытаются отправить запросы, и у сервера не остается ресурсов, чтобы ответить кому-либо еще.
- На сервере ведутся технические работы, временно блокирующие его работу.
Обычно ошибка 503 носит временный характер, и для ее решения достаточно немного подождать.
504 Gateway Timeout
Ошибка похожа на 408. Здесь же прокси-сервер пытается выйти на контакт с вышестоящим сервером, но не успевает это сделать до истечения тайм-аута. Отсюда и ошибка.
505 HTTP Version Not Supported
Этот код похож на 426. Он тоже связан с неподходящей версией протокола HTTP. В этом случае нужно обеспечить и клиента, и сервер единой версией. Она, как правило, указывается в запросе со стороны пользователя.
506 Variant Also Negotiates
Обычно с такой ошибкой сталкиваются только в том случае, если сервер изначально настроен неправильно. То есть это не сиюминутная проблема, а что-то серьезное на уровне базовой конфигурации. Тут придется потрудиться разработчикам. Выявить проблему и разрешить ее.
507 Insufficient Storage
Код 507 встречается в тех ситуациях, когда серверу не хватает пространства в хранилище для обработки запроса со стороны клиента. Проблема решается освобождением места или расширением доступного пространства. Тогда сервер сможет без проблем обработать запрос пользователя.
508 Loop Detected
Таким кодом сервер отзовется в случае, если заметит бесконечный цикл в запросе клиента. Можно расценивать его как провал запроса и выполняемой операции в целом.
509 Bandwidth Limit Exceeded
Возникает, если сервер начинает потреблять больше трафика, чем ему позволено.
510 Not Extended
Появляется, если клиент посылает запрос на использование какого-либо расширения, отсутствующего на сервере. Чтобы исправить проблему, надо убрать декларирование неподдерживаемого расширения из запроса или добавить поддержку на сервер.
511 Network Authentication Required
511 код говорит о том, что перед тем как выйти в сеть, надо авторизоваться (ввести логин и пароль). Можно воспринимать это неким PPPoE подключением, когда от клиента требуются данные для авторизации.
Заключение
Закончили. Это все ошибки, которыми отзывается HTTP, если на стороне сервера или клиента что-то пошло не так. Наткнуться на большую их часть довольно тяжело. Особенно, если вы раньше только серфили в интернете, а не занимались разработкой сайтов. А тем, кто входит в эту стезю, полезно знать основные ошибки, так как, скорее всего, придется не раз их исправлять.
Содержание
Составили подробный классификатор кодов состояния HTTP. Добавляйте в закладки, чтобы был под рукой, когда понадобится.
Что такое код ответа HTTP
Когда посетитель переходит по ссылке на сайт или вбивает её в поисковую строку вручную, отправляется запрос на сервер. Сервер обрабатывает этот запрос и выдаёт ответ — трехзначный цифровой код HTTP от 100 до 510. По коду ответа можно понять реакцию сервера на запрос.
Первая цифра в ответе обозначает класс состояния, другие две — причину, по которой мог появиться такой ответ.
Как проверить код состояния страницы
Проверить коды ответа сервера можно вручную с помощью браузера и в панелях веб‑мастеров: Яндекс.Вебмастер и Google Search Console.
В браузере
Для примера возьмём Google Chrome.
-
Откройте панель разработчика в браузере клавишей F12, комбинацией клавиш Ctrl + Shift + I или в меню браузера → «Дополнительные инструменты» → «Инструменты разработчика». Подробнее об этом рассказывали в статье «Как открыть исходный код страницы».
-
Переключитесь на вкладку «Сеть» в Инструментах разработчика и обновите страницу:
В Яндекс.Вебмастере
Откройте инструмент «Проверка ответа сервера» в Вебмастере. Введите URL в специальное поле и нажмите кнопку «Проверить»:
Как добавить сайт в Яндекс.Вебмастер и другие сервисы Яндекса
В Google Search Console
Чтобы посмотреть код ответа сервера в GSC, перейдите в инструмент проверки URL — он находится в самом верху панели:
Введите ссылку на страницу, которую хотите проверить, и нажмите Enter. В результатах проверки нажмите на «Изучить просканированную страницу» в блоке «URL есть в индексе Google».
А затем в открывшемся окне перейдите на вкладку «Подробнее»:
Теперь расскажем подробнее про все классы кодов состояния HTTP.
1* класс кодов (информационные сообщения)
Это системный класс кодов, который только информирует о процессе передачи запроса. Такие ответы не являются ошибкой, хотя и могут отображаться в браузере как Error Code.
100 Continue
Этот ответ сообщает, что полученные сведения о запросе устраивают сервер и клиент может продолжать отправлять данные. Такой ответ может требоваться клиенту, если на сервер отправляется большой объём данных.
101 Switching Protocols
Сервер одобрил переключение типа протокола, которое запросил пользователь, и в настоящий момент выполняет действие.
102 Processing
Запрос принят — он находится в обработке, и на это понадобится чуть больше времени.
103 Checkpoint
Контрольная точка — используется в запросах для возобновления после прерывания запросов POST или PUT.
POST отправляет данные на сервер, PUT создает новый ресурс или заменяет существующий данными, представленными в теле запроса.
Разница между ними в том, что PUT работает без изменений: повторное его применение даёт такой же результат, что и в первый раз, а вот повторный вызов одного и того же метода POST часто меняет данные.
Пример — оформленный несколько раз интернет‑заказ. Такое часто происходит как раз по причине неоднократного использования запроса PUT.
105 Name Not Resolved
Не удается преобразовать DNS‑адрес сервера — это означает ошибку в службе DNS. Эта служба преобразует IP‑адреса в знакомые нам доменные имена.
2* класс кодов (успешно обработанные запросы)
Эти коды информируют об успешности принятия и обработки запроса. Также сервер может передать заголовки или тело сообщений.
200 ОК
Все хорошо — HTTP‑запрос успешно обработан (не ошибка).
201 Created
Создано — транзакция успешна, сформирован новый ресурс или документ.
202 Accepted
Принято — запрос принят, но ещё не обработан.
203 Non‑Authoritative Information
Информация не авторитетна — запрос успешно обработан, но передаваемая информация была взята не из первичного источника (данные могут быть устаревшими).
204 No Content
Нет содержимого — запрос успешно обработан, однако в ответе только заголовки без контента сообщения. Не нужно обновлять содержимое документа, но можно применить к нему полученные метаданные.
205 Reset Content
Сбросить содержимое. Запрос успешно обработан — но нужно сбросить введенные данные. Страницу можно не обновлять.
206 Partial Content
Частичное содержимое. Сервер успешно обработал часть GET‑запроса, а другую часть вернул.
GET — метод для чтения данных с сайта. Он говорит серверу, что клиент хочет прочитать какой‑то документ.
Представим интернет‑магазин и страницы каталога. Фильтры, которые выбирает пользователь, передаются благодаря методу GET. GET‑запрос работает с получением данных, а POST‑запрос нужен для отправки данных.
При работе с подобными ответами следует уделить внимание кэшированию.
207 Multi‑Status
Успешно выполнено несколько операций — сервер передал результаты выполнения нескольких независимых операций. Они появятся в виде XML‑документа с объектом multistatus.
226 IM Used
Успешно обработан IM‑заголовок (специальный заголовок, который отправляется клиентом и используется для передачи состояния HTTP).
3* класс кодов (перенаправление на другой адрес)
Эти коды информируют, что для достижения успешной операции нужно будет сделать другой запрос, возможно, по другому URL.
300 Multiple Choices
Множественный выбор — сервер выдает список нескольких возможных вариантов перенаправления (максимум — 5). Можно выбрать один из них.
301 Moved Permanently
Окончательно перемещено — страница перемещена на другой URL, который указан в поле Location.
302 Found/Moved
Временно перемещено — страница временно перенесена на другой URL, который указан в поле Location.
303 See Other
Ищите другую страницу — страница не найдена по данному URL, поэтому смотрите страницу по другому URL, используя метод GET.
304 Not Modified
Модификаций не было — с момента последнего визита клиента изменений не было.
305 Use Proxy
Используйте прокси — запрос к нужному ресурсу можно сделать только через прокси‑сервер, URL которого указан в поле Location заголовка.
306 Unused
Зарезервировано. Код в настоящий момент не используется.
307 Temporary Redirect
Временное перенаправление — запрашиваемый ресурс временно доступен по другому URL.
Этот код имеет ту же семантику, что код ответа 302 Found, за исключением того, что агент пользователя не должен изменять используемый метод HTTP: если в первом запросе использовался POST, то во втором запросе также должен использоваться POST.
308 Resume Incomplete
Перемещено полностью (навсегда) — запрашиваемая страница была перенесена на новый URL, указанный в поле Location заголовка. Метод запроса (GET/POST) менять не разрешается.
4* класс кодов (ошибки на стороне клиента)
Эти коды указывают на ошибки со стороны клиентов.
400 Bad Request
Неверный запрос — запрос клиента не может быть обработан, так как есть синтаксическая ошибка (возможно, опечатка).
401 Unauthorized
Не пройдена авторизация — запрос ещё в обработке, но доступа нет, так как пользователь не авторизован.
Для доступа к запрашиваемому ресурсу клиент должен представиться, послав запрос, включив при этом в заголовок сообщения поле Authorization.
402 Payment Required
Требуется оплата — зарезервировано для использования в будущем. Код предусмотрен для платных пользовательских сервисов, а не для хостинговых компаний.
403 Forbidden
Запрещено — запрос принят, но не будет обработан, так как у клиента недостаточно прав. Может возникнуть, когда пользователь хочет открыть системные файлы (robots, htaccess) или не прошёл авторизацию.
404 Not Found
Не найдено — запрашиваемая страница не обнаружена. Сервер принял запрос, но не нашёл ресурса по указанному URL (возможно, была ошибка в URL или страница была перемещена).
405 Method Not Allowed
Метод не разрешён — запрос был сделан методом, который не поддерживается данным ресурсом. Сервер должен предложить доступные методы решения в заголовке Allow.
406 Not Acceptable
Некорректный запрос — неподдерживаемый поисковиком формат запроса (поисковый робот не поддерживает кодировку или язык).
407 Proxy Authentication Required
Нужно пройти аутентификацию прокси — ответ аналогичен коду 401, только нужно аутентифицировать прокси‑сервер.
408 Request Timeout
Тайм‑аут запроса — запрос клиента занял слишком много времени. На каждом сайте существует свое время тайм‑аута — проверьте интернет‑соединение и просто обновите страницу.
409 Conflict
Конфликт (что‑то пошло не так) — запрос не может быть выполнен из‑за конфликтного обращения к ресурсу (несовместимость двух запросов).
410 Gone
Недоступно — ресурс раньше был размещён по указанному URL, но сейчас удалён и недоступен (серверу неизвестно месторасположение).
411 Length Required
Добавьте длины — сервер отклоняет отправляемый запрос, так как длина заголовка не определена, и он не находит значение Content‑Length.
Нужно исправить заголовки на сервере, и в следующий раз робот сможет проиндексировать страницу.
412 Precondition Failed
Предварительное условие не выполнено — стоит проверить правильность HTTP‑заголовков данного запроса.
413 Request Entity Too Large
Превышен размер запроса — перелимит максимального размера запроса, принимаемого сервером. Браузеры поддерживают запросы от 2 до 8 килобайт.
414 Request‑URI Too Long
Превышена длина запроса — сервер не может обработать запрос из‑за длинного URL. Такая ошибка может возникнуть, например, когда клиент пытается передать чересчур длинные параметры через метод GET, а не POST.
415 Unsupported Media Type
Формат не поддерживается — сервер не может принять запрос, так как данные подгружаются в некорректном формате, и сервер разрывает соединение.
416 Requested Range Not Satisfiable
Диапазон не поддерживается — ошибка возникает в случаях, когда в самом HTTP‑заголовке прописывается некорректный байтовый диапазон.
Корректного диапазона в необходимом документе может просто не быть, или есть опечатка в синтаксисе.
417 Expectation Failed
Ожидания не оправдались — прокси некорректно идентифицировал содержимое поля «Expect: 100‑Continue».
418 I’m a teapot
Первоапрельская шутка разработчиков в 1998 году. В расшифровке звучит как «я не приготовлю вам кофе, потому что я чайник». Не используется в работе.
422 Unprocessable Entity
Объект не обработан — сервер принял запрос, но в нём есть логическая ошибка. Стоит посмотреть в сторону семантики сайта.
423 Locked
Закрыто — ресурс заблокирован для выбранного HTTP‑метода. Можно перезагрузить роутер и компьютер. А также использовать только статистический IP.
424 Failed Dependency
Неуспешная зависимость — сервер не может обработать запрос, так как один из зависимых ресурсов заблокирован.
Выполнение запроса напрямую зависит от успешности выполнения другой операции, и если она не будет успешно завершена, то вся обработка запроса будет прервана.
425 Unordered Collection
Неверный порядок в коллекции — ошибка возникает, если клиент указал номер элемента в неупорядоченном списке или запросил несколько элементов в порядке, отличном от серверного.
426 Upgrade Required
Нужно обновление — в заголовке ответа нужно корректно сформировать поля Upgrade и Connection.
Этот ответ возникает, когда серверу требуется обновление до SSL‑протокола, но клиент не имеет его поддержки.
428 Precondition Required
Нужно предварительное условие — сервер просит внести в запрос информацию о предварительных условиях обработки данных, чтобы выдавать корректную информацию по итогу.
429 Too Many Requests
Слишком много запросов — отправлено слишком много запросов за короткое время. Это может указывать, например, на попытку DDoS‑атаки, для защиты от которой запросы блокируются.
431 Request Header Fields Too Large
Превышена длина заголовков — сервер может и не отвечать этим кодом, вместо этого он может просто сбросить соединение.
Исправляется это с помощью сокращения заголовков и повторной отправки запроса.
434 Requested Host Unavailable
Адрес запрашиваемой страницы недоступен.
444 No Response
Нет ответа — код отображается в лог‑файлах, чтобы подтвердить, что сервер никак не отреагировал на запрос пользователя и прервал соединение. Возвращается только сервером nginx.
Nginx — программное обеспечение с открытым исходным кодом. Его используют для создания веб‑серверов, а также в качестве почтового или обратного прокси‑сервера. Nginx решает проблему падения производительности из‑за роста трафика.
449 Retry With
Повторите попытку — ошибка говорит о необходимости скорректировать запрос и повторить его снова. Причиной становятся неверно указанные параметры (возможно, недостаточно данных).
450 Blocked by Windows Parental Controls
Заблокировано родительским контролем — говорит о том, что с компьютера попытались зайти на заблокированный ресурс. Избежать этой ошибки можно изменением параметров системы родительского контроля.
451 Unavailable For Legal Reasons
Недоступно по юридическим причинам — доступ к ресурсу закрыт, например, по требованию органов государственной власти или по требованию правообладателя в случае нарушения авторских прав.
456 Unrecoverable Error
Неустранимая ошибка — при обработке запроса возникла ошибка, которая вызывает некорректируемые сбои в таблицах баз данных.
499 Client Closed Request
Запрос закрыт клиентом — нестандартный код, используемый nginx в ситуациях, когда клиент закрыл соединение, пока nginx обрабатывал запрос.
5* класс кодов (ошибки на стороне сервера)
Эти коды указывают на ошибки со стороны серверов.
При использовании всех методов, кроме HEAD, сервер должен вернуть в теле сообщения гипертекстовое пояснение для пользователя. И его можно использовать в работе.
500 Internal Server Error
Внутренняя ошибка сервера — сервер столкнулся с неким условием, из‑за которого не может выполнить запрос.
Проверяйте, корректно ли указаны директивы в системных файлах (особенно htaccess) и нет ли ошибки прав доступа к файлам. Обратите внимание на ошибки внутри скриптов и их медленную работу.
501 Not Implemented
Не выполнено — код отдается, когда сам сервер не может идентифицировать метод запроса.
Сами вы эту ошибку не исправите. Устранить её может только сервер.
502 Bad Gateway
Ошибка шлюза — появляется, когда сервер, выступая в роли шлюза или прокси‑сервера, получил ответное сообщение от вышестоящего сервера о несоответствии протоколов.
Актуально исключительно для прокси и шлюзовых конфигураций.
503 Service Unavailable
Временно не доступен — сервер временно не имеет возможности обрабатывать запросы по техническим причинам (обслуживание, перегрузка и прочее).
В поле Retry‑After заголовка сервер укажет время, через которое можно повторить запрос.
504 Gateway Timeout
Тайм‑аут шлюза — сервер, выступая в роли шлюза или прокси‑сервера, не получил ответа от вышестоящего сервера в нужное время.
Исправить эту ошибку самостоятельно не получится. Здесь дело в прокси, часто — в веб‑сервере.
Первым делом просто обновите веб‑страницу. Если это не помогло, нужно почистить DNS‑кэш. Для этого нажмите горячие клавиши Windows+R и введите команду cmd (Control+пробел). В открывшемся окне укажите команду ipconfig / flushdns и подтвердите её нажатием Enter.
505 HTTP Version Not Supported
Сервер не поддерживает версию протокола — отсутствует поддержка текущей версии HTTP‑протокола. Нужно обеспечить клиента и сервер одинаковой версией.
506 Variant Also Negotiates
Неуспешные переговоры — с такой ошибкой сталкиваются, если сервер изначально настроен неправильно. По причине ошибочной конфигурации выбранный вариант указывает сам на себя, из‑за чего процесс и прерывается.
507 Insufficient Storage
Не хватает места для хранения — серверу недостаточно места в хранилище. Нужно либо расчистить место, либо увеличить доступное пространство.
508 Loop Detected
Обнаружен цикл — ошибка означает провал запроса и выполняемой операции в целом.
509 Bandwidth Limit Exceeded
Превышена пропускная способность — используется при чрезмерном потреблении трафика. Владельцу площадки следует обратиться к своему хостинг‑провайдеру.
510 Not Extended
Не продлён — ошибка говорит, что на сервере отсутствует нужное для клиента расширение. Чтобы исправить проблему, надо убрать часть неподдерживаемого расширения из запроса или добавить поддержку на сервер.
511 Network Authentication Required
Требуется аутентификация — ошибка генерируется сервером‑посредником, к примеру, сервером интернет‑провайдера, если нужно ввести пароль для получения доступа к сети через платную точку доступа.
The php part of this article is based on my Advanced WordPress 404.php article from 2008. Many of the following ideas came out of the research performed to enumerate every single Apache ErrorDocument, including learning how to view the defaults and many cool tricks for htaccess.
The PHP HTTP ErrorDocument Handler
Just save this as /err.php
or whatever. The best is to put it in a cgi-bin script-alias directory under your DOCUMENT_ROOT like /cgi-bin/e.php
but most people don’t know how. That way you can setup some advanced stuff in a /cgi-bin/.htaccess
file. If you are interested in locking it down, I recommend reading Securing php.ini and php-cgi with .htaccess.
Advantages and Reasons for Using
Fast, HTTP Protocol Compliance, protection. If you are reading this article, you already know and just want to check out the code!
<?php ob_start(); @set_time_limit(5); @ini_set('memory_limit', '64M'); @ini_set('display_errors', 'Off'); error_reporting(0); function print_error_page() { $status_reason = array( 100 => 'Continue', 101 => 'Switching Protocols', 102 => 'Processing', 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', 207 => 'Multi-Status', 226 => 'IM Used', 300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', 306 => 'Reserved', 307 => 'Temporary Redirect', 400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Timeout', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Request Entity Too Large', 414 => 'Request-URI Too Long', 415 => 'Unsupported Media Type', 416 => 'Requested Range Not Satisfiable', 417 => 'Expectation Failed', 422 => 'Unprocessable Entity', 423 => 'Locked', 424 => 'Failed Dependency', 426 => 'Upgrade Required', 500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Timeout', 505 => 'HTTP Version Not Supported', 506 => 'Variant Also Negotiates', 507 => 'Insufficient Storage', 510 => 'Not Extended' ); $status_msg = array( 400 => "Your browser sent a request that this server could not understand.", 401 => "This server could not verify that you are authorized to access the document requested.", 402 => 'The server encountered an internal error or misconfiguration and was unable to complete your request.', 403 => "You don't have permission to access %U% on this server.", 404 => "We couldn't find <abbr title='%U%'>that uri</abbr> on our server, though it's most certainly not your fault.", 405 => "The requested method is not allowed for the URL %U%.", 406 => "An appropriate representation of the requested resource %U% could not be found on this server.", 407 => "An appropriate representation of the requested resource %U% could not be found on this server.", 408 => "Server timeout waiting for the HTTP request from the client.", 409 => 'The server encountered an internal error or misconfiguration and was unable to complete your request.', 410 => "The requested resource %U% is no longer available on this server and there is no forwarding address. Please remove all references to this resource.", 411 => "A request of the requested method GET requires a valid Content-length.", 412 => "The precondition on the request for the URL %U% evaluated to false.", 413 => "The requested resource %U% does not allow request data with GET requests, or the amount of data provided in the request exceeds the capacity limit.", 414 => "The requested URL's length exceeds the capacity limit for this server.", 415 => "The supplied request data is not in a format acceptable for processing by this resource.", 416 => 'Requested Range Not Satisfiable', 417 => "The expectation given in the Expect request-header field could not be met by this server. The client sent <code>Expect:</code>", 422 => "The server understands the media type of the request entity, but was unable to process the contained instructions.", 423 => "The requested resource is currently locked. The lock must be released or proper identification given before the method can be applied.", 424 => "The method could not be performed on the resource because the requested action depended on another action and that other action failed.", 425 => 'The server encountered an internal error or misconfiguration and was unable to complete your request.', 426 => "The requested resource can only be retrieved using SSL. Either upgrade your client, or try requesting the page using https://", 500 => 'The server encountered an internal error or misconfiguration and was unable to complete your request.', 501 => "This type of request method to %U% is not supported.", 502 => "The proxy server received an invalid response from an upstream server.", 503 => "The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.", 504 => "The proxy server did not receive a timely response from the upstream server.", 505 => 'The server encountered an internal error or misconfiguration and was unable to complete your request.', 506 => "A variant for the requested resource <code>%U%</code> is itself a negotiable resource. This indicates a configuration error.", 507 => "The method could not be performed. There is insufficient free space left in your storage allocation.", 510 => "A mandatory extension policy in the request is not accepted by the server for this resource." ); // Get the Status Code if (isset($_SERVER['REDIRECT_STATUS']) && ($_SERVER['REDIRECT_STATUS'] != 200))$sc = $_SERVER['REDIRECT_STATUS']; elseif (isset($_SERVER['REDIRECT_REDIRECT_STATUS']) && ($_SERVER['REDIRECT_REDIRECT_STATUS'] != 200)) $sc = $_SERVER['REDIRECT_REDIRECT_STATUS']; $sc = (!isset($_GET['error']) ? 404 : $_GET['error']); $sc=abs(intval($sc)); // Redirect to server home if called directly or if status is under 400 if( ( (isset($_SERVER['REDIRECT_STATUS']) && $_SERVER['REDIRECT_STATUS'] == 200) && (floor($sc / 100) == 3) ) || (!isset($_GET['error']) && $_SERVER['REDIRECT_STATUS'] == 200) ) { @header("Location: http://{$_SERVER['SERVER_NAME']}",1,302); die(); } // Check range of code or issue 500 if (($sc < 200) || ($sc > 599)) $sc = 500; // Check for valid protocols or else issue 505 if (!in_array($_SERVER["SERVER_PROTOCOL"], array('HTTP/1.0','HTTP/1.1','HTTP/0.9'))) $sc = 505; // Get the status reason $reason = (isset($status_reason[$sc]) ? $status_reason[$sc] : ''); // Get the status message $msg = (isset($status_msg[$sc]) ? str_replace('%U%', htmlspecialchars(strip_tags(stripslashes($_SERVER['REQUEST_URI']))), $status_msg[$sc]) : 'Error'); // issue optimized headers (optimized for your server) @header("{$_SERVER['SERVER_PROTOCOL']} {$sc} {$reason}", 1, $sc); if( @php_sapi_name() != 'cgi-fcgi' ) @header("Status: {$sc} {$reason}", 1, $sc); // A very small footprint for certain types of 4xx class errors and all 5xx class errors if (in_array($sc, array(400, 403, 405)) || (floor($sc / 100) == 5)) { @header("Connection: close", 1); if ($sc == 405) @header('Allow: GET,HEAD,POST,OPTIONS', 1, 405); } echo "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">n<html>"; echo "<head>n<title>{$sc} {$reason}</title>n<b>{$reason}</b>n<p>{$msg}<br />n</p>n"; } function askapache_global_debug() { # http://www.php.net/manual/en/function.array-walk.php#100681 global $_GET,$_POST,$_ENV,$_SERVER; $g=array('_ENV','_SERVER','_GET','_POST'); array_walk_recursive($g, create_function('$n','global $$n;if( !!$$n&&ob_start()&&(print "[ $"."$n ]n")&&array_walk($$n, create_function('$v,$k', 'echo "[$k] => $vn";'))) echo "<"."p"."r"."e>".htmlspecialchars(ob_get_clean())."<"."/"."pr"."e>";') ); } print_error_page(); //if($_SERVER['REMOTE_ADDR']=='youripaddress')askapache_global_debug(); echo "</body>n</html>"; echo ob_get_clean(); exit; ?>
Note: If you are installing this on a non-linux/non-apache machine/server, you will need to read your products documentation for custom error documents. It will work on any machine that can run php.
Htaccess ErrorDocument Tips
The thing is, how do you setup your website to use this php file to be able to handle all those HTTP Status Codes gracefully? You just need to configure your server to use that php file for any Status Codes you want. If you are building an ErrorDocument handling system for a server-wide, multi-site, setup, you will want to instead use the method I use. Instead of using a separate language like PHP, Python, Ruby, Perl, etc, to handle errors, I rely on the very safe and fast SSI method. I detailed the advanced ErrorDocument SSI (.htaccess
or httpd.conf)..
If you instead like most of us, you will be setting this up for 1 site, or 1 DOCUMENT_ROOT serving virtual hosts. For that the best method is to modify your .htaccess file.
Using Redirect in .htaccess to trigger Errors
This is one of my all time favorite discoveries from my apache studies. It’s documented elsewhere on this site, but if you want to test it out, just request www.askapache.com/show-error-402
. Of course the error handling that I have in place is quite nice.
Redirect 400 /show-error-400 Redirect 401 /show-error-401 Redirect 402 /show-error-402 Redirect 403 /show-error-403 Redirect 405 /show-error-405 Redirect 406 /show-error-406 Redirect 407 /show-error-407 Redirect 408 /show-error-408 Redirect 409 /show-error-409 Redirect 410 /show-error-410 Redirect 411 /show-error-411 Redirect 412 /show-error-412 Redirect 413 /show-error-413 Redirect 414 /show-error-414 Redirect 415 /show-error-415 Redirect 416 /show-error-416 Redirect 417 /show-error-417 Redirect 418 /show-error-418 Redirect 419 /show-error-419 Redirect 420 /show-error-420 Redirect 421 /show-error-421 Redirect 422 /show-error-422 Redirect 423 /show-error-423 Redirect 424 /show-error-424 Redirect 425 /show-error-425 Redirect 426 /show-error-426 Redirect 500 /show-error-500 Redirect 501 /show-error-501 Redirect 502 /show-error-502 Redirect 503 /show-error-503 Redirect 504 /show-error-504 Redirect 505 /show-error-505 Redirect 506 /show-error-506 Redirect 507 /show-error-507 Redirect 508 /show-error-508 Redirect 509 /show-error-509 Redirect 510 /show-error-510
Powerful Mod_Rewrite Trick
Here’s how to combine the power of mod_rewrites ability to parse requests and environment variables with the above Redirect trick to trigger a specific ErrorDocument based on the query_string parameter error. This trick is only on AskApache.com, very powerful trick if you need to force ErrorDocuments.
RewriteCond %{QUERY_STRING} error=([4|5][0-9][0-9]) [NC] RewriteCond %{QUERY_STRING} !404 RewriteRule . /show-error-%1 [L]
ErrorDocument Example for .htaccess
So if you save the php file as err.php
in your DOCUMENT_ROOT, these are the htaccess commands that will enable its use.
The addition of the ?error=num
should be unneccessary on a good linux machine, it’s a way for lesser OS’s and webhosts to still be able to use errordocuments. Basically Apache handles ErrorDocuments by setting special DEBUGGING variables (Start with REDIRECT_
) so it’s very easy to determine the STATUS CODE by just viewing $_SERVER['REDIRECT_STATUS']
. If a recursive type of redirect is going on, you may see $_SERVER['REDIRECT_REDIRECT_STATUS']
. Dumb (consistently) OS’s like a Windows server almost always have problems with things like that, because they don’t give a hoot about POSIX or standards, why should they when no one can view their code anyway. Here are some more details on the REDIRECT_STATUS
and other ways to use these variables.
If you want to learn how to enumerate and view the different variables that are in your Apache environment, I think I have the best tutorial on the planet for how to do this with PHP and mod_rewrite with mod_headers. That article is the basis for anyone who is hired to do mod_rewrites on a new server without root access. I would say that one article will inform you more about mod_rewrite then any other article on this site.
### # ErrorDocument: In the event of a problem or error, what the server will return to the client. URLs # can begin with a / for local web-paths (relative to DocumentRoot), or be a full URL which the client # can resolve. Alternatively, a message can be displayed. If a malformed request is detected, normal # request processing will be immediately halted and the internal error message returned. # # Prior to version 2.0, messages were indicated by prefixing them with a # single unmatched double quote character. # # The special value default can be used to specify Apache's simple hardcoded message and # will restore Apache's simple hardcoded message. # ErrorDocument 400 /err.php?error=400 ErrorDocument 401 /err.php?error=401 ErrorDocument 402 /err.php?error=402 ErrorDocument 403 /err.php?error=403 ErrorDocument 404 /err.php?error=404 ErrorDocument 405 /err.php?error=405 ErrorDocument 406 /err.php?error=406 ErrorDocument 407 /err.php?error=407 ErrorDocument 408 /err.php?error=408 ErrorDocument 409 /err.php?error=409 ErrorDocument 410 /err.php?error=410 ErrorDocument 411 /err.php?error=411 ErrorDocument 412 /err.php?error=412 ErrorDocument 413 /err.php?error=413 ErrorDocument 414 /err.php?error=414 ErrorDocument 415 /err.php?error=415 ErrorDocument 416 /err.php?error=416 ErrorDocument 417 /err.php?error=417 ErrorDocument 422 /err.php?error=422 ErrorDocument 423 /err.php?error=423 ErrorDocument 424 /err.php?error=424 ErrorDocument 426 /err.php?error=426 ErrorDocument 500 /err.php?error=500 ErrorDocument 501 /err.php?error=501 ErrorDocument 502 /err.php?error=502 ErrorDocument 503 /err.php?error=503 ErrorDocument 504 /err.php?error=504 ErrorDocument 505 /err.php?error=505 ErrorDocument 506 /err.php?error=506 ErrorDocument 507 /err.php?error=507 ErrorDocument 510 /err.php?error=510
You have encountered an HTTP error code and wonder what it means?
HTTP error codes are not easy to understand at first sight. Seeing your WordPress down without knowing why and what to do is a particularly unpleasant feeling.
Hopefully, WordPress is such an amazing CMS that the most common HTTP error codes can be fixed easily.
In this guide, I’ll explain to you what are HTTP Error Codes, and what they mean for your WordPress website.
Table of contents
- HTTP Error Code: Everything You Need to Know
- HTTP Error Codes And What They Mean
HTTP Error Code: Everything You Need to Know
The Internet is based on protocols of communication between web servers and computers.
When someone attempts to reach your website, he sends a request and the server ALWAYS returns corresponding status codes.
There are 5 categories of HTTP response status codes. They are made of three numbers. The first number defines their category:
1xx status codes provide you with information about your request processing.
2xx status codes mean that your request is successful.
3xx status codes are redirection status codes.
4xx status codes refer to client errors.
5xx status codes refer to serveur errors.
It is not necessary to know the list of all HTTP error status codes. This is useful only if you want to understand how the client/server relationship actually works.
I wrote this guide to assist those who aren’t server managers or web developers. So, it’s 100% beginner-friendly.
HTTP Error Codes And What They Mean
1xx Status codes
There are informational response codes. They mean that the server received the request and is processing it.
- Status code 100 #Continue: The request has been received by the server. A final response will be provided after the request has been fully received.
- Status code 101 #Switching Protocols: The server will process the client’s request.
- Status code 102 #Processing: The serveur is processing the request, but no response is available yet.
2xx Status codes
They indicate that everything is fine! The server accepted the client’s request and is dealing with it.
- Status code 200 #OK: The request has succeeded. Easy.
- Status code 201 #Created: The request has been accomplished. Additional resources are being created by the server.
- Status code 202 #Accepted: The request has been accepted for processing and the processing is still going on. The 202 response purpose is to allow a server to accept a request for some other process without requiring that the user agent’s connection to the server persist until the process is completed.
- Status code 203 #Non-authoritative Information: The returned information is not exactly the same as is available from the origin server. Status code 203 might happen if you use CDN or a proxy.
- Status code 204 #No Content: The request has been processed and that there is no more content to load.
- Status code 205 #Reset Content: Tell the user to reset the document which caused the request to be sent.
- Status code 206 #Partial Content: The server is successfully fulfilling a range request for the client but will only transfer part of the resources.
- Status code 207 #Multi-Status: Provide information about multiple resources, for situations where multiple status codes might be needed.
- Status code 208 #Already Reported: Used to avoid repeatedly enumerating the internal members of multiple bindings to the same collection. Prevent your server from entering into an endless loop.
3xx Status codes
3xx HTTP status codes are redirection codes. They inform us that further action is needed. SEO-friendly redirections work with 301 HTTP status codes for example.
- Status code 300 #Multiple Choices: The request has more than one possible response. The user has to choose one of them by redirecting its request to the best identifier(s).
- Status code 301 #Moved permanently: The URL of the requested resource has been changed permanently. The new URL is given in the response. 301 Redirection is SO important for SEO. Read this guide from Theme island if you want to know more about it.
- Status code 302 #Found: This means that the URI* of requested resource has been moved temporarily.
- Status code 303 #See other: The server sent this response to direct the client to get the requested resource at another URI*.
What does URI means?
URI stands for Uniform Resource Identifier. URI refers to things such as ‘https://’ or ‘mailto:’. Check out this article if you want to know more about it. If you don’t, just consider URI as URL.
- Status code 304 #Not Modified: The request has been received and would have resulted in a 200 OK response, but the condition was evaluated false.
- Status code 305 #Use Proxy: Indicate that a requested response must be accessed by a proxy. It’s highly likely that you will never encounter a 305 error nowadays.
- Status code 307 #Temporary Redirect: The server sends this response to redirect the client to the requested resource at another URI with the same method.
- Status code 308 #Permanent Redirect: The resource is now permanently located at another URI. 308 status codes are similar to the 301 status code.
4xx Status codes
4xx Status codes indicate a problem from the client (or the browser) side. In other words, 400 errors are not coming from the server.
- Status code 400 #Bad Request: The server can’t process the request due to invalid syntax.
- Status code 401 #Unauthorized: The request was not authorized because it lacked valid credentials.
- Status code 403 #Forbidden: 403 errors are similar to 401 errors. The difference is that the client is recognized by the server, but the access is denied.
- Status code 404 #Not Found: The famous 404 error! The server couldn’t find a representation of the target resource. 404 error status code mostly happens when you misspell a URI.
- Status code 406 #Not acceptable: They happen when the web server doesn’t find any content that meets the criteria given by the user.
- Status code 407 #Proxy Authentification Required: not much to say. The client needs to authenticate itself to use the proxy. It’s very much alike 401 status code.
- Status code 408 #Time out: The server didn’t receive a complete response within the time that it was prepared to wait. Nowadays, Internet Explorer, Chrome, and Firefox use HTTP pre-connection mechanisms to improve user experience and loading-time. It results in a higher number of 408 status code.
- Status code 409 #Conflict: The request could not be completed because of a conflict with the state of the target resource.
- Status code 410 #Gone: The resource is no longer available and this condition is likely to be permanent. 410 Status code is similar to the 404 status code. 404 status code is returned when the server doesn’t know if the condition is likely to be permanent.
- Status code 411 #Length Required: The request is rejected because the Content-Length is not defined and the server requires it.
- Status code 412 #Precondition Failed: The client has indicated preconditions and the server doesn’t meet them.
- Status code 414 #URI Too Long: All is in the title. The URI requested by the client is too long and the server refuses to process it.
- Status code 415 #Unsupported Media Type: The media format is not supported by the server. Thus the server is refusing to process the request. 415 are often the consequence of an encoding problem.
- Status code 421 #Misdirected Request: The request is sent to a server that isn’t able to produce a response. It occurs when the server is not correctly configured.
- Status code 423 #Locked: The resource that you want to access is locked.
- Status code 424 #Failed Dependency: The action requested depended on another action that has failed.
- Status code 429 #Too Many Requests: Too many requests were sent over a short period of time.
5xx Status codes
This category of status Code refers to internal server errors. They occur when a server is not able to accomplish an apparently valid request. They sometimes can be caused by plugins.
- Status code 500 #Internal Server Error: The server encountered a situation and doesn’t know how to deal with it.
- Status code 501 #Not implemented: The request method is not supported by the server and cannot be processed.
- Status code 502 #Bad Gateway: The server, while working as a gateway to get a response got an invalid answer and can’t process the request.
- Status code 503 #Service Unavailable Error: this indicates that the server is temporarily unable to process the request. It happens when the server is overload because of a traffic spike or down for maintenance. If you encounter too many 503 errors, you should really consider getting another web host.
- Status code 504 #Gateway Timeout: The server, while acting as a gateway or proxy, did not receive a response in time.
- Status code 505 #HTTP Version is not supported: It means that the HyperText Transfer Protocol version used in the request is not supported by the server.
- Status code 506 #Variant Also Negotiates: The server configuration doesn’t allow the operation to go further.
- Status code 507 #Insufficient Storage: The action was not processed because the server wasn’t able to store the representation needed to perform the request.
- Status code 508 #Loop Detected: The server encountered an infinite loop while processing a request. Always make sure that your loop is closed.
- Status code 511 #Network Authentication Required: This indicates that the client has to authenticate to correctly access the network.
If you are interested by HTTP status codes it’s probably because you faced a downtime or an error 500. If so, you should start monitoring your WordPress uptime and make backups of your site.
Agency or freelancer?
Foster your WordPress Maintenance Business
Get started