Итак, в первой части «Полного руководства и списка кодов состояния HTTP» мы поговорили о самых распространенных кодах состояния уровней 100, 200 и 300, которые в свою очередь, не значит ничего плохого. Теперь же настало время обсудить коды, возвращение которых, говорит о том, что с запрашиваемой браузером веб-страницей не все в порядке.
Содержание статьи
Коды состояния 400
На уровне 400 коды состояния HTTP начинают становиться проблематичными. Это коды ошибок, указывающие на то, что в вашем браузере и/или запросе есть неисправность.
- 400: «Неверный (плохой) запрос». Сервер не может вернуть ответ из-за ошибки на стороне клиента.
- 401: «Неавторизованный». Этот код возвращается сервером, когда у целевого ресурса отсутствуют действительные учетные данные аутентификации. Вы можете увидеть это, если вы настроили базовую аутентификацию HTTP с помощью htpasswd.
- 402: «Требуется оплата». Первоначально этот код был создан для использования в качестве части цифровой кассовой системы. Однако данный план так и не был осуществлен. Вместо этого он используется различными платформами, чтобы указать, что запрос не может быть выполнен, как правило, из-за отсутствия необходимых средств. Общие примеры включают в себя:
- Вы достигли дневного лимита запросов на API разработчиков Google.
- Вы не оплатили комиссию Shopify, и ваш магазин был временно деактивирован.
- Ваш платеж через Stripe не прошел, или Stripe пытается предотвратить мошеннический платеж.
- 403: «Доступ к этому ресурсу запрещен». Этот код возвращается, когда пользователь пытается получить доступ к чему-то, на что у него нет разрешения для просмотра. Например, попытка получить доступ к защищенному паролем контенту без входа в систему может привести к ошибке 403.
- 404: «Запрашиваемый ресурс не найден». Это самое распространенное сообщение об ошибке из всех. Данный код означает, что запрашиваемый ресурс не существует, и сервер не знает, существовал ли он вообще.
- 405: «Метод не поддерживается». Такой ответ генерируется, когда хост-сервер (исходный сервер) поддерживает полученный метод, а целевой ресурс — нет.
- 406: «Неприемлемый ответ». Запрашиваемый ресурс способен генерировать только контент, который не является приемлемым согласно заголовкам принятия, отправленным в запросе.
- 407: «Требуется аутентификация прокси-сервера». Прокси-сервер используется и требует, чтобы ваш браузер аутентифицировался, прежде чем продолжить.
- 408: «Истекло время ожидания». Этот код генерируется, когда время ожидания сервера истекло во время ожидания полного запроса от браузера. Другими словами, сервер не получил полный запрос, отправленный браузером. Одной из возможных причин может быть перегрузка сети, приводящая к потере пакетов данных между браузером и сервером.
- 409: «Конфликт». Код состояния 409 означает, что сервер не смог обработать запрос вашего браузера из-за конфликта с соответствующим ресурсом. Это иногда происходит из-за нескольких одновременных правок.
- 410: «Запрошенный ресурс удален». Это похоже на код 404 «не найдено», за исключением того, что 410 указывает на то, что условие является ожидаемым и постоянным.
- 411: «Требуется длина». Это означает, что запрашиваемый ресурс требует, чтобы клиент указал определенную длину, а он этого не сделал.
- 412: «Предварительное условие не выполнено». Ваш браузер включил определенные условия в заголовки своих запросов, и сервер не соответствовал этим требованиям.
- 413: «Полезная нагрузка слишком велика» или «Объект запроса слишком велик». Ваш запрос больше, чем сервер готов или способен обработать.
- 414: «URL слишком длинный». Обычно это результат запроса GET, который был закодирован в виде строки запроса, которая слишком велика для обработки сервером.
- 415: «Неподдерживаемый тип данных». Запрос включает в себя тип данных, который сервер или ресурс не поддерживает.
- 416: «Диапазон не достижим». Ваш запрос был сделан на часть ресурса, который сервер не может вернуть.
- 417: «Ожидание не удалось». Сервер не может выполнить требования, указанные в поле ожидающего заголовка запроса.
- 418: «Я чайник». Этот код возвращается чайниками, которые получают запросы на приготовление кофе. Это также первоапрельская шутка 1988 года.
- 422: «Необработанный экземпляр». Запрос клиента содержит семантические ошибки, и сервер не может его обработать.
- 425: «Слишком рано». Этот код отправляется, когда сервер не хочет обрабатывать запрос, потому что он может быть воспроизведен.
- 426: «Требуется обновление». Из-за содержимого поля заголовка обновления запроса клиент должен переключиться на другой протокол.
- 428: «Необходимое предусловие». Сервер требует, чтобы перед обработкой запроса были заданы определенные условия.
- 429: «Слишком много запросов». Это генерируется сервером, когда пользователь отправил слишком много запросов за заданное время (ограничение скорости). Иногда это может произойти из-за ботов или скриптов, пытающихся получить доступ к вашему сайту. В этом случае вы можете попробовать изменить свой URL входа.
- 431: «Поля заголовка запроса слишком большие». Сервер не может обработать запрос, потому что поля заголовка слишком велики. Это может указывать на проблему с одним полем заголовка, или со всеми вместе.
- 451: «Недоступно по юридическим причинам». Оператор сервера получил требование запретить доступ к запрошенному вами ресурсу (или набору ресурсов, включая тот, который вы запросили). Забавный факт: этот код является отсылкой к роману Рэя Брэдбери «451 градус по Фаренгейту».
- 499: «Клиент закрыл запрос». Этот код возвращается NGINX, когда клиент закрывает запрос, в то время как Nginx все еще обрабатывает его.
Коды состояния 500
Коды состояния уровня 500 также считаются ошибками. Тем не менее, они обозначают, что проблема кроется на стороне сервера, что может затруднить их решение.
- 500: «На сервере произошла ошибка, и запрос не был выполнен». Это общий код, который просто означает «внутреннюю ошибку сервера». На сервере что-то пошло не так, и запрошенный ресурс не был доставлен. Этот код обычно генерируется сторонними плагинами, неисправным PHP или даже разрывом соединения с базой данных.
- 501: «Не реализовано». Ошибка указывает на то, что сервер не поддерживает функции, необходимые для выполнения запроса. Это почти всегда проблема на самом веб-сервере, и, как правило, она должна решаться хостом.
- 502: «Неверный шлюз». Этот код ошибки обычно означает, что один сервер получил неверный ответ от другого, например, когда используется прокси-сервер. В других случаях запрос будет занимать слишком много времени, поэтому он отменяется или уничтожается сервером, и соединение с базой данных разрывается.
- 503: «Сервер недоступен для обработки этого запроса прямо сейчас». Запрос не может быть завершен в данный момент. Этот код может быть возвращен перегруженным сервером, который не может обработать дополнительные запросы.
- 504: «У сервера, выступающего в качестве шлюза, истекло время ожидании ответа от другого сервера». Этот код возвращается, когда два сервера участвуют в обработке запроса, и время ожидания первого сервера истекает, пока второй сервер отвечает.
- 505: «HTTP-версия не поддерживается». Сервер не поддерживает версию HTTP, которую клиент использовал для выполнения запроса.
- 511: «Требуется сетевая аутентификация». Этот код состояния отправляется, когда сеть, которую вы пытаетесь использовать, требует некоторой формы аутентификации перед отправкой вашего запроса на сервер. Например, вам может потребоваться принять «Условия использования публичной точки доступа Wi-Fi».
- 521: «Веб-сервер не работает». Ошибка 521 — это сообщение об ошибке, относящееся к Cloudflare. Это означает, что ваш веб-браузер смог успешно подключиться к Cloudflare, но Cloudflare не удалось подключиться к исходному веб-серверу.
В заключение
Хотя они могут показаться запутанными или пугающими, коды состояния HTTP на самом деле очень информативны. Изучив некоторые из наиболее распространенных, вы сможете быстрее решать проблемы на своем сайте.
В этом посте мы определили более 40 кодов состояния HTTP, с которыми вы можете столкнуться. От более простых кодов с уровнями 100 и 200 до более сложных ошибок на уровне 400 и 500 — понимание этих сообщений имеет решающее значение для поддержания вашего веб-сайта и обеспечения его доступности для пользователей.
Всем успешной работы и творчества!
Источник