Читайте о самых распространённых онлайн ошибках. Какие причины их возникновения и как исправить.
Введение
В пользование сетью «Интернет» вовлечено подавляющее большинство всех обладателей компьютерной техники, независимо от вида используемых образцов устройств. И несмотря на многие преимущества задействования «Интернета» как для обработки и хранения данных, так и для их распространения и обмена, в некоторых случаях существует вероятность столкнуться с отказом в доступе к тем или иным ресурсам сети по причине возникновения разнообразных видов ошибок. И несмотря на утверждение, что полностью избежать ошибок в целом при взаимодействии с данными в сети «Интернет» практически невозможно, пользователи могут ознакомиться со списком основных и часто встречающихся видов ошибок, понять их значение и изучить некоторые основные шаги для их устранения. И далее в нашей статье мы подробнее остановимся на освещении данных вопросов.
Распространенные типы сетевых ошибок при доступе к ресурсам сети «Интернет»
Большинство известных видов ошибок в сети «Интернет» сопровождаются кодом состояния «HTTP». Обычно пользователи могут наблюдать сообщение об ошибке, содержащее помимо объясняющего текста еще числовое значение формата «4XX» или «5XX» (за числами четыре или пять следуют две дополнительные цифры, например, код ошибки имеет вид «404»).
И вариант формата «4XX», и «5XX» являются ошибками, но они имеют существенную разницу. Формат «4XX» – это ошибки, возникающие вследствие деятельности клиента, а «5XX» – результат ошибки сервера. Если при обращении к сетевому ресурсу всплывает сообщение с ошибкой в виде «4XX», то, скорее всего, пользователи могут ее самостоятельно исправить.
Ошибки вида «5XX» – это ошибки сервера, которые означают, что пользователи не оказывали влияния на результат, приведший к возникновению ошибки, и источником сбоя является неработающий сервер, к которому пользователи пытаются получить доступ. Независимо от вида ошибки, связанна ли она с деятельностью пользователей или работоспособностью удаленного сетевого сервера, пользователи могут предпринять несколько шагов, которые могут помочь решить проблему и устранить существующую неисправность.
В последующих разделах мы постарались перечислить наиболее распространенные сетевые ошибки, с которыми могут сталкиваться пользователи при взаимодействии с ресурсами сети «Интернет», а также упомянули пару полезных решений для исправления каждой ошибки. Пользователи не могут решить все онлайн-ошибки, так как некоторые из них происходят по вине серверов, и с ними мало что можно поделать для успешного восстановления работоспособности. Тем не менее, в ряде случаев, стоит попробовать устранить возникшую ошибку.
«400 Bad Request» («ошибка неверного запроса»)
Каждый раз, когда пользователи пытаются открыть веб-сайт путем набора «URL-адреса» в адресной строке сетевого обозревателя или нажимают на соответствующую ссылку сайта, полученную посредством различных приложений, веб-браузер инициирует запрос и отправляет его на удаленный сервер веб-сайта, к которому пользователи организовывают соответствующее обращение и стараются получить доступ. Ошибка «400» возникает, когда сервер не может полноценно понять и корректно обработать запрос. Такой вид непредвиденной ошибки может произойти, если указанный запрос искажен, неверен, испорчен или поврежден, но, чаще всего, ошибка возникает по довольно простой причине, например, пользователь использовал «URL-адрес» веб-сайта, которого не существует.
В большинстве случаев пользователи самостоятельно могут решить возникшую проблему и далее представлено несколько простых способов, которые можно задействовать для исправления указанной ошибки.
Обновите страницу. Нажатие клавиши «F5» обновляет страницу в большинстве браузеров. Если проблема связана с поврежденным запросом, то его повторная отправка иногда может помочь. Процесс не займет много времени и его всегда стоит попробовать. Ошибка «400» часто является временной, и простое обновление способно нередко ее исправить.
Перепроверьте «URL- адрес». Иногда неверный «URL-адрес», указанный пользователем в адресной строке обозревателя, может вызвать ошибку «400 Bad Request» вместо ошибки «404 Not Found» (о которой мы также поговорим в одном из разделов). Просмотрите и исправьте адрес при необходимости.
Произведите поиск страницы на сайте. Возможно, ошибка в названии веб-страницы искомого сайта была допущена самим пользователем или непосредственно неверный адрес был указан в ссылке, с которой осуществлен переход на страницу. Но если страница на сайте существует, то можно в строке поиска веб-сайта указать части полного адреса страницы, чтобы получить к ней доступ через поисковую панель.
Очистите файлы «cookie» и содержимое кэша используемого веб-браузера. Иногда, при обращении к веб-сайту, от сервера возвращается ответ с ошибкой «400», потому что происходит попытка прочесть «cookie» на пользовательском компьютере, которые повреждены или сильно устарели, или, как вариант, браузер кэшировал поврежденную версию страницы, которую пользователь пытается открыть. Своевременная очистка данных кэша и файлов «cookie» может помочь исправить неприятную ошибку.
«403 Forbidden» (ошибка «запрещено»)
Ошибка «403» возникает при попытке доступа к странице или сетевому ресурсу, к которым у пользователя нет соответствующего разрешения. В большинстве случаев, устранить проблему запрета доступа силами конкретного пользователя не получиться. Обычно подобное сообщение об ошибке возникает по одной из двух причин. В первом случае, владельцы веб-сервера корректно настроили права доступа, а пользователь действительно не обладает соответствующими допусками для перехода на удаленный ресурс. В другом случае, причина заключается в том, что собственники веб-сервера неправильно настроили разрешения (случайно или преднамеренно), и пользователь получает отказ в доступе, когда он действительно необходим, даже при наличии необходимых привилегий.
Несмотря на тот факт, что ошибка «403», ограничивающая доступ к удаленному ресурсу, регулируется и управляется настройками сетевого веб-сервера, пользователи могут опробовать несколько шагов для ее исправления.
Обновите страницу. Нажатие клавиши «F5» во многих популярных обозревателях позволяет мгновенно обновить страницу.
Повторно проверьте «URL- адрес». Иногда неверно заданный в строке обозревателя «URL-адрес» может вызвать появление ошибки запрета доступа «403 Forbidden». Убедитесь, что «URL-адрес» действительно указывает на страницу, а не на каталог. Большинство веб-сайтов ограничивают доступ к своим внутренним папкам из соображений безопасности, и опечатка в адресе может быть причиной отображения ошибки «403».
Проверьте собственные разрешения. Некоторые веб-сайты ограничивают доступ к своему содержимому, разрешая удаленное обращение только зарегистрированным участникам или пользователям, обладающим определенным уровнем привилегированного доступа. Если вход в систему не был осуществлен или у пользователей нет соответствующих разрешений, то, скорее всего, система выдаст ошибку «403 Forbidden».
«404 Not Found» (ошибка «не найдено»)
Ошибка «404 Not Found» – самая распространенная ошибка в сети, которая возникает при попытке посетить несуществующую веб-страницу. В основном, данная ошибка подразумевает, что серверу не удалось найти, искомый пользователями, удаленный ресурс. В большинстве случаев, в обозревателе появится сообщение об ошибке «404» после неудачной попытки ввести «URL» искомой страницы или перейти по соответствующей ссылке, которая на сервере абсолютно не представлена. И если пользователи сталкиваются с ошибкой «404», то можно попробовать ее исправить несколькими способами.
Обновите проблемную страницу. Нажатие клавиши «F5» инициирует обновление страницы в подавляющем большинстве современных веб-браузеров. Не всегда такое решение сможет устранить ошибку «404». Но иногда, на веб-серверах может происходить случайный сбой и, как следствие, отображение страницы, которая действительно существует, будет временно приостановлено. Поэтому необходимо обязательно опробовать данный способ и перегрузить страницу, в особенности, если на обновление будет потрачено всего несколько секунд, но существует шанс добиться корректной загрузки.
Убедитесь в правильности «URL- адреса». Неверно введенные «URL-адреса» (независимо от того, была ли допущена ошибка в процессе набора или веб-страница содержит неверную ссылку) являются наиболее частой причиной отображения в обозревателе сообщения об ошибке «404 Not Found».
Осуществите поиск требуемой страницы на сайте. Возможно пользователи получили неверный «URL-адрес» или на веб-сайте, с которого был осуществлен переход, указана ошибочная ссылка, но страница на искомом ресурсе существует. Попробуйте найти, посредством использования возможностей поисковой панели сайта, «URL» требуемой страницы по названию.
«500 Internal Server Error» («внутренняя ошибка сервера»)
Если пользователь пытается посетить веб-сайт и на странице веб-браузера всплывает сообщение «500 Internal Server Error», это обычно означает, что на сетевом ресурсе, к которому непосредственно происходит обращение, существует определенная неполадка и сервер не может предоставить более конкретную информацию. Проблема относится только к сайту и никак не связана с настройками и функционированием пользовательского веб-браузера, персонального компьютера или задействованным способом подключения к сети «Интернет».
Как и в случае с другими проблемами, которые мы обсуждали ранее, пользователь можете попытаться решить возникшую неисправность лишь несколькими способами.
Обновите страницу обращения. Большинство распространенных веб-браузеров используют стандартный набор клавиш для быстрого исполнения списка команд, и нажатие на клавишу «F5» позволяет сразу обновить активную страницу. К сожалению, во многих случаях, данный способ не работает по причине неисправности на удаленном ресурсе.
Важное замечание. Не пытайтесь перезагрузить страницу, если перед получением данного сообщения об ошибке «500» была предпринята попытка осуществить онлайн-платеж или любой вид денежного перевода. Принудительное обновление страницы может привести к отправке одного и того же платежа дважды. Большинство веб-сайтов обладают встроенным инструментом защиты и должны препятствовать повторному переводу денежных средств, но проблема может возникнуть, если веб-сайт испытывает проблему во время выполнения платежа.
Обратитесь к ресурсу позже. Довольно часто проблемы с сервером носят временный характер. Попробуйте посетить страницу после небольшого перерыва.
Свяжитесь с администрацией сайта. Если проблема не устранена, попробуйте, при возможности, связаться со службой поддержки веб-сайта, и сообщить им о возникших неполадках.
«502 Bad Gateway» («ошибка шлюза»)
Ошибка «502 Bad Gateway» означает, что посещаемый вами сервер пытался получить некоторую информацию с другого сервера, но получил неверный ответ. Причиной могут послужить несколько факторов. Возможно, сервер перегружен или возникли неполадки с сетью между двумя серверами, что носит временный характер, и может быть быстро исправлено. Также, как вариант, могут оказывать влияние на отсутствие доступа неправильные настройки брандмауэра или даже ошибка кодирования. В довольно редких случаях ошибка может возникать из-за проблемы на пользовательском компьютере или сетевом оборудовании. Поэтому стоит попробовать применить несколько шагов для возможного исправления ситуации.
Обновите страницу после отображения сообщения об ошибке. Как и в предыдущих случаях, воспользуйтесь быстрым способом перезагрузки страницы посредством нажатия в веб-браузере клавиши «F5».
Проверьте, доступен ли сайт для других пользователей. Посетите сайт, такой как «IsItDownRightNow» или «DownforEveryoneorJustMe», который отслеживает состояние веб-сайтов и проверяет их работоспособность для уточнения данных, испытывают ли другие пользователи трудности с доступом к конкретному ресурсу, или проблемы возникают только локально на пользовательском устройстве.
Попробуйте получить доступ к веб-сайту позже. Возможно, проблема с сервером носит временный характер, и спустя некоторое время полноценная функциональность ресурса будет восстановлена. Поэтому попробуйте обратиться к сайту позже через некоторое время.
Выполните очистку «cookie» и содержимого кэша пользовательского браузера. Иногда (хотя и редко) серверы возвращают ошибки формата «502», потому что веб-браузер, который регулярно использует пользователь для выхода в сеть «Интернет», кэшировал устаревшие или поврежденные файлы. Процедура очистки содержимого кэша и файлов «cookie» может помочь исправить ошибку.
«503 Service Unavailable» (ошибка «сервис недоступен»)
Ошибка «503 Service Unavailable» означает, что сервер временно не может обработать запрос пользователя. Ошибка может возникать по ряду причин, но наиболее распространенная, из доступного списка вариантов, состоит в том, что сервер перегружен внешними запросами. Отображение данной ошибки на странице веб-браузера после обращения пользователя фактически означает, что с сервером все в порядке, его работоспособность не нарушена и он может обработать ваш запрос, но чрезмерная нагрузка не позволяет этого сделать в данный момент. Подобно всем ошибкам формата «5XX», ошибка «503» происходит на сервере, и, следовательно, с пользовательским компьютером все в порядке, и он не влияет на ее наличие.
Но несмотря на удаленную форму неисправности, можно попробовать применить несколько способов для устранения ошибки.
Обновите страницу с сообщением об ошибке. Нажмите на клавишу «F5» и принудительно обновите проблемную страницу (стандартный способ перезагрузки поддерживается многими основными веб-браузерами).
Проверьте работоспособность ресурса. Перейдите в веб-браузере на сайт проверки состояния удаленных ресурсов, например, «IsItDownRightNow» или «DownforEveryoneorJustMe», и оцените его доступность для других пользователей.
Попробуйте выполнить переход на сайт позже. Проблемы с сервером часто бывают временными. В частности, при отображении сообщения с ошибкой «503», велика вероятность, что сервер перегружен запросами и не может обработать все входящие обращения, который он получает. Попробуйте посетить страницу еще раз позже через некоторое время.
Полную версию статьи со всеми дополнительными видео уроками смотрите в источнике. Если у вас остались вопросы, задавайте их в комментариях.
Данный материал является частной записью члена сообщества Club.CNews.
Редакция CNews не несет ответственности за его содержание.
Умные люди придумали коды, по которым можно определить, что произошло с 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, если на стороне сервера или клиента что-то пошло не так. Наткнуться на большую их часть довольно тяжело. Особенно, если вы раньше только серфили в интернете, а не занимались разработкой сайтов. А тем, кто входит в эту стезю, полезно знать основные ошибки, так как, скорее всего, придется не раз их исправлять.
Уровень сложности
Простой
Время на прочтение
9 мин
Количество просмотров 14K
Привет! Меня зовут Ивасюта Алексей, я техлид команды Bricks в Авито в кластере Architecture. Я решил написать цикл статей об истории и развитии HTTP, рассмотреть каждую из его версий и проблемы, которые они решали и решают сейчас.
Весь современный веб построен на протоколе HTTP. Каждый сайт использует его для общения клиента с сервером. Между собой сервера тоже часто общаются по этому протоколу. На данный момент существует четыре его версии и все они до сих пор используются. Поэтому статьи будут полезны инженерам любых уровней и специализаций, и помогут систематизировать знания об этой важной технологии.
Что такое HTTP
HTTP — это гипертекстовый протокол передачи данных прикладного уровня в сетевой модели OSI. Его представил миру Тим Бернерс-Ли в марте 1991 года. Главная особенность HTTP — представление всех данных в нём в виде простого текста. Через HTTP разные узлы в сети общаются между собой. Модель клиент-серверного взаимодействия классическая: клиент посылает запрос серверу, сервер обрабатывает запрос и возвращает ответ клиенту. Полученный ответ клиент обрабатывает и решает: прекратить взаимодействие или продолжить отправлять запросы.
Ещё одна особенность: протокол не сохраняет состояние между запросами. Каждый запрос от клиента для сервера — отдельная транзакция. Когда поступают два соседних запроса, сервер не понимает, от одного и того же клиента они поступили, или от разных. Такой подход значительно упрощает построение архитектуры веб-серверов.
Как правило, передача данных по HTTP осуществляется через открытое TCP/IP-соединение1. Серверное программное обеспечение по умолчанию обычно использует TCP-порт 80 для работы веб-сервера, а порт 443 — для HTTPS-соединений.
HTTPS (HTTP Secure) — это надстройка над протоколом HTTP, которая поддерживает шифрование посредством криптографических протоколов SSL и TLS. Они шифруют отправляемые данные на клиенте и дешифруют их на сервере. Это защищает данные от чтения злоумышленниками, даже если им удастся их перехватить.
HTTP/0.9
В 1991 году была опубликована первая версия протокола с названием HTTP/0.9. Эта реализация была проста, как топор. От интернет-ресурса того времени требовалось только загружать запрашиваемую HTML-страницу и HTTP/0.9 справлялся с этой задачей. Обычный запрос к серверу выглядел так:
GET /http-spec.html
В протоколе был определен единственный метод GET и и указывался путь к ресурсу. Так пользователи получали страничку. После этого открытое соединение сразу закрывалось.
HTTP/1.0
Годы шли и интернет менялся. Стало понятно, что нужно не только получать странички от сервера, но и отправлять ему данные. В 1996 году вышла версия протокола 1.0.
Что изменилось:
-
В запросе теперь надо было указывать версию протокола. Так сервер мог понимать, как обрабатывать полученные данные.
-
В ответе от сервера появился статус завершения обработки запроса.
-
К запросу и ответу добавился новый блок с заголовками.
-
Добавили поддержку новых методов:
-
HEAD запрашивает ресурс так же, как и метод GET, но без тела ответа. Так можно получить только заголовки, без самого ресурса.
-
POST добавляет сущность к определённому ресурсу. Часто вызывает изменение состояния или побочные эффекты на сервере. Например, так можно отправить запрос на добавление нового поста в блог.
Структура запроса
Простой пример запроса:
GET /path HTTP/1.0
Content-Type: text/html; charset=utf-8
Content-Length: 4
X-Custom-Header: value
test
В первой строчке указаны метод запроса — GET
, путь к ресурсу — /path
и версия протокола — HTTP/1.0
.
Далее идёт блок заголовков. Заголовки — это пары ключ: значение
, каждая из которых записывается с новой строки и разделяется двоеточием. Они передают дополнительные данные и настройки от клиента к серверу и обратно.
HTTP — это текстовый протокол, поэтому и все данные передаются в виде текста. Заголовки можно отделить друг от друга только переносом строки. Нельзя использовать запятые, точку с запятой, или другие разделители. Всё, что идет после имени заголовка с двоеточием и до переноса строки, будет считаться значением заголовка2.
В примере серверу передали три заголовка:
-
Content-Type
— стандартный заголовок. Показывает, в каком формате будут передаваться данные в теле запроса или ответа. -
Content-Length
— сообщает длину контента в теле запроса в байтах. -
X-Custom-Header
— пользовательские заголовки, начинающиеся сX-
с произвольными именем. Через них реализуется специфическая логика обработки для конкретного сервера. Если веб-сервер не поддерживает такие заголовки, то он проигнорирует их.
После блока заголовков идёт тело запроса, в котором передается текст test
.
А так может выглядеть ответ от сервера:
HTTP/1.1 200 OK
Date: Thu, 29 Jul 2021 19:20:01 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 2
Connection: close
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
OK
В первой строке — версия протокола и статус ответа, например, 200 ОК
. Далее идут заголовки ответа. После блока заголовков — тело ответа, в котором записан текст OK
.
Статусы ответов
Клиенту зачастую недостаточно просто отправить запрос на сервер. Во многих случаях надо дождаться ответа и понять, как сервер обработал запрос. Для этого были придуманы статусы ответов. Это трёхзначные числовые коды с небольшими текстовыми обозначениями. Их можно увидеть в терминале или браузере. Сами коды делятся на 5 классов:
-
Информационные ответы: коды 100–199
-
Успешные ответы: коды 200–299
-
Редиректы: коды 300–399
-
Клиентские ошибки: коды 400–499
-
Серверные ошибки: коды 500–599
Мы рассмотрим основные коды, которые чаще всего встречаются в реальных задачах. С остальными более подробно можно ознакомиться в реестре кодов состояния HTTP.
Информационные ответы
100 Continue — промежуточный ответ. Он указывает, что запрос успешно принят. Клиент может продолжать присылать запросы или проигнорировать этот ответ, если запрос был завершён.
Примечание
Этот код ответа доступен с версии HTTP/1.1.
101 Switching Protocol присылается в ответ на запрос, в котором есть заголовок Upgrade. Это означает, что сервер переключился на протокол, который был указан в заголовке. Такая методика используется, например, для переключения на протокол Websocket.
102 Processing — запрос получен сервером, но его обработка ещё не завершена.
Успешные ответы
200 OK — запрос принят и корректно обработан веб-сервером.
201 Created — запрос корректно обработан и в результате был создан новый ресурс. Обычно он присылается в ответ на POST запрос.
Редиректы
301 Moved Permanently — запрашиваемый ресурс на постоянной основе переехал на новый адрес. Тогда новый путь к ресурсу указывается сервером в заголовке Location
ответа.
Примечание
Клиент может изменить метод последующего запроса с POST на GET.
302 Found — указывает, что целевой ресурс временно доступен по другому URl. Адрес перенаправления может быть изменен в любое время, а клиент должен продолжать использовать действующий URI для будущих запросов. Тогда временный путь к ресурсу указывается сервером в заголовке Location
ответа.
Примечание
Клиент может изменить метод последующего запроса с POST на GET.
307 Temporary Redirect — имеет то же значение, что и код 302, за исключением того, что клиент не может менять метод последующего запроса.
308 Permanent Redirect — имеет то же значение, что и код 301, за исключением того, что клиент не может менять метод последующего запроса.
Клиентские ошибки
400 Bad Request — запрос от клиента к веб-серверу составлен некорректно. Обычно это происходит, если клиент не передаёт необходимые заголовки или параметры.
401 Unauthorized — получение запрашиваемого ресурса доступно только аутентифицированным пользователям.
403 Forbidden — у клиента не хватает прав для получения запрашиваемого ресурса. Например, когда обычный пользователь сайта пытается получить доступ к панели администратора.
404 Not Found — сервер не смог найти запрашиваемый ресурс.
405 Method Not Allowed — сервер знает о существовании HTTP-метода, который был указан в запросе, но не поддерживает его. В таком случае сервер должен вернуть список поддерживаемых методов в заголовке Allow
ответа.
Серверные ошибки
500 Internal Server Error — на сервере произошла непредвиденная ошибка.
501 Not Implemented — метод запроса не поддерживается сервером и не может быть обработан.
502 Bad Gateway — сервер, действуя как шлюз или прокси, получил недопустимый ответ от входящего сервера, к которому он обращался при попытке выполнить запрос.
503 Service Unavailable — сервер не готов обработать запрос (например, из-за технического обслуживания или перегрузки). Обратите внимание, что вместе с этим ответом должна быть отправлена удобная страница с объяснением проблемы. Этот ответ следует использовать для временных условий, а HTTP-заголовок Retry-After
по возможности должен содержать расчётное время до восстановления службы.
504 Gateway Timeout — этот ответ об ошибке выдается, когда сервер действует как шлюз и не может получить ответ за отведенное время.
505 HTTP Version Not Supported — версия HTTP, используемая в запросе, не поддерживается сервером.
В HTTP из всего диапазона кодов используется совсем немного. Те коды, которые не используются для задания определенной логики в спецификации, являются неназначенными и могут использоваться веб-серверами для определения своей специфической логики. Это значит, что вы можете, например, придать коду 513 значение «Произошла ошибка обработки видео», или любое другое. Неназначенные коды вы можете посмотреть в реестре кодов состояния HTTP.3
Тело запроса и ответа
Тело запроса опционально и всегда отделяется от заголовков пустой строкой. А как понять, где оно заканчивается? Всё кажется очевидным: где кончается строка, там и заканчивается тело. Однако, два символа переноса строки в HTTP означают конец запроса и отправляют его на сервер. Как быть, если мы хотим передать в теле текст, в котором есть несколько абзацев с разрывами в две строки?
POST /path HTTP/1.1
Host: localhost
Первая строка
Вторая строка после разрыва
По логике работы HTTP соединение отправится сразу после второй пустой строки и сервер получит в качестве данных только строку Первая строка
. Описанную проблему решает специальный заголовок Content-Length
. Он указывает на длину контента в байтах. Обычно клиенты (например, браузеры) автоматически считают длину передаваемых данных и добавляют к запросу заголовок с этим значением. Когда сервер получит запрос, он будет ожидать в качестве контента ровно столько байт, сколько указано в заголовке.
Однако, этого недостаточно для того, чтобы передать данные на сервер. Поведение зависит от реализации сервера, но для большинства из них необходимо также передать заголовок Content-Type. Он указывает на тип передаваемых данных. В качестве значения для этого заголовка используют MIME-типы.4
MIME (Multipurpose Internet Mail Extensions, многоцелевые расширения интернет-почты) — стандарт, который является частью протокола HTTP. Задача MIME — идентифицировать тип содержимого документа по его заголовку. К примеру, текстовый файл имеет тип text/plain
, а HTML-файл — text/html
.
Для передачи данных в формате обычного текста надо указать заголовок Content-Type: text/plain
, а для JSON — Content-Type: application/json
.
Можно ли передать тело с GET-запросом?
Популярный вопрос на некоторых собеседованиях: «Можно ли передать тело с GET-запросом?». Правильный ответ — да. Тело запроса не зависит от метода. В стандарте не описана возможность принимать тело запроса у GET-метода, но это и не запрещено. Технически вы можете отправить данные в теле, но скорее всего веб-сервер будет их игнорировать.
Представим, что на абстрактном сайте есть форма аутентификации пользователя, в которой есть всего два поля: email и пароль.
Если пользователь ввёл данные и нажал на кнопку «Войти», то данные из полей формы должны попасть на сервер. Самым простым и распространенным форматом передачи таких данных будет MIME application/x-www-form-urlencoded
. В нем все поля передаются в одной строке в формате ключ=значение
и разделяются знаком &
.
Запрос на отправку данных будет выглядеть так:
POST /login HTTP/1.0
Host: example.com
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Length: 26
login=user&password=qwerty
Тут есть небольшая особенность. Как понять, где заканчивается ключ и начинается его значение, если в пароле будет присутствовать знак «=» ?
POST /login HTTP/1.0
Host: example.com
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Length: 26
login=user&password=123=45
В этом случае сервер не сможет понять, как разбить строку на параметры и их значения. На самом деле значения кодируются при помощи механизма url encoding.5 При использовании этого механизма знак «=» будет преобразован в код %3D
.
Тогда наш запрос приобретёт такой вид:
POST /login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Length: 28
login=user&password=123%3D45
Query string
Данные на сервер можно передавать через тело запроса и через так называемую строку запроса Query String. Это параметры формата ключ=значение, которые располагаются в пути к ресурсу:
GET /files?key=value&key2=value2 HTTP/1.0
При этом параметры можно передавать прямо от корня домена:
GET /?key=value&key2=value2 HTTP/1.0
Query String имеет такой же формат, как и тело запроса с MIME application/x-www-form-urlencoded
, только первая пара значений отделяется от адреса вопросительным знаком.
Некоторые инженеры ошибочно полагают, что Query String являются параметрами GET-запроса и даже называют их GET-параметрами, но на самом деле это не так. Как и тело запроса, Query String не имеет привязки к HTTP-методам и может передаваться с любым типом запросов.
Обычно параметры Query String используются в GET-запросах, чтобы конкретизировать получаемый ресурс. Например, можно получить на сервере список файлов, имена которых будут начинаться с переданного значения.
GET-запросы по своей идеологии должны быть идемпотентными. Это значит, что множественный вызов метода с одними и теми же параметрами должен приводить к одному и тому же результату. Например, поисковые боты перемещаются по сайту только по ссылкам и делают только GET-запросы, потому что исходя из семантики они не смогут таким образом изменить данные на сайте и повлиять на его работу.
На этом я закончу говорить про версию протокола 1.0, структуру ответов и запросов. В следующей статье я расскажу, что такое Cookies, для чего нужен CORS и как это всё работает. А пока напоследок оставлю полезные ссылки, которые упомянул в тексте:
-
Основы TCP/IP
-
Заголовки HTTP
-
Реестр кодов состояния HTTP
-
MIME типы
-
Алгоритм кодирования URL encoding
Следующая статья: Ультимативный гайд по HTTP. Cookies и CORS
Это перевод с сайта www.bluefrontier.co.uk.
Что означают ошибки с кодами 4XX
Ошибки с кодами 4XX — это ошибки, которые возникают, когда веб-страница не существует или когда доступ к ней ограничен. Обычно это случается из-за неправильно набранного URL-адреса. Если страница недоступна, то она не может обмениваться данными с веб-сервером, в результате чего выводится ошибка 4XX и пользователь не может получить доступ к странице или сайту.
Сначала разберём популярные типы ошибок с кодом 4XX, а потом поговорим о том, как их исправить.
400 Bad Request или «Некорректный запрос»
400 Bad Request возникает при отправке неправильного или поврежденного запроса на веб-сервер. В результате сервер, принимающий запрос, не может его понять.
Как и сообщение об ошибке типа «404 Не найдено», страницы 400 можно нужным образом настраивать.
401 Unauthorized или «Авторизация не пройдена»
HTTP-ошибка 401 говорит о том, что запрос отправлен клиентом, аутентификация которого невозможна. Причина может быть в том, что:
- клиент не предоставил корректные учётные данные вместе со своим запросом;
- клиенту по какой-либо причине запрещён доступ к веб-ресурсу;
- сервер отклонил учетные данные клиента.
403 Forbidden или «Доступ запрещен»
Это сообщение об ошибке отображается при попытке обратиться к странице или веб-ресурсу, доступ к которому строго запрещён. Как правило, в таком случае пользователю будут предоставлены базовые указания для решения этой проблемы.
404 Not Found или «Страница не найдена»
Страница с ошибкой 404 будет показана пользователю при переходе по «битым» ссылкам. В результате он не сможет получить доступ к соответствующей странице. Ошибка «Cтраница не найдена» обычно вызвана некорректным URL-адресом или тем, что данная страница уже перестала быть общедоступной.
Также ошибка 404 может возникнуть, если на страница или ресур «переехали» на другой URL, но перенаправление со старого URL-адреса на новый не настроено.
Эта ошибка указывает на то, что сервер доступен, но конкретная страница, на которую вы пытаетесь попасть, недоступна.
Как выглядят ошибки с кодами 4XX
Ошибки 4XX легко выявить — они появляются в окне браузера и обычно объясняют, что именно произошло. На рисунке ниже показаны примеры сообщений, которые могут быть выведены пользователю:
Как исправить ошибку с кодом 4XX
- Проверьте URL-адрес, не ошиблись ли вы, когда печатали его? Если адрес сайта набран неправильно, то, скорее всего, вы увидите ошибку «404 — Not Found».
- Очистите файлы cookie и кэш браузера. Возможно, ваш браузер пытается использовать недействительные или просроченные файлы cookie. Возможно, ваш браузер сохранил в кэше поврежденную версию страницы, которую вы пытаетесь открыть, поэтому возвращается ошибка 400 Bad Request.
Как очистить cookie и кэш браузера
Обычно это делается в настройках браузера. Они всегда находятся в верхнем правом углу экрана.
В Google Chrome: Настройки → Безопасность и конфиденциальность → Очистить историю.
В Яндекс.Браузере: Настройки → Системные → Очистить историю.
В Mozilla Firefox: Настройки → Приватность и защита → Куки и данные сайтов → Удалить данные.
- Обратите внимание на то, что причина ошибки может быть в сервере, принимающем запрос. Некоторые серверы не настроены на отправку более информативных сообщений и присылают просто ошибку. Например, вы загружаете на сайт слишком большой файл. Вместо указания на то, что размер файла превышает максимально допустимый, сервер отправляет HTTP-ошибку с кодом 400.
- Обновите страницу, это то же самое, что выключить и снова включить какое-нибудь устройство. Это действие не всегда помогает, но попробовать стоит. Просто нажмите клавишу F5, и ваш браузер перезагрузит страницу. Если вы всё равно получаете ошибку, то можно, придерживаясь того же подхода, попробовать перезагрузить компьютер.
- Попробуйте воспользоваться поиском по сайту. Не всегда легко заметить, что URL-адрес набран неправильно, особенно, если в нём вместо понятных слов используются цифры и символы. Если вы наберёте в браузере «site.com:ключевое слово», то в поисковой выдаче должны появиться страницы сайта, содержащие этот запрос. Это эффективный способ поиска страниц, у которых могут быть новые URL-адреса.
- Для проверки зайдите на другие сайты. Если вы постоянно видите HTTP-ошибки, причиной может быть ваш компьютер или сетевое оборудование. Попробуйте зайти на другие сайты и посмотреть, не появляется ли на них HTTP-ошибка с кодом 4XX.
- Если вы пытаетесь где-то авторизоваться, чтобы получить доступ к определённым данным, проверьте, что используете правильный URL-адрес. URL-адреса могут обновляться или изменяться, поэтому если вы когда-то добавили страницу в закладки, то сейчас она может быть уже неактуальной. Также важно убедиться, что вы используете правильные данные для входа в систему, поскольку неправильные могут привести к появлению сообщения об ошибке с кодом 401.
- Если ничего из вышеперечисленного не помогает, свяжитесь с администраторами сайта.
Ошибки 4XX: негативное влияние на SEO
Когда внутренняя ссылка на страницу сайта или внешняя ссылка, ведущая на ваш сайт с другого ресурса меняется, удаляется или не работает, такую ссылку называют «битой». Она не позволит увидеть пользователю соответствующий контент. Вместо этого появится сообщение об ошибке с кодом 4XX.
Чаще всего это сообщение выглядит примерно так: «400: Bad Request», «400: некорректный запрос» или «HTTP-ошибка с кодом 400».
Полезно: Полный гайд по кодам ответа сервера 1**, 2**, 3**, 4**,5**
Внутренние ссылки
С точки зрения SEO важно исправлять битые внутренние ссылки, поскольку они мешают поисковым системам правильно индексировать ваш сайт. Более того, с позиции бизнеса, из‑за битых ссылок ваш сайт будет выглядеть непрофессионально, а это уже может дать повод полагать, что на таком же уровне организован и весь бизнес. Когда появляется страница с ошибкой, особенно стандартная, ваш посетитель и потенциальный клиент просто уйдёт к конкуренту.
К счастью, у Google есть Search Console — инструмент, который позволяет легко отслеживать битые ссылки и составлять графики с данными по ним.
Для этого зайдите в Google Search Console и перейдите в «Настройки» → «Статистика сканирования». Обратите внимание на поле «По ответу» — в нём указано количество страниц с ошибками:
Кликнув на ошибки, вы увидите какие именно страницы сайта отдают эти ошибки.
Кроме того, инструмент обнаружения битых ссылок на сайте есть у Топвизора. Перейдите в Аудит → Ссылки. Инструмент покажет ошибки:
В некоторых случаях, например, для Wordpress, Drupal и Joomla, есть встроенное расширение, которое вы можете использовать для автоматической проверки на наличие битых ссылок.
Внешние ссылки
Внешние ссылки или, как их ещё называют, «входящие ссылки», могут стать «битыми» из‑за изменения URL‑адреса или местоположения контента, а также из‑за допущенной ошибки в самом URL‑адресе.
В результате такие ссылки негативно влияют на ранжирование вашего сайта в поисковых системах и на впечатления посетителей от использования сайта.
Как «лечить» битые ссылки
Вот несколько возможных вариантов.
Исправьте сами ссылки или настройте редирект
Сначала необходимо обнаружить битую ссылку. Как и в случае с внутренними ссылками, проверьте ошибки сканирования в Google Search Console, найдите все ссылки с ошибками и их источник.
После обнаружения источника, свяжитесь с вебмастером ресурса и попросите исправить ссылку. Если по каким‑то причинам вы не можете связаться с ним, настройте редирект (301‑й код состояния HTTP) на исходную статью. Google с радостью перенесёт всю ссылочную ценность с вашей битой ссылки на текущую.
Инструкция по настройке 301‑го редиректа от Google
Чем больше входящих ссылок связано со страницей, тем выше её позиции в ранжировании, поэтому нужно тщательно продумывать удаление или изменение имён файлов страниц.
Поддерживайте распределение ссылочного веса
«Ссылочный вес» служит своеобразной валютой в поисковике Google и используется в алгоритмах поисковых систем для определения рейтинга сайта или страницы. Страницы связаны между собой ссылками, и их ценность передаётся от одной страницы к другой. Если ссылка не работает, то передача ссылочного веса прекращается, и он теряется. Это может сильно повлиять на ранжирование сайта и ухудшить впечатления пользователей от сайта, снижая его посещаемость.
Создавая пользовательскую страницу для сообщения об ошибке с кодом 404, вы можете перенаправить пользователя либо на главную страницу сайта, либо на предыдущую страницу, чтобы вернуть его на шаг назад. Несмотря на то, что пользователю отображается страница с сообщением об ошибке, он может легко вернуться на предыдущую посещенную страницу сайта без необходимости заново начинать весь процесс.
Перенаправляя посетителей на предыдущие страницы, сайт сохраняет ссылочный вес, который в противном случае был бы потерян.
Создавайте нестандартные страницы с ошибкой 404
Страница с ошибкой 404 служит для информирования посетителя сайта о том, что страница не может быть найдена, например из‑за нерабочей ссылки или даже просто опечатки.
Мы предлагаем создавать нестандартные страницы с ошибкой на вашем сайте. У такой страницы есть несколько преимуществ.
Во‑первых, нестандартная страница с сообщением об ошибке гораздо проще в понимании. У посетителя сайта будет складываться впечатление, что сайтом всё еще кто‑то занимается, в отличие от стандартной страницы об ошибке, которая свидетельствует о том, что сайт, возможно, давно не обновляли.
Но ещё важнее то, что пользовательская страница с ошибкой 404 может помочь пользователю найти именно то, что он искал. А это позволит не упустить трафик, если у вас окажется много битых ссылок. У Google есть несколько хороших советов по созданию полезной страницы с ошибкой 404.
Не игнорируйте ошибки с кодами 4XX, потому что они сильно влияют на впечатления посетителей сайта. Если вы вдруг ещё не знали, алгоритмы Google ориентированы на обеспечение максимально положительного пользовательского опыта.
Хотя битые ссылки — только один из многочисленных факторов, которые учитывает поисковой робот Google, они могут привести к потере ценного трафика, поскольку пользователи разочаровываются, когда переходят по нерабочим ссылкам на несуществующие страницы. В конечном счёте битые ссылки негативно отразятся на поведенческих факторах сайта и, как следствие, на его эффективности с точки зрения SEO.
Расшифровка 55 состояний прикладного протокола HTTP (протокол передачи гипертекста): от информационных сообщений до ошибок.
Во время запроса информации с удаленного веб-сервера может возникнуть ошибка. Тогда веб-сервер посылает в ответ код ошибки HTTP. Например 404 — Not Found (ресурс не найден).
Коды состояния HTTP состоят из трех цифр от 100 и до 510. Они делятся на следующие группы:
- Информационные (100-105).
- Успешные (200-226).
- Перенаправление (300-307).
- Ошибка клиента (400-499).
- Ошибка сервера (500-510).
Чтобы получить сведения об ошибке, введите её код в поле поиска по странице. Для этого нажмите сочетание клавиш CTRL + F и укажите номер.
100
Continue
Cервер удовлетворён начальными сведениями о запросе, клиент может продолжать пересылать заголовки. Появился в HTTP/1.1.
101
Switching Protocols
Сервер предлагает перейти на более подходящий для указанного ресурса протокол; список предлагаемых протоколов сервер обязательно указывает в поле заголовкаUpdate. Если клиента это заинтересует, то он посылает новый запрос с указанием другого протокола. Появился в HTTP/1.1.
102
Processing
Запрос принят, но на его обработку понадобится длительное время. Используется сервером, чтобы клиент не разорвал соединение из-за превышения времени ожидания. Клиент при получении такого ответа должен сбросить таймер и дожидаться следующей команды в обычном режиме. Появился в WebDAV.
200
ОК
Успешный запрос. Если клиентом были запрошены какие-либо данные, то они находятся в заголовке и/или теле сообщения. Появился в HTTP/1.0.
201
Created
В результате успешного выполнения запроса был создан новый ресурс. Сервер должен указать его местоположение в заголовке Location. Серверу рекомендуется[источник не указан 336 дней] ещё указывать в заголовке характеристики созданного ресурса (например, в поле Content-Type). Если сервер не уверен, что ресурс действительно будет существовать к моменту получения данного сообщения клиентом, то лучше использовать ответ с кодом 202. Появился в HTTP/1.0.
202
Accepted
Запрос был принят на обработку, но она не завершена. Клиенту не обязательно дожидаться окончательной передачи сообщения, так как может быть начат очень долгий процесс. Появился в HTTP/1.0.
203
Non-Authoritative Information
Аналогично ответу 200, но в этом случае передаваемая информация была взята не из первичного источника (резервной копии, другого сервера и т. д.) и поэтому может быть неактуальной. Появился в HTTP/1.1.
204
No Content
Сервер успешно обработал запрос, но в ответе были переданы только заголовки без тела сообщения. Клиент не должен обновлять содержимое документа, но может применить к нему полученные метаданные. Появился в HTTP/1.0.
205
Reset Content
Сервер обязывает клиента сбросить введённые пользователем данные. Тела сообщения сервер при этом не передаёт и документ обновлять не обязательно. Появился в HTTP/1.1.
206
Partial Content
Сервер удачно выполнил частичный GET-запрос, возвратив только часть сообщения. В заголовке Content-Range сервер указывает байтовые диапазоны содержимого. Особое внимание при работе с подобными ответами следует уделить кэшированию. Появился в HTTP/1.1. (подробнее…)
207
Multi-Status
Сервер передаёт результаты выполнения сразу нескольких независимых операций. Они помещаются в само тело сообщения в виде XML-документа с объектом multistatus. Не рекомендуется размещать в этом объекте статусы из серии 1xx из-за бессмысленности и избыточности. Появился в WebDAV.
226
IM Used
Заголовок A-IM от клиента был успешно принят и сервер возвращает содержимое с учётом указанных параметров. Введено в RFC 3229 для дополнения протокола HTTP поддержкой дельта-кодирования.
300
Multiple Choices
По указанному URI существует несколько вариантов предоставления ресурса по типу MIME, по языку или по другим характеристикам. Сервер передаёт с сообщением список альтернатив, давая возможность сделать выбор клиенту автоматически или пользователю. Появился в HTTP/1.0.
301
Moved Permanently
Запрошенный документ был окончательно перенесен на новый URI, указанный в поле Location заголовка. Некоторые клиенты некорректно ведут себя при обработке данного кода. Появился в HTTP/1.0.
302
Found, Moved Temporarily
Запрошенный документ временно доступен по другому URI, указанному в заголовке в поле Location. Этот код может быть использован, например, приуправляемом сервером согласовании содержимого. Некоторые клиенты некорректно ведут себя при обработке данного кода. Введено в HTTP/1.0.
303
See Other
Документ по запрошенному URI нужно запросить по адресу в поле Location заголовка с использованием метода GET несмотря даже на то, что первый запрашивался иным методом. Этот код был введён вместе с 307-ым для избежания неоднозначности, чтобы сервер был уверен, что следующий ресурс будет запрошен методом GET. Например, на веб-странице есть поле ввода текста для быстрого перехода и поиска. После ввода данных браузер делает запрос методом POST, включая в тело сообщения введённый текст. Если обнаружен документ с введённым названием, то сервер отвечает кодом 303, указав в заголовке Location его постоянный адрес. Тогда браузер гарантировано его запросит методом GET для получения содержимого. В противном случае сервер просто вернёт клиенту страницу с результатами поиска. Введено в HTTP/1.1.
304
Not Modified
Сервер возвращает такой код, если клиент запросил документ методом GET, использовал заголовок If-Modified-Since или If-None-Match и документ не изменился с указанного момента. При этом сообщение сервера не должно содержать тела. Появился в HTTP/1.0.
305
Use Proxy
Запрос к запрашиваемому ресурсу должен осуществляться через прокси-сервер, URI которого указан в поле Location заголовка. Данный код ответа могут использовать только исходные HTTP-сервера (не прокси). Введено в HTTP/1.1.
306
(зарезервировано)
использовавшийся раньше код ответа, в настоящий момент зарезервирован. Упомянут в RFC 2616 (обновление HTTP/1.1).
307
Temporary Redirect
Запрашиваемый ресурс на короткое время доступен по другому URI, указанный в поле Location заголовка. Этот код был введён вместе с 303 вместо 302-го для избежания неоднозначности. Введено в RFC 2616 (обновление HTTP/1.1).
400
Bad Request
Сервер обнаружил в запросе клиента синтаксическую ошибку. Появился в HTTP/1.0.
401
Unauthorized
Для доступа к запрашиваемому ресурсу требуется аутентификация. В заголовке ответ должен содержать поле WWW-Authenticate с перечнем условий аутентификации. Клиент может повторить запрос, включив в заголовок сообщения поле Authorization с требуемыми для аутентификации данными.
402
Payment Required
Предполагается использовать в будущем. В настоящий момент не используется. Этот код предусмотрен для платных пользовательских сервисов, а не для хостинговыхкомпаний. Имеется в виду, что эта ошибка не будет выдана хостинговым провайдером в случае просроченной оплаты его услуг. Зарезервирован, начиная с HTTP/1.1.
403
Forbidden
Сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе для клиента к указанному ресурсу. Если для доступа к ресурсу требуется аутентификация средствами HTTP, то сервер вернёт ответ 401 или 407 при использовании прокси. В противном случае ограничения были заданы администратором сервера или разработчиком веб-приложения и могут быть любыми в зависимости от возможностей используемого программного обеспечения. В любом случае клиенту следует сообщить причины отказа в обработке запроса. Наиболее вероятными причинами ограничения может послужить попытка доступа к системным ресурсам веб-сервера (например, файлам .htaccess или .htpasswd) или к файлам, доступ к которым был закрыт с помощью конфигурационных файлов, требование аутентификации не средствами HTTP, например, для доступа к системе управления содержимым или разделу для зарегистрированных пользователей либо сервер не удовлетворён IP-адресом клиента, например, при блокировках. Появился в HTTP/1.0.
404
Not Found
Самая распространенная ошибка при пользовании Интернетом, основная причина — ошибка в написании адреса Web-страницы. Сервер понял запрос, но не нашёл соответствующего ресурса по указанному URI. Если серверу известно, что по этому адресу был документ, то ему желательно использовать код 410. Ответ 404 может использоваться вместо 403, если требуется тщательно скрыть от посторонних глаз определённые ресурсы. Появился в HTTP/1.0.
405
Method Not Allowed
Указанный клиентом метод нельзя применить к текущему ресурсу. В ответе сервер должен указать доступные методы в заголовке Allow, разделив их запятой. Эту ошибку сервер должен возвращать, если метод ему известен, но он не применим именно к указанному в запросе ресурсу, если же указанный метод не применим на всём сервере, то клиенту нужно вернуть код 501 (Not Implemented). Появился в HTTP/1.1.
406
Not Acceptable
Запрошенный URI не может удовлетворить переданным в заголовке характеристикам. Если метод был не HEAD, то сервер должен вернуть список допустимых характеристик для данного ресурса. Появился в HTTP/1.1.
407
Proxy Authentication Required
Ответ аналогичен коду 401 за исключением того, что аутентификация производится для прокси-сервера. Механизм аналогичен идентификации на исходном сервере. Появился в HTTP/1.1.
408
Request Timeout
Время ожидания сервером передачи от клиента истекло. Клиент может повторить аналогичный предыдущему запрос в любое время. Например, такая ситуация может возникнуть при загрузке на сервер объёмного файла методом POST или PUT. В какой-то момент передачи источник данных перестал отвечать, например, из-за повреждения компакт-диска или потеря связи с другим компьютером в локальной сети. Пока клиент ничего не передаёт, ожидая от него ответа, соединение с сервером держится. Через некоторое время сервер может закрыть соединение со своей стороны, чтобы дать возможность другим клиентам сделать запрос. Этот ответ не возвращается, когда клиент принудительно остановил передачу по команде пользователя или соединение прервалось по каким-то иным причинам, так как ответ уже послать невозможно. Появился в HTTP/1.1.
409
Conflict
Запрос не может быть выполнен из-за конфликтного обращения к ресурсу. Такое возможно, например, когда два клиента пытаются изменить ресурс с помощью метода PUT.Появился в HTTP/1.1.
410
Gone
Такой ответ сервер посылает, если ресурс раньше был по указанному URL, но был удалён и теперь недоступен. Серверу в этом случае неизвестно и местоположение альтернативного документа, например, копии). Если у сервера есть подозрение, что документ в ближайшее время может быть восстановлен, то лучше клиенту передать код 404. Появился в HTTP/1.1.
411
Length Required
Для указанного ресурса клиент должен указать Content-Length в заголовке запроса. Без указания этого поля не стоит делать повторную попытку запроса к серверу по данному URI. Такой ответ естественен для запросов типа POST и PUT. Например, если по указанному URI производится загрузка файлов, а на сервере стоит ограничение на их объём. Тогда разумней будет проверить в самом начале заголовок Content-Length и сразу отказать в загрузке, чем провоцировать бессмысленную нагрузку, разрывая соединение, когда клиент действительно пришлёт слишком объёмное сообщение. Появился в HTTP/1.1.
412
Precondition Failed
Возвращается, если ни одно из условных полей заголовка[неизвестный термин] запроса не было выполнено. Появился в HTTP/1.1.
413
Request Entity Too Large
Возвращается в случае, если сервер отказывается обработать запрос по причине слишком большого размера тела запроса. Сервер может закрыть соединение, чтобы прекратить дальнейшую передачу запроса. Если проблема временная, то рекомендуется в ответ сервера включить заголовок Retry-After с указанием времени, по истечении которого можно повторить аналогичный запрос. Появился в HTTP/1.1.
414
Request-URL Too Long
Сервер не может обработать запрос из-за слишком длинного указанного URL. Такую ошибку можно спровоцировать, например, когда клиент пытается передать длинные параметры через метод GET, а не POST. Появился в HTTP/1.1.
415
Unsupported Media Type
По каким-то причинам сервер отказывается работать с указанным типом данных при данном методе. Появился в HTTP/1.1.
416
Requested Range Not Satisfiabl
В поле Range заголовка запроса был указан диапазон за пределами ресурса и отсутствует поле If-Range. Если клиент передал байтовый диапазон, то сервер может вернуть реальный размер в поле Content-Range заголовка. Данный ответ не следует использовать при передаче типа multipart/byteranges[источник не указан 336 дней]. Введено в RFC 2616 (обновление HTTP/1.1).
417
Expectation Failed
По каким-то причинам сервер не может удовлетворить значению поля Expect заголовка запроса. Введено в RFC 2616 (обновление HTTP/1.1).
422
Unprocessable Entity
Сервер успешно принял запрос, может работать с указанным видом данных, в теле запроса XML-документ имеет верный синтаксис, но имеется какая-то логическая ошибка, из-за которой невозможно произвести операцию над ресурсом. Введено в WebDAV.
423
Locked
Целевой ресурс из запроса заблокирован от применения к нему указанного метода. Введено в WebDAV.
424
Failed Dependency
Реализация текущего запроса может зависеть от успешности выполнения другой операции. Если она не выполнена и из-за этого нельзя выполнить текущий запрос, то сервер вернёт этот код. Введено в WebDAV.
425
Unordered Collection —
Посылается, если клиент послал запрос, обозначив положение в неотсортированной коллекции или используя порядок следования элементов, отличный от серверного[уточнить]. Введено в черновике по WebDAV Advanced Collections Protocol[14].
426
Upgrade Required
Сервер указывает клиенту на необходимость обновить протокол. Заголовок ответа должен содержать правильно сформированные поля Upgrade и Connection. Введено вRFC 2817 для возможности перехода к TLS посредством HTTP.
449
Retry With
Возвращается сервером, если для обработки запроса от клиента поступило недостаточно информации. При этом в заголовок ответа помещается поле Ms-Echo-Request. Введено корпорацией Microsoft для WebDAV. В настоящий момент как минимум используется программой Microsoft Money.
456
Unrecoverable Error
Возвращается сервером, если обработка запроса вызывает некорректируемые сбои в таблицах баз данных[источник не указан 336 дней]. Введено корпорацией Microsoftдля WebDAV.
500
Internal Server Error
Любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса. Появился в HTTP/1.0.
501
Not Implemented
Сервер не поддерживает возможностей, необходимых для обработки запроса. Типичный ответ для случаев, когда сервер не понимает указанный в запросе метод. Если же метод серверу известен, но он не применим к данному ресурсу, то нужно вернуть ответ 405. Появился в HTTP/1.0.
502
Bad Gateway
Сервер, выступая в роли шлюза или прокси-сервера, получил недействительное ответное сообщение от вышестоящего сервера. Появился в HTTP/1.0.
503
Service Unavailable
Сервер временно не имеет возможности обрабатывать запросы по техническим причинам (обслуживание, перегрузка и прочее). В поле Retry-After заголовка сервер может указать время, через которое клиенту рекомендуется повторить запрос. Хотя во время перегрузки очевидным кажется сразу разрывать соединение, эффективней может оказаться установка большого значения поля Retry-After для уменьшения частоты избыточных запросов. Появился в HTTP/1.0.
504
Gateway Timeout
Сервер в роли шлюза или прокси-сервера не дождался ответа от вышестоящего сервера для завершения текущего запроса. Появился в HTTP/1.1.
505
HTTP Version Not Supported
Сервер не поддерживает или отказывается поддерживать указанную в запросе версию протокола HTTP. Появился в HTTP/1.1.
506
Variant Also Negotiates
В результате ошибочной конфигурации выбранный вариант указывает сам на себя, из-за чего процесс связывания прерывается. Экспериментальное. Введено в RFC 2295 для дополнения протокола HTTP технологией Transparent Content Negotiation.
507
Insufficient Storage
Не хватает места для выполнения текущего запроса. Проблема может быть временной. Введено в WebDAV.
509
Bandwidth Limit Exceeded
Используется при превышении веб-площадкой отведённого ей ограничения на потребление трафика. В данном случае владельцу площадки следует обратиться к своему хостинг-провайдеру. В настоящий момент данный код не описан ни в одном RFC и используется только модулем «bw/limited», входящим в панель управления хостингом cPanel, где и был введён.
510
Not Extended
На сервере отсутствует расширение, которое желает использовать клиент. Сервер может дополнительно передать информацию о доступных ему расширениях. Введено в RFC 2774 для дополнения протокола HTTP поддержкой расширений.
Время прочтения: 10 мин.
Каждый из нас хоть раз сталкивался с ошибками, которые отображаться в клиентском браузере при попытке получить доступ к содержимому того или иного сайта. Технически это происходит так: сервер на каждый запрос браузера (или клиента) возвращает числовой код, указывающий на состояние ответа.
Код состояния HTTP — это стандартизированные трехзначные коды, которые веб-сервер возвращает в ответ на HTTP-запросы сетевых клиентов. Первая цифра указывает на класс состояния. В настоящее время выделено пять классов кодов состояния (в зависимости от которого нужно предпринимать определенные действия):
- Информационные (100–199).
- Успешные (200–299).
- Перенаправление (300–399).
- Ошибка клиента (400–499).
- Ошибка сервера (500–599).
Успешные и информационные ответы сервера остаются невидимыми, тогда как коды, обозначающие ошибку обработки запроса, выводятся на экран. В данной статье мы разберем основные стандартные виды ошибок и возможные причины их возникновения.
Ошибки класса 4** (400-499).
Коды состояния HTTP 400-499, как правило, указывают на возникновение ошибки на стороне клиентского браузера. Например, запрос несуществующей страницы или отсутствие достоверных сведений для проверки подлинности. Их причиной могу быть неправильные настройки веб-сервера, скриптов сайта и т. п.
Ошибка 400. Неверный запрос/Bad Request.
Говорит о том, что запрос не может быть понят сервером, так как составлен неправильно. Возможно указан неверный URL, или произошел технический сбой при передаче данных по одной из следующих причин:
- нестабильное соединение;
- блокирование передачи данных антивирусом или брандмауэром;
- попытка браузера загрузить слишком большой файл;
- поврежденные или устаревшие файлы cookie у пользователя.
Ошибка 401. Неавторизованный запрос/Unauthorized.
Этот код означает, что для доступа к ресурсу требуется аутентификация. Серверу необходимы логин и пароль, которые отсутствуют в запросе.
Ошибка 403. Доступ к ресурсу запрещен/Forbidden.
Сервер не может выполнить запрос из-за ограничений в доступе указанного ресурса. Проще говоря, администратором сервера или разработчиками были наложены ограничения. Причинами могут послужить попытка доступа к системным ресурсам веб-сервера, таким как файлы .htaccess или .htpasswd или с заблокированного IP-адреса.
Ошибка 404. Ресурс не найден/Not Found.
Является самым распространенным кодом ошибки. Серверу не удается найти файл или страницу. Причиной может быть:
- неправильный адрес страницы;
- перемещенная или удаленная страница, которая размещалась по-указанному адресу;
- технический сбой, из-за которого страница временно недоступна.
Код ошибки 404 используют также, чтобы скрыть истинную причину отказа от обработки запроса. Из соображений безопасности ошибка 403 может быть замаскирована под ошибку 404.
Ошибка 405. Недопустимый метод/Method Not Allowed.
Для каждого типа операций (загрузка, передача данных) HTTP-протокол предусматривает использование своего метода: GET, POST и другие. Данная ошибка означает, что метод, определенный в строке запроса (Request-Line), нельзя применить к текущему ресурсу. Отображается, например, при попытке обработки файлов с помощью метода POST вместо сервера Apache или некорректной настройке взаимодействия метода POST и модуля FastCGI.
Ошибка 406. Неприемлемый запрос/Not Acceptable.
Встречается крайне редко. При данной ошибке сервер выдает информацию в виде, который не может распознать браузер или поисковый робот из-за сжатия данных или неподдерживаемого формата.
Ошибка 407. Требуется идентификация прокси, файервола/Proxy Authentication Required.
Ошибка, аналогичная коду 401, только аутентификация необходима для прокси-сервера. Очень часто текст ответа содержит рекомендации по ее устранению.
Ошибка 408. Время запроса истекло/Request Timeout.
Расшифровывается, как “время ожидания сервером передачи от клиента истекло”. Возникает при передаче больших файлов, временного сбоя подключения к сети интернет или временной перегрузке сервера. Решить эту проблему можно обычной перезагрузкой страницы, а так же проверкой интернет-соединения и попыткой загрузить ресурс позже.
Ошибка 409. Конфликт/Conflict.
Означает, что произошел конфликт запроса и конфигураций сервера. Возможные причины:
- конфликт с прокси, через которые идет обращение к серверу;
- конфликт обращений между файлами на самом сервере;
- вирусное ПО на устройстве пользователя;
- сбой в работе браузера.
Ошибка 410. Ресурс недоступен/Gone.
Схожа с ошибкой 404: страница или документ, к которому обращается запрос, недоступен. Однако ошибка 410 выдается тогда затребованный ресурс был удален окончательно.
Ошибка 411. Необходимо указать длину/Length Required.
Возникает при передаче файлов определенными методами и выставленных ограничениях на передаваемый объем. В этих случаях сервер отказывается принимать запрос без заголовка Content-Length.
Ошибка 412. Сбой при обработке предварительного условия/Precondition Failed.
Ошибка значит, что был обнаружен сбой или ошибка при обработке предварительного условия при проверке одного или нескольких полей заголовка запроса. Чтобы исправить ошибку, обычно достаточно почистить cash и cookie-файлы.
Ошибка 413. Тело запроса превышает допустимый размер/Request Entity Too Large.
Происходит в случае, когда объем запроса больше, чем веб-сервер может обработать, например, при загрузке слишком большого файла. Для устранения рекомендуется:
- сжать изображение или видео перед загрузкой, чтоб уменьшить размер файла;
- не загружать несколько файлов одновременно;
- увеличить допустимый объем файлов, изменив настройки веб-сервера, которые отвечают за загрузку.
Ошибка 414. Недопустимая длина URI запроса/Request-URI Too Long.
Сервер отклоняет запрос из-за слишком длинного указанного URI. Ошибка может возникнуть при некорректно настроенном коде CMS: в административной панели сайта при каждом переходе со страницы на страницу к URL-адресу добавляются данные с параметрами, пока ссылка не превысит лимит. Так же частотность отображения ошибки 414 может свидетельствовать о попытках взлома.
Ошибка 415. Неподдерживаемый MIME тип/Unsupported Media Type.
Сервер отказывается обрабатывать запрос с указанным типом данных, потому что тело запроса имеет неподдерживаемый формат.
Ошибка 416. Диапазон не может быть обработан/Range Not Satisfiable.
Сервер не может обработать запрос, потому что значение поля Range в заголовке запроса указан диапазон за пределами ресурса.
Ошибка 417. Сбой при ожидании/Expectation Failed.
Сервер по каким-то причинам не может удовлетворить значению поля Expect заголовка запроса и отказывается обрабатывать запрос.
Ошибка 422. Необрабатываемый элемент/Unprocessable Entity.
Данная ошибка свидетельствует о том, что сервер не может произвести операцию над ресурсом, так как в одном или нескольких элементах запроса возможна логическая ошибка.
Ошибка 423. Заблокировано/Locked.
Сервер отказывается обработать запрос, так как один из требуемых ресурсов заблокирован от применения к нему указанного метода.
Ошибка 424. Неверная зависимость/Failed Dependency.
Сервер выдает данную ошибку в случае, когда реализация сервером текущего запроса зависит от другой операции, которая не может быть выполнена
Ошибка 426. Требуется обновление/Upgrade Required.
Сервер запросил обновить протокол соединения, но SSL не поддерживается клиентом.
Ошибка 429. Слишком много запросов/Too Many Requests.
Свидетельствует о большом количестве запросов за короткое время. Часто сопровождается рекомендациями о времени повторных запросов. Может указывать на попытку DDoS-атаки.
Ошибка 451. Недоступно по юридическим причинам/Unavailable For Legal Reasons.
Означает, что доступ к ресурсу был закрыт по юридическим причинам. Это может быть требование органов государственной власти или правообладателей при нарушении авторских прав.
Ошибка 499. Клиент закрыл соединение/Client Closed Request.
Является нестандартным кодом для случаев, когда клиент закрыл соединение, не дождавшись ответа на запрос.
Ошибки класса 5** (500-599).
Данные коды выделены под ошибки на стороне сервера. Они говорят о том, что запрос является корректным, и отвечает всем требованиям сервера, но на данный момент сервер не может его обработать. Обычно, вместе с кодом, отображается объяснение ошибки.
Ошибка 500. Внутренняя ошибка сервера/Internal Server Error.
Данная ошибка отображает любую внутреннюю ошибку сервера, которая не входит в диапазон класса. Сервер не может определить проблему или столкнулся с непредвиденным условием, которое не позволяет ему выполнить запрос.
Ошибка 501. Метод не поддерживается/Not Implemented.
В отличие от ошибки 405, когда используется неправильный метод запроса, данная ошибка свидетельствует, что сервер не распознает метод запроса и не способен его обработать.
Ошибка 502. Ошибка шлюза/Bad Gateway.
Ошибка указывает на недействительное ответное сообщение от вышестоящего сервера в случае, когда запрос проходит через прокси-сервер, и какой-то из серверов в цепочке не может обработать запрос. Это возможно по следующим причинам:
- неисправность сервера;
- отсутствие связи между участками запроса;
- блокирование запроса файерволом;
- неправильная настройка сервера;
- конфликт настроек между серверами.
Ошибка 503. Служба недоступна/Service Unavailable.
Сервер не может обрабатывать запросы из-за временной перегрузки или сервисного обслуживания:
- на сервер одновременно поступило большое количество запросов, и у него не хватает мощности их обработать;
- на сервере проводятся технические работы;
- ограничение на максимальное одновременное подключение пользователей, установленное на сервере превышено.
Также данная ошибка может свидетельствовать о DDoS-атаке или перегрузке сервера из-за недостаточных мощностей сервера.
Ошибка 504. Время прохождения через межсетевой шлюз истекло/Gateway Timeout.
Означает, что сервер, выступающей в качестве прокси-сервера, не дождался отклика от вышестоящего сервера, к которому он обратился для выполнения запроса. Причинами могут быть как слишком короткий таймаут в настройках, так и нестабильное интернет-соединение между серверами или перегрузка сервера запросами.
Ошибка 505. Версия НТТР не поддерживается/Version Not Supported.
Такой ответ можно получить, если сервер не поддерживает версию HTTP-протокола, переданную в заголовке запроса. Обычно ответ содержит объяснение причины.
Ошибка 507. Недостаточно места/Not Extended.
Сервер не может успешно обработать запрос из-за недостатка места на диске. Проблема может носить временный характер.
Ошибка 510. Отсутствуют расширения/Not Extended.
Сервер не может обработать запрос, так как запрашиваемое расширение отсутствует. Вместе с ошибкой можно получить информацию о доступных серверу расширениях.
Вот такой внушительный список получился. И это только стандартные ошибки! В данный список не включены ни экспериментальные, ни черновые. Как показывает практика, самыми распространенными являются ошибки 403, 404, 504, которые легко запомнить. В остальных случаях всегда можно обратиться к блогу LLHOST INC., который еженедельно пополняет вашу “копилку знаний”.
Но это не все преимущества! До 11 ноября 2022 года на все виртуальные и VPN сервера LLHOST INC. действует промокод #httpcodes. Это значит, что любой тарифный план виртуальных серверов (OVS) или VPN серверов (PVS) можно приобрести со скидкой -12% на 3 месяца при ежемесячном платежном цикле. И пусть ошибки вам встречаются как можно реже!
Коды ошибок 400 — это коды состояния HTTP, которые указывают на то, что сервер не понял запрос. Эти ошибки могут быть вызваны недопустимым запросом или могут возникнуть из-за того, что на сервере возникла проблема, и он не смог доставить то, что вы искали.
Проблема в том, что большинство кодов ошибок представлены числом и кратким описанием из нескольких слов. Чтобы помочь тем, кто изо всех сил пытается понять это, я немного расширю описания для большей ясности.
Что вызывает ошибки неверного запроса?
Ошибки неверного запроса возникают по разным причинам, но наиболее распространенной причиной является неправильный ввод пользователем URL-адреса. Это может произойти, когда пользователь неправильно использует косую черту или амперсанд или вообще пропускает часть URL-адреса. Сервер будет изо всех сил пытаться обработать запрос и в конечном итоге вернет код ошибки 400.
Другая возможность заключается в том, что пользователь ввел URL-адрес из внешнего источника и неправильно его скопировал или каким-то образом ошибся. Например, если вы открываете веб-сайт с помощью телефона, а затем вводите адрес веб-сайта, вы можете опечататься в некоторых символах из-за синдрома толстых пальцев (как у меня).
Читайте также
- Различные типы веб-сайтов и способы их создания
- Как перенести ваш сайт на новый веб-хостинг
Менее распространенная причина ошибок неправильного запроса заключается в том, что что-то не так со связью клиент-сервер. Это может быть связано с тем, что либо сервер вообще не понимает, что запрашивает клиент (браузер вашего компьютера), либо он не может выполнить то, что от него требуется, даже если он понимает, что происходит.
Если вы получаете такое сообщение об ошибке 400, попробуйте обновить свою страницу или выполнить другие поиски, пока не найдете тот, который работает правильно, и просто используйте этот URL-адрес вместо того, что вызывает у вас сейчас проблемы.
Знание того, что означают эти ошибки и как их можно решить, поможет вам устранять проблемы с сервером вашего веб-сайта, если вы столкнетесь с ними в будущем, а понимание их определений может помочь при попытке выяснить, почему ваш веб-сайт не доставляет свой контент должным образом. любое время.
Ошибка 400 неверный запрос
Ошибка 400 Bad Request довольно распространена и возникает, когда запрос ресурса (например, попытка доступа к веб-странице или изображению) каким-то образом искажен для сервера и не может предоставить вам ресурс. Это почти то же самое, что ошибка 404 Not Found, но часто возникает в случаях, когда что-то может быть найдено, но считается непригодным для использования клиентом.
Примеры этого кода состояния включают, когда:
- Запрос содержит недопустимый синтаксис или не может быть выполнен;
- Предоставлено лишнее тело сообщения с недопустимым полем заголовка Content-Length, или не было никого, кроме включенного поля заголовка Content-Length;
- Произошла вводящая в заблуждение маршрутизация (например, клиент пытался проксировать через хост, отличный от того, который идентифицируется запрошенным URI); или
- Он терпит неудачу, потому что предыдущий запрос не удался (например, если последовательность запросов не удалась из-за «ожидаемых» ошибок в небезопасной последовательности запросов, тогда может быть уместным ответ 503).
Ошибка 401 Unauthorized
Ответ об ошибке 401 означает, что у вас нет правильных учетных данных для аутентификации, чтобы получить доступ к тому, что вы пытаетесь получить. Этот код состояния HTTP также часто используется при возникновении проблем с аутентификацией клиента с помощью промежуточного прокси-сервера.
402 Требуется оплата
Ошибка 402 означает, что сервер отклонил запрос из-за того, что вы либо не произвели платеж, либо произвели платеж, но не настроили способ оплаты. Обычно вы сталкиваетесь с этой ошибкой, когда тестируете сайт на своем локальном компьютере и еще не заплатили за хостинг. Представьте, что ваш веб-сайт говорит вам: «Сначала заплати мне».
Ошибка 403 Запрещено
Ошибки 403 — еще одна распространенная проблема, возникающая при наличии процессов веб-сервера с недостаточными правами на чтение файлов. Это также может быть вызвано неправильным владением или разрешениями для сценария или папки в корневом каталоге вашего сайта, а также отсутствием надлежащих прав доступа к ресурсу, который находится в вашем веб-пространстве.
Короче говоря, вы получите эту ошибку, если попытаетесь подключиться к URL-адресу с IP-адресом, который представляет вас, но не был назначен (пока) поставщиком услуг Интернета; если такого URL вообще нет; или если такого URL нет и он принадлежит кому-то другому (например, если они удалили свой сайт).
Ошибка 404 не найдено
404 Not Found — это, пожалуй, самый распространенный код ошибки, с которым вы можете столкнуться. Это указывает на то, что сервер не может найти запрошенный ресурс. В идеальном мире каждая ссылка, которую вы нажимаете, или веб-страница, которую вы запрашиваете, имели бы нормальное время отклика и возвращали бы именно то, что вы искали, но в действительности это происходит не всегда.
Если пользователь получает ошибку 404 Not Found при попытке посетить веб-страницу, это означает, что произошло одно из двух:
- Страница больше не доступна на сайте (или никогда не была).
- Произошла ошибка с URL-адресом, например, адрес был написан с ошибкой.
В этом контексте другое слово для слова «сломанный» мертво (как в неработающую ссылку).
Ошибка 405 Метод не разрешен
Код ошибки HTTP 405 Method Not Allowed означает, что по какой-то причине сервер настроен на отклонение определенных методов запроса. Это стандартный ответ HTTP для запросов, которые не разрешены при определенных условиях. Например, если вы пытаетесь отправить форму данных по URL-адресу, но ваш клиент настроен на использование метода GET вместо POST, вы вызовете эту ошибку.
Наиболее вероятная причина, по которой вы получаете это сообщение об ошибке, связана с неправильно настроенными разрешениями на вашем сервере. Если вы пытаетесь исправить эту ошибку на своем веб-сайте, лучшим местом для получения помощи будет ваш хостинг провайдер. Вам нужно спросить, разрешают ли они рассматриваемый метод HTTP.
Вы также можете настроить свой веб-сайт или веб-приложение так, чтобы оно не зависело от одного конкретного HTTP-глагола, установив параметры в своем .htaccess файл.
Ошибка 406 недопустима
Ошибка 406 Not Acceptable — это код ошибки клиента. Сервер ответит этой ошибкой, если он не сможет отправить ответ, который соответствует формату, запрошенному в заголовке запроса. Другими словами, если вы запрашиваете файл JPG, а сервер вместо этого должен отправить вам PDF, он ответит этой ошибкой.
Этот код ошибки встречается нечасто, и некоторые браузеры могут отображать его некорректно.
Код состояния 406 означает только то, что возникла проблема с форматом вашего запроса. Тело сообщения 406 не должно быть включено в ответ, поэтому, если вы его видите, возможно, на вашей стороне что-то не так.
Иногда это может быть вызвано ошибкой браузера или вредоносным ПО в вашей системе, которое заставляет источник каждой страницы загружаться как HTML даже если другие форматы были указаны в ваших предпочтениях. Скорее всего, эта ошибка возникла из-за неправильного запроса URL-адреса (например, ввод «www.examplecom» вместо «www.example.com»).
Ошибка 407 Требуется аутентификация прокси
Ошибка 407 Proxy Authentication Required означает, что сервер не может выполнить запрос, так как у клиента отсутствуют надлежащие учетные данные для аутентификации. Прокси-сервер то есть перехват запроса между клиентом и сервером.
Ошибка 407 часто возникает, когда веб-сайт пытается загрузить контент через прокси-сервер, но не получает авторизации от этого прокси-сервера. Эта ошибка может быть связана с неправильной настройкой параметров Интернета или брандмауэр. Это также может означать, что вы используете компьютер, настроенный в вашей школе или на рабочем месте, и эти объекты блокируют вам доступ к определенным веб-сайтам.
Ошибка 408 Время ожидания запроса
С кодом 408 клиент не отправил запрос в течение времени, которое сервер был готов ждать. Видите ли, когда дело доходит до интернет-общения, машины не обладают терпением людей — они ожидают немедленного ответа. И так как эти машины часто обеспечивают крuciлюбой информации или услуг, они иногда могут быть неумолимы.
Наиболее вероятной причиной ошибки 408 является то, что клиент создал большой запрос (например, загрузку всего operating system), или она может быть произведенаuciнг запрос слишком быстро. Последнее обычно происходит с автоматизированными процессами (например, с ботами).
В обоих случаях время ожидания запроса сервером истекло; он больше не ожидает получения каких-либо дополнительных данных от вашего браузера и закроет ваше соединение, если вы продолжите хранить молчание.
Ошибка 409 Conflict
Конфликт 409 — это код ошибки клиента, который показывает, что возникла проблема с тем, что происходит во время вашей попытки сделать запрос с веб-сервера. Например, чтобы удалить элемент из чьего-либо корзина на сайте электронной коммерции, вам нужно сначала убедиться, что он существует в их корзине, чтобы удалить его.
Если вы попытаетесь отправить запрос DELETE на удаление товара, которого нет в их корзине, это приведет к конфликту 409. Проще говоря, нельзя удалить то, чего нет.
Ошибка 410 Ушла
Код ошибки 410 Gone — это ответ на запрос ресурса, которого больше не существует. Сервер не будет отвечать ни на какие запросы к этому ресурсу, и его следует удалить из кеша клиента.
Этот код ошибки указывает на то, что ресурс был намеренно удален и больше не вернется. Он похож на 404 Not Found, но иногда используется вместо ошибки 404 для ресурсов, которые раньше существовали, но были намеренно удалены.
Ошибка 411 Требуемая длина
Код состояния 411 Length Required указывает, что сервер ожидает поле заголовка Content-Length, содержащее допустимое значение длины в клиентском запросе. Допустимое значение заголовка Content-Length должно присутствовать в запросе и быть равным или больше нуля.
Если запрос POST не включает заголовок Content-Length, вполне вероятно, что пользовательский агент отклонит его с сообщением об ошибке, например, «411 Длина требуется» или «411 отсутствуют обязательные поля».
Ошибка 412 Предварительное условие не выполнено
Код ответа 412 Precondition Failed показывает, что существуют условия, которые еще не выполнены сервером. Сервер должен ответить списком этих предварительных условий (только тех, которые не прошли проверку), используя заголовок Retry-After или отправив код состояния 417 Expectation Failed.
Иногда эта ошибка используется как ответ «ОК» для других типов условий, например, когда пользователь прошел проверку подлинности, но не имеет разрешения на доступ к запрошенному ресурсу. В этом случае обычно предоставляется альтернативное представление ресурса или возвращается 404 Not Found, если такое представление недоступно.
Ошибка 413 Слишком большая полезная нагрузка
Код состояния ответа 413 Payload Too Large указывает на то, что вы пытаетесь попросить сервер выполнить задачу, для которой он не оборудован. Поскольку он знает, что запрос не может быть удовлетворен, он обычно просто сдается и закрывает соединение.
Вы не должны слишком беспокоиться об этой ошибке, потому что обычно она не постоянна. Полезные нагрузки являются динамическими, и серверы будут включать поле заголовка Retry-After, чтобы клиент мог позже выполнить повторный запрос.
Ошибка 414 URI слишком длинный
Ошибка 414 URI Too Long возникает, когда URL-адрес, к которому вы пытаетесь получить доступ или который вы используете, слишком длинный и сервер не может его обработать. Этот код ошибки чаще всего возвращается при использовании Прокси-сервер, особенно если к URL-адресу, к которому вы пытаетесь получить доступ, добавлено много параметров.
В следующем примере показано, как сообщение об ошибке для кода 414 будет возвращено в браузере:
Request-URI Too Long The requested URL's length exceeds the capacity limit for this server.
Ошибка 415: неподдерживаемый тип носителя
Код состояния HTTP 415 Unsupported Media Type означает именно то, что следует из его названия: сервер отказывается принимать запрос клиента, поскольку его тело имеет формат, не поддерживаемый целевым ресурсом.
Эта ошибка часто возникает, когда тело запроса имеет неправильный формат или использует неподдерживаемый тип носителя. Например, запрос POST может содержать данные JSON, но включать заголовок Content-Type, указывающий текст/HTML.
Идеальный способ исправить эту ошибку — добавить поддержку нужного типа носителя или изменить формат вашего тела, чтобы оно соответствовало одному из ваших допустимых типов.
Ошибка 416 Недопустимый диапазон
Если в вашем запросе есть поле заголовка запроса Range, веб-сервер может ответить этой ошибкой. Например, если значения спецификатора диапазона перекрываются и не включают поле заголовка запроса If-Range.
Когда этот код состояния возвращается для запроса диапазона байтов, ответ ДОЛЖЕН включать поле заголовка объекта Content-Range, определяющее текущую длину выбранного ресурса. Вы не должны использовать тип содержимого multipart/byteranges.
Ошибка 417 Ожидание не выполнено
Вы столкнетесь с ошибкой 417 Expectation Failed, когда сервер не может удовлетворить требования поля заголовка запроса Expect. Многие приложения используют этот код в ответ на цифровую подпись или шифрование, используемые в сообщениях, и должны включать ожидание того, как обрабатывать такое сообщение.
Затем клиенту дается указание не повторять запрос без изменений; в противном случае он будет продолжать получать код состояния 417.
Ошибка 418 я чайник
Для тех, кто считает, что у разработчиков нет чувства юмора, ошибка 418 Я чайник, кажется, предназначена для того, чтобы доказать их неправоту. Эта ошибка возвращается, когда HTTP-клиент пытается заварить кофе с помощью чайника, потому что подключенный чайник на самом деле является чайником — коротким и толстым.
Код ошибки является частью традиционного Первоапрельские шутки IETF, в RFC 2324, Протокол управления гипертекстовым кофейником. Кстати, это не реально. Я включил его только потому, что некоторые из вас нашли его в Google.
Ошибка 421 Неверный запрос
Ошибка 421 возникает, когда сервер отказывается направлять запрос. Это может произойти по нескольким причинам, в том числе
- Клиент отправил запросы на неверный порт.
- Запрос может быть направлен на другой сервер.
- Сервер может быть не в состоянии понять запрос.
- Сервер может быть не в состоянии интерпретировать запрос.
Ошибка 422 Необрабатываемый объект
422 Unprocessable Entity — это ошибка клиента, и обычно она указывает на то, что сервер не смог обработать запрос по разным причинам. Одна из распространенных вероятностей заключается в том, что запрос был неправильно сформирован. Также возможно, что сервер ведет себя плохо и отправляет сообщения об ошибках, которые не следует отправлять.
Если вы получаете ошибку 422 Unprocessable Entity в ответ на конкретный запрос, ее невозможно исправить, просто изменив параметры запроса. Это просто означает, что весь ваш запрос не может быть обработан сервером приложений по причинам, упомянутым выше.
Это может произойти, когда вы пытаетесь получить доступ к конечной точке с помощью методов PUT или POST по неподдерживаемому URL-адресу.
Ошибка 423 Заблокировано
423 Заблокированные ошибки — это подмножество ошибок 400 Bad Request, что означает, что клиент отправил серверу запрос, который является синтаксически неверным. Эти ошибки очень похожи на коды ошибок 401 Unauthorized (или 403 Forbidden), но в этом случае аутентификация не поможет. Хотя оба они отражают сбой авторизации, между ними есть существенная разница.
При ошибке 401 Unauthorized сервер сообщает клиенту, что ему не хватает возможности авторизовать клиент для доступа. Заголовки ответа будут включать что-то вроде WWW-Authenticate: Basic realm=»Restricted Area», и когда ваш браузер увидит этот заголовок, он запросит у вас имя пользователя и пароль, если вы их еще не ввели.
Если вы введете их правильно, ваш браузер повторно отправит исходный запрос с заголовком авторизации (например, авторизация: Basic eFVzdEp0EYB0).
Напротив, при ошибке 423 Locked такая повторная отправка невозможна, потому что даже ввод действительных учетных данных не позволит авторизоваться больше, чем они делают в настоящее время — отсюда и название «Locked» — потому что это все равно будет запрещено.
Заголовки ответа будут включать в себя что-то вроде «Разрешить: ПОЛУЧИТЬ ОПЦИИ ЗАГОЛОВКА ОТПРАВКИ»; разрешая эти методы, но не «PATCH» или «DELETE» — они заблокированы на этом ресурсе.
Ошибка 424 Неудачная зависимость
Этот код ошибки похож на 503 Service Unavailable, за исключением того, что серверу не удалось выполнить запрос, потому что запрос зависит от другого запроса, и этот запрос не удался. Клиент не должен повторять один и тот же запрос без изменений.
Например, пользователь пытается выполнить действие двумя способами; один метод требует аутентификации, а другой нет. Если пользователь не аутентифицирован, он получит этот код ошибки в качестве ответа.
Ошибка 425 Слишком рано
Код ошибки 425 Too Early возвращается сервером, который не готов обработать запрос. Это может быть связано с тем, что сервер занят или он получил запрос, который не может обработать. Другая возможность заключается в том, что клиент использовал устаревшую информацию для составления своего первоначального запроса, и с тех пор это изменилось.
Ошибка 426 Требуется обновление
Если возникает ошибка 426, это означает, что сервер отказывается обрабатывать запрос на основе выбранного протокола. «Обновление» до другого протокола может быть одобрено и обработано. Ошибка 426 будет содержать информацию о том, какие протоколы ей нужны.
Например, при запросе страницы браузер может получить ответ 426 о том, что он должен использовать HTTPS вместо HTTP.
Ошибка 428 Требуется предварительное условие
Статус 428 Precondition Required означает, что для выполнения запроса необходимо выполнить условия. Большинство серверов используют это, чтобы избежать проблема с «потерянным обновлением». Это происходит, когда клиент получает состояние ресурса, модифицирует его и заменяет на сервере.
Тем временем состояние модифицируется кем-то другим — следовательно, возникает конфликт. Представьте, что два человека борются за право использовать одну и ту же страницу в блокноте.
Веб-серверы используют условия, чтобы убедиться, что все, кто с ними работает, имеют правильные копии модифицируемых состояний. Чтобы инициировать предварительную проверку, вы должны включить в свой запрос поле заголовка «If-Match» или «If-Unmodified-Since». Например:
GET /test HTTP/1.1 If-Match: "747060ad8c113d8af7ad2048f209582f
Ошибка 429 Слишком много запросов
Ошибка HTTP 429 Too Many Requests возникает из-за того, что сервер отклоняет HTTP-запрос, поскольку клиент отправил слишком много запросов за заданный промежуток времени. Эта ошибка обычно вызвана какой-либо системой ограничения скорости, такой как Cloudflare Ограничение скорости или Скрипт защиты от DDoS.
Пределы скорости будут различаться, поэтому нет никакого реального способа предсказать это, если только вы не управляете ограничителем. Однако, пока вы продолжаете пытаться продвигать это, существует высокая вероятность того, что ваш IP-адрес в конечном итоге будет заблокирован.
Ошибка 431 Слишком большие поля заголовка запроса
Код состояния 431 просто означает, что поля заголовка, которые вы отправляете на сервер, слишком велики. Это также может означать, что поле заголовка неисправно. В последнем случае в представлении ответа обычно указывается слишком большое конкретное поле заголовка.
Ответы с кодом состояния 431 могут использоваться исходными серверами, чтобы указать, что запрос может быть небезопасным или неуместным. Ответ должен содержать метаданные, описывающие, почему такое действие не может быть выполнено.
Ошибка 451 Недоступно по юридическим причинам
Если содержимое недоступно по юридическим причинам, будет сообщено об ошибке HTTP 451. Если вы получили этот код ошибки, вам следует обратиться к администратору сервера, который может предоставить дополнительную информацию о том, что вызвало проблему и как ее можно решить.
Поскольку эта ошибка связана с цензурой и юридическими проблемами, имеет смысл, что любые запросы, приводящие к ошибке 451, чаще всего будут возвращать общее сообщение о том, что ресурс недоступен по юридическим причинам.
Исправление 400 кодов ошибок
Способ исправления кода ошибки 400 зависит от того, являетесь ли вы пользователем или владельцем веб-сайта. Для пользователей вам не нужно ничего делать, кроме как обновить страницу или повторить попытку позже. Если это не сработает, вам нужно будет связаться с владельцем/администратором веб-сайта, чтобы исправить это.
Если вы являетесь владельцем веб-сайта и получили этот код ошибки в своем терминале, вам нужно понять несколько вещей. Во-первых, многие коды ошибок 400 могут быть вызваны неправильным написанием кода в файлах вашего сервера. Вам нужно будет понять, что означают эти различные ошибки, и найти правильный способ их исправления.
Заключение
400 ошибок могут вызвать много разочарований, но, к счастью, их очень легко исправить, если вы понимаете, чего хочет веб-сервер. К счастью, каждая ошибка уникальна и будет иметь свои собственные сообщения о состоянии в вашем браузере. Это должно позволить вам выяснить, почему запрос не удался, и как вы можете это исправить.
Если у вас по-прежнему возникают проблемы с неразрешенным запросом, попробуйте обратиться в службу поддержки вашего хостинга или попробовать другой браузер, поскольку некоторые браузеры могут по-разному обрабатывать определенные запросы.
Читать далее
- Дешевые предложения веб-хостинга (менее 5 долларов в месяц)
- Как оптимизировать сайт для лучшего ранжирования в поиске
Может сейчас эта тема не особо вас волнует, однако протяжении существования вашего сайта вы будете сталкиваться с кодами ответов сервера или «списком кодов состояния HTTP», связанных с различными элементами функциональной составляющей вашего сайта. Довольно часто встречаются такие ошибки, как 404 и 301, но существует огромное множество других ошибок, с которыми вы, возможно, не знакомы. Прежде чем паниковать, лучше прочтите эту статью, призванную рассказать вам о значения кодов различных ошибок, которые могут встретиться на вашем пути.
Некоторые из них напрямую связаны с сервером или с клиентской стороной, а некоторые уже не актуальны, поэтому вы вряд ли их увидите в реальной жизни, но ради интереса и фоновых знаний я включил и их.
Ниже представлена удобная таблица, при помощи которой вы сможете быстро и просто перейти к интересующей вас ошибке, и узнать ее значение:
100 | 301 | 405 | 417 | 450 |
101 | 302 | 406 | 418 | 451 |
102 | 303 | 407 | 422 | 500 |
200 | 304 | 408 | 423 | 501 |
201 | 305 | 409 | 424 | 502 |
202 | 306 | 410 | 425 | 503 |
203 | 307 | 411 | 426 | 504 |
204 | 400 | 412 | 428 | 505 |
205 | 401 | 413 | 429 | 506 |
206 | 402 | 414 | 431 | 507 |
207 | 403 | 415 | 444 | 509 |
300 | 404 | 416 | 449 | 510 |
1xx Информационные коды
- 100 Continue Server Code
100 Continue означает «работу в штатном режиме». Он означает, что пользователем был сделан хороший запрос, и сервер принялся к обработке. Это временный код ответа, имеющий место лишь тогда, когда пользователь ожидает финального ответа от сервера, который происходит только после того, как будет отослан последний пакет данных.
Когда этот код может использоваться? Это внутренний код, и иногда он даже не генерируется, если пользователь уже получил какие-то данные от сервера. Это нечто вроде послания к серверу о том, что соединение было установлено успешно, и двери открыты. Высылай данные, но не забудь закрыть дверь, когда закончишь дела (имеется в виду код финального ответа).
Вернуться в начало
- 101 Switching Protocols
Это, наверное, один из самых простых серверных кодов, который означает, что пользователь сделал запрос на переключение типа протокола, используемого на веб-сервере, и сервер дал согласие на это.
Когда этот код может использоваться? При переключении на новую версию HTTP с протокола старого типа. Этот запрос выполняется только при наличии более подходящего протокола (иными словами, при наличии более свежей версии HTTP).
Вернуться в начало
- 102 Processing
Так как WebDAV-запрос (протокол передачи) может содержать не только один запрос, но также множество подзапросов, включая операции с файлами, он зачастую может затребовать более длительного времени для завершения запроса.
Когда этот код может использоваться? Этот код генерируется для того, чтобы оповестить пользователя и необходимости сбросить таймер и ожидать следующей команды в обычном режиме, так как процесс обработки запроса может занять длительное время.
Вернуться в начало
2xx Success
Сообщения данного класса информируют о случаях успешного принятия и обработки запроса клиента. В зависимости от статуса сервер может ещё передать заголовки и тело сообщения. Иначе говоря, данная классификация кодов обозначает, что действие, запрошенное клиентом, было успешно принято в обработку.
- 200 OK
Этот код, вероятно, является самым популярным, но при этом самым незаметным ввиду его характера. Он означает, что обмен между пользователем и сервером завершен, и все прошло так, как должно было.
- 201 Created
В результате успешного выполнения запроса был создан новый ресурс. Например, запрос пользователя привел к созданию нового ресурса вроде новой страницы. Сервер-источник должен создать ресурс перед тем, как отправлять код 201. Если ресурс не может быть создан в данный момент, то сервер вместо этого должен отобразить код 202 (accepted).
Вернуться в начало
- 202 Accepted
Запрос был принят на обработку, но она не завершена по каким-либо причинам. Запрос может и не быть выполнен до конца, в зависимости от того, был ли он отклонен в процессе обработки.
Когда этот код может использоваться? Когда сервер не может выполнить запрос в тот момент, в который он был сделан. Запрос изначально не рассчитан на обязательное исполнение, и клиенту не обязательно дожидаться окончательной передачи сообщения, так как может быть начат очень долгий процесс.
Вернуться в начало
- 203 Non-Authoritative Information
Сервер успешно обработал запрос, но передаваемая информация была взята не из первичного источника (резервной копии, другого сервера и т. д.) и поэтому может быть неактуальной. По сути, этот код очень похож на 200, но указывает на то, что информация была получена не из первоисточника.
Когда этот код может использоваться? Этот код может быть использован вместо 200, когда у отправителя есть причина полагать, что заголовки ответа от постороннего источника могут отличаться от того, что предоставил бы исходный сервер.
Вернуться в начало
- 204 No Content
Этот код представляет собой ответ, посланный сервером для того, чтобы сообщить, что запрос был получен и понят, но отсутствуют данные, которые можно было отправить пользователю. Это, главным образом, используется для того, чтобы разрешить запуск скриптов, не меняя при этом документ. Данный код не должен содержать тело сообщения, и включается в первую пустую строку кода сразу после заголовка.
Когда этот код может использоваться? Этот код, главным образом, используется для того, чтобы позволить осуществить ввод или какие-либо действия без необходимости обновлять документ (страницу).
Вернуться в начало
- 205 Reset Content
Сервер успешно обработал запрос, но при этом не возвращает какой-либо контент. В отличие от 204, этот ответ требует от запрашиваемого обновить документ.
Когда этот код может использоваться? Обычно он используется тогда, когда пользователь заполняет форму, а сервер посылает браузеры запрос на очистку формы. Он схож с кодом 204, но просит пользователя сбросить документ после завершения – например, очистить HTML-форму после подтверждения.
Вернуться в начало
- 206 Partial Reset
Сервер возвращает лишь часть контента, соответствующего заголовку, посланному клиентом. Обычно он используется расширенными инструментами кэширования, когда пользователь запрашивает лишь небольшую часть контента на странице, и сервер в своем ответе предоставляет данные лишь для этой области на странице.
Когда этот код может использоваться? Этот кода обычно используется вследствие запрос If-Range, который применяется в мощных валидаторах кэша. Запрос также должен включать заголовки области, которые используется в качестве параметров диапазона возвратной информации.
Вернуться в начало
- 207 Multi-Status
Сервер передаёт результаты выполнения сразу нескольких независимых операций, которые помещают в тело сообщения в виде XML-документа.
Вернуться в начало
3хх Перенаправление
Этот класс кодов состояния указывает на дальнейшие действия, которые должны быть предприняты агентом пользователя для того, чтобы завершить запрос. Действия могут производиться пользователей, либо могут включать в себя различные запросы к серверу.
- 300 Multiple Choices
В основном, этот код сообщает пользователю о том, что ресурс был перемещен, и сервер отвечает списком доступных альтернативных вариантов, среди которых пользователь может выбрать наиболее подходящий ему ресурс.
Когда этот код может использоваться? Обычно этот код можно увидеть, когда сервер считает, что предоставленный пользователем (другими словами, браузером пользователя) URL имеет недостаточно точный указатель, и предлагает дальнейший выбор. Обычно это происходит тогда, когда пользователь использует URL на директорию не самого последнего уровня, и сервер предлагает ему выбор имеющихся файлов или директорий последующего уровня.
Вернуться в начало
- 301 Moved Permanently
Это довольно распространенный пользовательский запрос. Он означает, что запросы для данного ресурса (а также все последующие запросы) должны быть перенаправлены на заданный URL.
Когда этот код может использоваться? Когда страница более не существует, либо ссылка, ведущая на сторонний источник, уже не работает. 301 редирект сообщает пользователю о том, что запрашиваемый ресурс был перемещен (обычно это реализуется при помощи файла .htaccess, доступного на серверах Apache).
Вернуться в начало
- 302 Found
Этот код сообщает пользователю, что расположение запрашиваемого ресурса временно изменено, и 302 код состояния должен содержать информацию о новом месторасположении, которое пользователь и должен запросить.
Когда этот код может использоваться? У этого кода есть несколько применений, многие из которых не являются тем, для чего код был изначально предназначен. Изначально он представлял собой основной способ создания временного перенаправления. Тем не менее, сегодня существуют и другие – этичные, и неэтичные – способы его применения.
Вернуться в начало
- 303 See Other
Этот код указывает пользователю на то, что запрашиваемый ресурс можно найти по URL, который отличается от указанного в запросе. Это не обязательно означает, что что-то было перемещено, это код лишь предоставляет адрес, по которому следует запрашивать подобный ответ.
Когда этот код может использоваться? Этот метод главным образом существует для того, чтобы позволить выводу данных POST-активированного скрипта перенаправить агента пользователя к выбранному ресурсу.
Вернуться в начало
- 304 Not Modified
Этот код означает, что пользователь запрашивает документ/ресурс только в том случае, если он подвергался изменениям с момента последнего обновления кэша данного документа.
Когда этот код может использоваться? Если в ответе от сервера сообщается о том, что параметры документа If-Modified-Since или If-Match не менялись с момента создания последнего кэша, то нет необходимости в повторной отправке ресурса.
Вернуться в начало
- 305 Use Proxy
Этот код сообщает пользователю, что доступ к запрашиваемому ресурсу возможен только посредством прокси, указанного в ответе.
Когда этот код может использоваться? Этот код часто отображается в связи с мерами безопасности, и предоставляет доступ к запрашиваемым URL-ресурсам.
Вернуться в начало
- 306 Switch Proxy
Этот код изначально означал «последующие запросы должны использовать указанный прокси», но в данный момент не используется и зарезервирован.
Вернуться в начало
- 307 Temporary Redirect
Этот код возвращается, если ресурс на данный момент временно доступен по другому URL, который также предоставляется в ответе. Этот код немного отличается от кода 302 – он представляет собой более определенную версию кода 302.
Когда этот код может использоваться? Он используется практически в тех же случаях, что и 302, но пользователь должен продолжить запросы по исходному URL при следующих запросах, либо до тех пор, пока не будет применен новых код ответа.
Вернуться в начало
4хх Ошибка клиента
Класс кодов 4xx предназначен для указания ошибок со стороны клиента, либо на то, что локации никогда (или уже) не существовало. Эти коды состояния применимы к любому методу запроса.
- 400 Bad Request
Запрос не может быть исполнен ввиду синтаксической ошибки.
Когда этот код может использоваться? Когда пользователь запрашивает информацию, но делает это, пренебрегая правилами протокола передачи гипертекста. Запрос не следует повторять без изменения синтаксиса.
Вернуться в начало
- 401 Unauthorized
Этот код связан с запросом к ресурсу, который требует авторизации. Ответ 401 указывает на то, что попытка авторизации была отклонена по тем данным, которые предоставил пользователь.
Когда этот код может использоваться? Когда пользователь совершает запрос к серверу, используя неправильные данные авторизации (имя пользователя и/или пароль).
Вернуться в начало
- 402 Payment Required
Зарезервирован на будущее. Тем не менее, исходное предназначение заключалось в том, что данный код мог использоваться в некоторой форме электронных денег для проведения трансакций, но этого не случилось, и коду не нашлось применения.
Когда этот код может использоваться? Старый сервис MobileMe от Apple выдавал ошибку 402, если аккаунт пользователя в MobileMe подозревался в злоупотреблении сервисом. Кроме того, Youtube использует это состояние, если конкретный IP-адрес уличен в совершении чрезмерного числа запросов, и тогда пользователю необходимо ввести CAPTHA.
Вернуться в начало
- 403 Forbidden
Пользователь пытается осуществить доступ к ресурсу, к которому у него нет доступа, и авторизация не изменит положения.
Когда этот код может использоваться? Когда сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе для клиента к указанному ресурсу. Обычно такое случается, когда ресурс не предназначен для публичного доступа.
Вернуться в начало
- 404 Not Found
Все знакомы с этим кодом, не так ли? Он означает, что запрошенный ресурс не может быть найден, но в будущем – когда он, возможно, там появится, – к нему можно будет осуществить доступ. Также здесь допустимы последующие запросы от клиента. Тем не менее, в большинстве таких случаев применяется код перенаправления из семейства 3хх, и пользователя перенаправляют на альтернативный ресурс или локацию.
Когда этот код может использоваться? Довольно часто, особенно если страницу переместили или удалили. Зачастую в подобных случаях сервер автоматически генерирует направляющую страницу с ошибкой 404.
Вернуться в начало
- 405 Method Not Allowed
Метод, при помощи которого совершается запрос к ресурсу, не доступен. Другими словами, ошибка возникает при попытке использовать GET на форме, которая требует ввод данных посредством POST, либо использовании метода PUT на ресурсе, который предназначен только для чтения.
Когда этот код может использоваться? Ошибки 405 встречаются в связи с конкретными объектами на веб-странице, для которых был совершен запрос. Например, когда строка запроса в скрипте отличается от пользовательского запроса, в котором подразумевается использование этого скрипта.
Вернуться в начало
- 406 Not Acceptable
Запрошенный ресурс способен генерировать только тот контент, который не применим к Accept-заголовкам в самом запросе. Браузер способен указывать серверу характеристики данных, которые данные будут принимать от сервера
Когда этот код может использоваться? Если форма файла запрошенного ресурса не совпадает с форматом, который пользователь способен распознать. Мы говорим сейчас о языке программирования, а не о французском!
Вернуться в начало
- 407 Proxy Authentication Required
Как и код состояния 401, код 407 означает, что клиент сначала должен авторизоваться через прокси. Чтобы сделать это и авторизоваться, прокси должен вернуть поле с заголовком proxy-authenticate, который отвечает требованиям, представленным сервером.
Когда этот код может использоваться? Когда сервер думает, что запрос данных от клиента корректным, но доступ к ресурсу возможен только посредством авторизации через прокси-сервер.
Вернуться в начало
- 408 Request Timeout
Время ожидания сервером передачи от клиента истекло.
Когда этот код может использоваться? Руководствуясь спецификацией W3 HTTP: «Клиент не сделал запрос в отведенный промежуток времени, который сервер был готов ждать. Клиент МОЖЕТ повторить запрос когда угодно».
Вернуться в начало
- 409 Conflict
Указывает на то, что запрос не может быть выполнен из-за конфликтного обращения к ресурсу.
Когда этот код может использоваться? Вы можете получить такой код при загрузке файла на веб-сервер, где уже имеется более свежая версия этого файла, что приводит к конфликту в системе контроля версий.
Вернуться в начало
- 410 Gone
Такой ответ сервер посылает, если ресурс раньше был по указанному URL, но был удалён и теперь недоступен. Пользователю не следует повторять идентичный запрос.
Когда этот код может использоваться? Если более невозможно осуществить доступ к ресурсу посредством данного запроса, и сервер не владеет информацией о возможном месте расположения ресурса. Если у сервера есть подозрение, что документ в ближайшее время может быть восстановлен, то лучше клиенту передать код 404.
Вернуться в начало
- 411 Length Required
Запрос не указывает длину контента, и это было затребовано в совершенном запросе.
Когда этот код может использоваться? Когда браузер не определяет длину запрашиваемого контента в заголовке запроса. Сервер не примет запрос без валидного поля заголовка content-length.
Вернуться в начало
- 412 Precondition Failed
Сервер не отвечает одному из предварительных условий, которые отправитель указал в запросе. Другими словами, один или более заголовок запроса был возвращен с атрибутом false.
Когда этот код может использоваться? Если заголовок запроса, который совершает валидный запрос к ресурсу, сообщает, что этот конкретный запрос не применим к этому конкретному ресурсу.
Вернуться в начало
- 413 Request Entity Too Large
Код 413 отображается в тех случаях, когда сервер отказывается обработать запрос по причине слишком большого размера тела запроса.
Когда этот код может использоваться? При использовании в форме метода POST с контентом, по размеру большим, нежели сервер способен обработать.
Вернуться в начало
- 414 Request-URL Too Long
Этот код отображается, когда сервер не может обработать запрос из-за слишком длинного указанного URL.
Когда этот код может использоваться? Когда POST-запрос конвертируется в GET-запрос. POST-запрос поддерживает отправку безграничного объема данных, связывая их с самим запросом. Тем не менее, если запрос должен быть конвертирован в GET-запрос, то запрос позволяет привязать данные формы к URL, что позволяет проводить информацию в больших размерах, чем это было доступно.
Вернуться в начало
- 415 Unsupported Media-Type
Ответ 415 отправляется для указания о том, что сервер заметил, что часть запроса была сделана в неподдерживаемом формате.
Когда этот код может использоваться? Когда в запросе не указываются какие-либо типы медиа, которые поддерживаются ресурсом или сервером. Например, пользователь запрашивает изображение с расширением файла, которое не поддерживается сервером. Сервер знает о том, что было запрошено, но не понимает формат, в котором был запрошен ресурс.
Вернуться в начало
- 416 Requested Range Not Satisfiable
Этот ответ приходит пользователю, когда тот запрашивает часть запрашиваемого ресурса, когда эта часть не может быть предоставлена.
Когда этот код может использоваться? Когда у сервера запрашивают XXX-YYY байтов какого-либо ресурса, но ресурс имеет меньший размер, чем указано в запросе.
Вернуться в начало
- 417 Expectation Failed
Этот ответ может быть получен, когда по каким-то причинам сервер не может удовлетворить значению поля Expect заголовка запроса.
Когда этот код может использоваться? Все вполне и так понятно. Когда один из заголовков запроса, заголовок «Expect», имеет запрос, на который сервер не может предоставить ответ.
Вернуться в начало
- 418 I’m a teapot
Этот код был создан в 1998 году как одна из традиционных первоапрельских шуток IETF, в RFC 2324, Hyper Text Coffee Pot Control Protocol, и вряд ли будет обрабатываться современными HTTP-серверами.
- 422 Unprocessable Entity
Запрос был принят и понят, но не может быть выполнен ввиду наличия семантических ошибок.
Когда этот код может использоваться? Когда сервер успешно принял запрос, может работать с указанным видом данных, в теле запроса XML-документ имеет верный синтаксис, но имеется какая-то логическая ошибка, из-за которой невозможно произвести операцию над ресурсом.
Вернуться в начало
- 423 Locked
Целевой ресурс из запроса заблокирован от применения к нему указанного метода. Чтобы ресурс стал доступным, необходимо снять блокировку или предоставить правильные данные авторизации.
Когда этот код может использоваться? Когда ресурс… закрыт. Обычно это случается из соображений безопасности.
Вернуться в начало
- 424 Failed Dependency
Указывает на то, что реализация текущего запроса может зависеть от успешности выполнения другой операции, и если она не будет успешно проведена, вся обработка запроса будет прервана.
Вернуться в начало
- 425 Unordered Collection
Этот код отображается, когда ресурс определен в черновиках «WebDAV Advanced Collections Protocol», но не присутствует в «Web Distributed Authoring and Versioning Ordered Collections Protocol».
Вернуться в начало
- 426 Upgrade Required
Этот код отображается, когда сервер указывает клиенту на необходимость обновить (переключиться на другой, более новый) протокол. Когда этот код может использоваться? Обычно когда браузер использует устаревшие протоколы.
Вернуться в начало
- 428 Precondition Required
Сервер-источник требует, чтобы в запросе были указаны предварительные условия. Этот код предназначен для того, чтобы избежать конфликта версий ресурса в тех случаях, когда клиент получает (GET) состояние ресурса, изменяет его, и отправляет (PUT) обратно на сервер, и в то же время какая-то третья сторона также изменяет положение ресурса прямо на севере, что приводит к конфликту.
Когда этот код может использоваться? Запрашивая указание условий, сервер как бы гарантирует клиентам то, что они используют корректные актуальные копии ресурс. Если же это не соответствует действительно, пользователь получит ошибку 428.
Вернуться в начало
- 429 Too Many Requests
Этот ответ посылается, если клиент попытался отправить слишком много запросов за короткое время.
Когда этот код может использоваться? Когда пользователь посылает слишком много запросов за короткий промежуток времени.
Вернуться в начало
- 431 Request Header Fields Too Large
Происходит, когда сервер не собирается обрабатывать запрос, так как какое-то из полей заголовка (или все поля заголовков) слишком большое.
Когда этот код может использоваться? В основном тогда, когда заголовок запроса от пользователя больше, чем сервер способен обработать. Запрос может быть повторен после того, как будет уменьшен размер полей заголовков в запросе.
Вернуться в начало
- 444 No Response
Использовался в лог-файлах Nginx для указания того, что сервер не вернул информацию пользователю и закрыл соединение.
Когда этот код может использоваться? Обычно использовался в качестве сдерживающего фактора против вредоносного ПО.
Вернуться в начало
- 449 Retry With (Microsoft)
Расширение Microsoft, которое указывает на то, что запрос должен быть повторен после применения подходящего действия.
Когда этот код может использоваться? Этот код зачастую генерируется, когда выставленные параметры запроса не соответствуют тем, что может принять сервер.
Вернуться в начало
- 450 Blocked by Windows Parental Controls (Microsoft)
Расширение Microsoft. Эта ошибка выдается, когда параметры Windows Parental Controls выставлены на блокировку доступ к определенным веб-страницам.
Когда этот код может использоваться? Когда родители (зная об этой функции) используют родительский контроль, и id-доступа запросил доступ к заблокированному ресурсу.
Вернуться в начало
- 451 Unavailable For Legal Reasons
Новый HTTP-код состояния для ресурсов, которые заблокированы из юридических соображений. Используется для указания на то, что доступ к запрашиваемому ресурсу был заблокирован из юридических соображений: например, цензурой, или правительством.
Вернуться в начало
5xx Ошибка сервера
Коды 5xx выделены под случаи неудачного выполнения операции по вине сервера.
Эти серверные ответы зачастую отображаются, когда пользователь делает запрос, который сервер не в состоянии обработать по той или иной причине. Сервер должен включать сообщение для браузера, которое должно быть показано пользователю – в нем сообщается, что сервер (и по каким причинам) не способен обработать запрос.
- 500 Internal Server Error
Данная ошибка говорит о любой внутренней ошибке сервера, которая не входит в рамки остальных ошибок класса.
Когда этот код может использоваться? Когда ресурс или ссылка создаются на сервере (вроде календаря в системе бронирования), которые технически не существуют в виде ссылки или доступного ресурса, но показывается пользователю в виде ссылки.
Вернуться в начало
- 501 Not Implemented
Сервер либо не понимает метод в запросе, либо не поддерживает возможностей, необходимых для обработки запроса
Когда этот код может использоваться? Вы можете столкнуться с этим, когда сервер не поддерживает нормальные протоколы запроса, вроде GET, OPTIONS, HEAD, POST и т.д.
Вернуться в начало
- 502 Bad Gateway
Ответ 502 отображается, когда сервер, выступая в роли шлюза или прокси-сервера, получил недействительное ответное сообщение от вышестоящего сервера.
Когда этот код может использоваться? Обычно, когда вышестоящий сервер и прокси-сервер/шлюз не согласовывают между собой протоколы, представленные в запросе, и в результате получается ошибка при обмене данных.
Вернуться в начало
- 503 Server Unavailable
Сервер временно не имеет возможности обрабатывать запросы по техническим причинам. В основном, это состоянии является временным.
Когда этот код может использоваться? Когда сайт пользуется чрезмерным спросом, и сервер не в состоянии обработать все запросы.
Вернуться в начало
- 504 Gateway Timeout
Сервер в роли шлюза или прокси-сервера не дождался ответа от вышестоящего сервера для завершения текущего запроса.
Когда этот код может использоваться? Когда для передачи данных используется прокси-сервер/шлюз, и два сервера ждут ответов.
Вернуться в начало
- 505 HTTP Version Not Supported
Сервер не поддерживает указанную в запросе версию протокола HTTP.
Когда этот код может использоваться? В случаях, описанных выше! Когда HTTP-протокол более старый, нежели требуется серверу, и следовательно не поддерживается.
Вернуться в начало
- 506 Variant Also Negotiates
Такой ответ посылается, когда в результате ошибочной конфигурации выбранный вариант указывает сам на себя, из-за чего процесс связывания прерывается.
Когда этот код может использоваться? Когда сервер настроен некорректно, и не способен обработать запрос.
Вернуться в начало
- 507 Insufficient Storage
Когда сервер не способен разместить данные, так как не хватает места для выполнения текущего запроса.
Когда этот код может использоваться? Когда сервер уже полностью загружен, и пользователь совершает запрос на ресурс, который сервер уже имеет в запасе. Проблема заключается в том, что на сервере нет места для того, чтобы поместить данные, которые посылаются в запросе, чтобы затем выслать запрашиваемый ресурс.
Вернуться в начало
- 509 Bandwidth Limit Exceeded
Этот код ответа используется при превышении веб-площадкой отведённого ей ограничения на потребление трафика.
Когда этот код может использоваться? Когда на сервере Apache выполняется корректное расширение, и в ISP установлен уровень пропускного канала, который скоро может быть превышен. Существует несколько опций предела.
Вернуться в начало
- 510 Not Extended
Когда на сервере отсутствует расширение, которое желает использовать клиент. Когда этот код может использоваться? Когда сервер требует больше информации в совершаемом запросе.
Вернуться в начало
- 511 Network Authentication Required
Данный код состояния отображается в случае, если клиент должен сначала авторизоваться в сети, например, ввести пароль для платной точки доступа к Интернету.
Когда этот код может использоваться? Когда пользователь предварительно должен дать свое согласие на условия использования, перед тем, как он получит доступ к интернету (например, к Wi-fi точке доступа).
Итак, надеюсь, что данный список хоть как-то окажется вам полезным. Если я упустил что-то из виду, пожалуйста, допишите информацию в комментариях, и я обязательно включу ее в статью. Пожалуйста, не забудьте поделиться этой статье с друзьями, чтобы они также были в курсе.
Вернуться в начало
Практически каждый сталкивался с ситуацией, когда в ответ на попытку открыть сайт, загрузить файл или приложение браузер выдает ошибку, например, 404 – Not Found. Каждая ошибка имеет свой код – трехзначное число, по которому можно определить, что именно произошло с запросом.
На самом деле веб-сервер высылает трехзначные коды в ответ на любое обращение браузера к нему, даже если запрос обработан успешно. Но обычный пользователь сталкивается только с кодами, обозначающими ошибку обработки запроса, а успешные и информационные ответы сервера остаются для него невидимыми.
В этой статье мы разберем, какие виды ошибок зашифрованы в ответах и почему эти ошибки возникают.
Ошибки 4xx (400-414)
Ответы с кодами от 400 до 414 называют «ошибками на стороне клиента». Сервер дает понять, что что-то не так с самим запросом. Несмотря на классификацию, такие ошибки часто необходимо исправлять вебмастеру, а не пользователю. Их причиной могу быть неправильные настройки веб-сервера, скриптов сайта и т. п.
Ошибка 400
Расшифровывается как «неверный запрос». Код ошибки 400 говорит о том, что запрос составлен неправильно, и сервер не может его понять. Если вы формируете запрос вручную, то, возможно, указали неверный URL. Но чаще всего запрос повреждается в результате технического сбоя или искажения данных при передаче. Это может произойти по нескольким причинам:
- передача данных блокируется антивирусом или брандмауэром Windows;
- данные искажаются при нестабильном соединении;
- клиент (браузер или приложение) пытается загрузить слишком большой файл;
- повреждены или устарели куки на стороне пользователя.
Ошибка 401
Пояснение – «не авторизовано». Код ошибки 401 означает, что запрос направлен к защищенным ресурсам, для которых требуется аутентификация. Сервер ожидает получить логин и пароль, но в запросе их нет.
Ошибка 403
Ответ означает «Запрещено». У пользователя нет прав на доступ к файлам или папкам по ссылке. Чаще всего вебмастеру исправлять ничего не нужно, все настроено верно. А вот пользователю необходимо проверить, правильно ли он указал адрес страницы. Иногда из-за опечатки ссылка ведет в запрещенную для просмотра папку, а не на страницу сайта.
Если же пользователь не может попасть на страницу, которая должна быть разрешена к просмотру, то, возможно, в настройках сайта или внутренних ссылках есть ошибки, которые нужно исправить разработчику.
Ошибка 404
Самый популярный код ошибки – 404. Переводится как «не найдено». Такой ответ сервер отсылает, если не находит документ, файл или страницу по указанному пользователем адресу. Возможные причины:
- страница, которая ранее размещалась по этой ссылке, перемещена или удалена навсегда. В этом случае для SEO-продвижения будет лучше, чтобы сервер отдавал ответы с кодами 410 или 301, а не обрабатывал запрос как 404 ошибку. Вебмастеру нужно об этом позаботиться;
- страница недоступна временно из-за технических сбоев. В этом случае ничего делать не нужно за исключением устранения самих сбоев;
- пользователь опечатался и ввел неправильный адрес страницы. Предпринимать ничего не нужно, 404 ответ в этом случае является корректным.
Страницу, на которой посетитель видит код ошибки 404, рекомендуется оформить с пользой: дать ссылки на главную страницу сайта и популярные разделы, объяснить, почему пользователь видит эту ошибку. На многих сайтах на 404 странице можно увидеть креативное оформление, забавные анимации и т. п.
Ошибка 405
Расшифровка – «метод не поддерживается». Для каждого типа операций (загрузка, передача данных) http-протокол предусматривает использование своего метода (GET, POST и т. д.). Ошибка означает, что запрос на сервер выполнен с использованием неправильного метода. От клиента здесь мало что зависит, причины – в настройках веб-сервера. Например:
- происходит попытка обработки файлов с помощью метода POST, тогда как файлы этого формата должны обрабатываться непосредственно сервером Apache;
- PHP-скрипт не справляется с большим объемом импорта данных, такую операцию лучше проводить другими способами. Время, отведенное на работу скрипта, превышается, и возникает ошибка 405;
- некорректно настроено взаимодействие метода POST и модуля FastCGI.
Ошибка 406
Расшифровывается как «неприемлемо». Достаточно редкий ответ. Возникает, если сервер отдает информацию в виде, который не может распознать клиент (ваш браузер, или поисковый робот – если ошибка появляется при индексации страниц сайта). Чаще всего контент не распознается из-за сжатия или неподдерживаемого формата, иногда – неправильной кодировки.
Причина может быть в:
- установленном на хостинге брандмауэре ModSecurity. Он блокирует запросы, которые считает зловредными. Иногда «под раздачу» попадают и вполне безобидные обращения. Часто ошибка 406 появляется после установки плагинов, кодов рекламных баннеров;
- неверных заголовках Content-Type или Content-Encoding;
- отправке в ответ на запрос поискового робота сжатого контента, тогда как требуются данные без сжатия.
Ошибка 407
Пояснение переводится как «нужна аутентификация прокси». Возникает, если доступ в сеть или к определенным сайтам осуществляется через прокси-сервер, но в запросе нет данных для авторизации на нем. Пользователю нужно пройти аутентификацию. Обычно в тексте ответа с кодом 407 содержатся подсказки – как это сделать.
Ошибка 408
Переводится как «истекло время запроса». Может возникнуть при передаче больших файлов, временного сбоя интернет-подключения, перегрузке сервера в данный момент и т. д. Чаще всего никаких действий от вебмастера не требуется, за исключением случаев, когда 408 ошибка появляется часто и есть подозрение, что сервер не справляется с текущей нагрузкой. Тогда стоит подумать об аренде дополнительных ресурсов хостинга или переходе на более подходящий тарифный план.
Со стороны пользователя чаще всего устранить проблему можно простой перезагрузкой страницы. Также можно попробовать зайти на сайт позже или проверить стабильность интернет-соединения.
Ошибка 409
Произошел конфликт запроса и данных на сервере. Например, пользователь загружает файл устаревшей версии, в то время как аналогичный файл на сервере – более новый.
В некоторых случаях причиной может быть:
- конфликт обращений между файлами на самом сервере, тогда действия пользователя здесь ни при чем;
- конфликт с прокси, через которые идет обращение к серверу;
- вирусное ПО на компьютере пользователя;
- сбой в работе браузера.
Чаще всего ошибку можно устранить, просто загрузив корректный файл.
Ошибка 410
Страница или документ, к которому обращается запрос, недоступен. Ошибка 410 похожа на 404 с той лишь разницей, что она выдается, если данные по ссылке удалены навсегда.
Исправлять чаще всего ничего не нужно. Наоборот, рекомендуется прописывать код ответа 410 для документов или страниц, которые были удалены, чтобы поисковые роботы не тратили на них лимит сканирования при переобходе сайта.
Ошибка 411
Расшифровывается как «требуется длина». Такая ситуация может возникнуть при передаче файлов определенными методами и выставленных ограничениях на передаваемый объем. В этих случаях серверу нужен параметр Content-Length, и он ожидает увидеть его в запросе.
Ошибка 412
Расшифровывается как «предварительное условие не выполнено». Причину ошибки нужно искать в заголовках запроса. Иногда там прописываются различные условия, и сервер обязан проверить их соблюдение перед обработкой запроса. Если при проверке сервер выявляет, что условия не могут быть выполнены, не соблюдаются, он отклоняет запрос и высылает ответ с кодом 412.
Самая простая причина – проблема в браузере пользователя. Достаточно почистить кеш и куки, чтобы ошибка исчезла.
Также проблема может возникнуть после установки на сайте новых тем, плагинов или некорректного изменения кода.
Ошибка 413
Означает «слишком большое тело запроса». Объем запроса больше, чем веб-сервер может обработать. Чаще всего возникает при загрузке слишком большого файла. Ограничения по объему файлов могут быть выставлены по умолчанию (например, в Nginx это 1 МБ) или веб-мастером. Чтобы увеличить допустимый объем, измените настройки веб-сервера, директивы .htaccess или скрипты php, которые отвечают за загрузку.
Если ограничения выставлены корректно, то пользователю нужно порекомендовать:
- загрузить файл меньшего размера (сжать изображение или видео);
- архивировать загружаемый файл (при архивации будет применено сжатие и размер файла уменьшится);
- не загружать несколько файлов одновременно.
Ошибка 414
Перевод пояснения – «URL слишком длинный». Сервер не может взять в обработку слишком длинный веб-адрес, и поэтому отклоняет запрос.
Ошибка может возникнуть, например, при некорректно настроенном коде CMS, когда при каждом переходе со страницы на страницу в административной панели сайта к URL дописывается фрагмент с параметрами. Таким образом ссылка становится все длиннее и длиннее, пока не превышает лимит.
Часто наличие таких ошибок и переходов по длинным URL свидетельствуют о попытках взломать сайт.
Ошибки на стороне сервера 5xx
Следующая категория ошибок – на стороне сервера (с 500 по 560). Ответ с таким кодом говорит, что запрос корректный, и отвечает всем требованиям сервера, но сам сервер по своим причинам не может его обработать. Разберем коротко каждую из ошибок.
Ошибка 500
Перевод пояснения – «внутренняя ошибка сервера». Ответ с кодом 500 выдается в том случае, когда ошибку нельзя отнести ни к каким другим типам – сервер не может определить, в чем проблема. Часто причина в неверных настройках .htaccess.
Ошибка 501
Означает «не реализовано». Сервер не понимает метод запроса, или не имеет функциональности для его обработки. Не стоит путать с 405 ошибкой – в ее случае метод просто используется неправильно (не к тем данным или неправильным способом), однако сервер его знает.
Ошибка 502
Означает «ошибка шлюза». Если запрос проходит через несколько серверов (через прокси), и какой-то из них не может обработать запрос, то первый сервер отдает такую ошибку. Возможные причины:
- блокировка запроса файерволом сервера;
- нет связи между какими-то участками в пути следования запроса;
- имеет место неправильная настройка сервера- «виновника» или конфликт настроек между серверами;
- сервер неисправен и т. п.
Ошибка 503
Пояснение переводится как как «сервис недоступен». Возможные причины:
- к серверу одновременно поступило большое количество обращений пользователей, и у него не хватает мощности их все обработать;
- на сервере стоит ограничение на максимальное одновременное подключение пользователей, и оно превышено;
- на сервере проводятся технические работы.
Ошибка 503 может быть связана с DDoS-атакой или просто перегрузкой сервера из-за несоответствия нагрузки на сайт и выделенных под него на хостинге мощностей. В последнем случае, возможно, стоит перейти на тарифный план уровнем выше.
Ошибка 504
Означает, что «время прохождения через шлюз истекло». Возникает, если запрос проходит через один или несколько шлюзов-серверов, и один из них не укладывается в отведенный таймаут. Причинами могут быть слишком короткий таймаут в настройках, перегрузка сервера запросами, медленное или нестабильное интернет-соединение между серверами и т. п.
Ошибка 505
Означает «версия http не поддерживается». Здесь причина понятна из названия ошибки. Такой ответ можно получить, если на сервере или клиенте работает устаревшее программное обеспечение, а также из-за некорректных настроек обработки запросов на стороне сервера.
Ошибка 506
Можно расшифровать как «сервер подвергается цензуре». Сервер, к которому отправлен запрос, запрещен для доступа из-за цензурных ограничений.