Сервер: Список кодов состояния HTTP
HTTP (Hypertext Transfer Protocol) определяет список кодов состояния, которые возвращаются сервером в ответ на запросы клиента. Коды состояния HTTP информируют клиента о результате выполнения запроса и указывают на дальнейшие действия, которые клиент должен предпринять. Ниже приведен список наиболее распространенных кодов состояния HTTP:
1xx: Informational - информационные:
- 100 Continue - Этот код состояния означает, что сервер принял начальную часть запроса и ожидает от клиента дальнейших инструкций. Это используется, когда сервер хочет указать клиенту продолжить отправку остальной части запроса.
- 101 Switching Protocols - Этот код состояния указывает, что сервер принял запрос клиента и согласен переключиться на другой протокол, указанный в заголовке запроса "Upgrade". Это часто используется при переключении на протоколы, такие как WebSocket.
- 102 Processing - Этот код состояния указывает, что сервер принял запрос клиента и начал его обработку, но обработка ещё не завершена. Это может быть полезным для длительных операций, чтобы клиент знал, что запрос принят и обрабатывается.
- 103 Early Hints - Этот код состояния используется сервером для отправки ранних подсказок клиенту перед окончательным отправлением ответа. Это позволяет клиенту начать загрузку ресурсов, связанных с ответом, ещё до его полного получения.
- 105 Name Not Resolved - Этот код состояния указывает на проблему с преобразованием DNS-адреса сервера. То есть сервер не может определить IP-адрес, связанный с указанным доменным именем. Это может быть вызвано отсутствием соединения с интернетом или неправильной конфигурацией DNS.
2xx: Success - успешно:
- 200 OK - Этот код состояния указывает, что запрос был успешно обработан. Он является наиболее распространенным и используется для показа успешного завершения запроса клиента.
- 201 Created - Этот код состояния указывает, что запрос был успешно обработан, и новый ресурс был создан как результат. Он часто используется для указания успешного создания новой записи в базе данных или файле.
- 202 Accepted - Этот код состояния указывает, что запрос был принят для обработки, но окончательное выполнение может занять некоторое время. Он обычно используется в асинхронных операциях, чтобы клиент знал, что запрос получен и будет обработан в будущем.
- 203 Non-Authoritative Information - Этот код состояния указывает, что полученная информация не является официальной или авторитетной. Он может использоваться, например, в прокси-серверах для указания, что полученные данные являются кэшированными или модифицированными.
- 204 No Content - Этот код состояния указывает, что запрос был успешно обработан, но в ответе отсутствует содержимое. Он часто используется для операций, которые не требуют возвращения данных, например, при обновлении ресурса без необходимости возвращать его содержимое.
- 205 Reset Content - Этот код состояния указывает, что клиент должен сбросить текущий просмотренный контент. Он часто используется для указания браузеру очистить форму или сбросить состояние страницы.
- 206 Partial Content - Этот код состояния указывает, что сервер возвращает только часть запрашиваемого ресурса, обычно в результате запроса с использованием заголовка "Range". Это позволяет клиенту загружать большие файлы по частям.
- 207 Multi-Status - Этот код состояния указывает, что сервер вернул несколько статусов для разных частей запроса. Он часто используется в WebDAV-серверах для указания различных статусов для каждого ресурса, участвующего в многооперационном запросе.
- 208 Already Reported - Этот код состояния указывает, что результаты уже были отправлены в предыдущем ответе. Он может использоваться для избежания повторной отправки одинаковых результатов в ответ на последовательные запросы.
- 226 IM Used - Этот код состояния указывает, что сервер использовал метод IM (Instance Manipulation) для выполнения запроса. IM - это расширение протокола HTTP, которое позволяет серверу выполнять манипуляции с индивидуальными экземплярами ресурсов, например, изменять только определенные части файла.
3xx: Redirection - перенаправление:
- 300 Multiple Choices - Этот код состояния указывает, что запрашиваемый ресурс имеет несколько доступных вариантов представления, и клиент может выбрать один из них. Это часто используется при переговорах о контенте, например, когда есть доступные языковые версии или форматы документа.
- 301 Moved Permanently - Этот код состояния указывает, что запрашиваемый ресурс был перемещен навсегда на новый URL. Браузеры и поисковые системы обычно запоминают этот перенаправление и будут автоматически перенаправлять пользователя на новый URL при последующих запросах.
- 302 Moved Temporarily - Этот код состояния указывает, что запрашиваемый ресурс был временно перемещен на другой URL. Он подразумевает, что перемещение временное, и клиент должен продолжать использовать оригинальный URL для последующих запросов.
- 302 Found - Этот код состояния указывает, что запрашиваемый ресурс был найден. Он обычно используется вместо 301 или 302 для указания на то, что ресурс найден, но не было указано, перемещен ли он временно или навсегда.
- 303 See Other - Этот код состояния указывает, что клиент должен перейти к другому URL для получения запрашиваемого ресурса. Он часто используется вместе с запросами POST, чтобы предотвратить повторную отправку данных при обновлении страницы.
- 304 Not Modified - Этот код состояния указывает, что запрашиваемый ресурс не изменился с момента последнего запроса. Он используется с условными запросами, когда клиент проверяет, изменился ли ресурс с помощью заголовков "If-Modified-Since" или "If-None-Match".
- 305 Use Proxy - Этот код состояния указывает, что клиент должен использовать прокси-сервер, указанный в заголовке ответа, для доступа к запрашиваемому ресурсу. Он часто используется в корпоративных сетях или при доступе к Интернету через промежуточные прокси.
- 307 Temporary Redirect - Этот код состояния указывает, что запрашиваемый ресурс был временно перемещен на другой URL. Он подразумевает, что перемещение является временным, и клиент должен продолжать использовать исходный URL для последующих запросов.
- 307 Permanent Redirect - Этот код состояния указывает, что запрашиваемый ресурс был перемещен на постоянной основе на другой URL. Он подразумевает, что перемещение является постоянным, и клиент должен использовать новый URL для последующих запросов.
4xx: Client Error - ошибка клиента:
- 400 Bad Request - Этот код состояния указывает, что сервер не может обработать запрос клиента из-за некорректного синтаксиса или других ошибок в запросе. Он может быть вызван, например, если клиент отправил запрос с отсутствующими или неправильными параметрами.
- 401 Unauthorized - Этот код состояния указывает, что для доступа к запрашиваемому ресурсу требуется аутентификация. Он используется, когда клиент не предоставил достаточных учетных данных или их использование не было подтверждено.
- 402 Payment Required - Этот код состояния указывает, что для доступа к запрашиваемому ресурсу требуется оплата. Он редко используется и может быть связан с платными услугами или контентом, требующим оплаты.
- 403 Forbidden - Этот код состояния указывает, что сервер отказывает в доступе к запрашиваемому ресурсу. Это может быть вызвано ограничениями доступа, правами или политиками сервера.
- 404 Not Found - Этот код состояния указывает, что запрашиваемый ресурс не найден на сервере. Он может быть вызван, если клиент запрашивает несуществующую страницу, файл или ресурс.
- 405 Method Not Allowed - Этот код состояния указывает, что метод запроса не поддерживается для запрашиваемого ресурса. Например, если клиент пытается выполнить POST-запрос на ресурсе, который разрешает только GET-запросы.
- 406 Not Acceptable - Этот код состояния указывает, что запрашиваемый ресурс не может предоставить данные в формате, который удовлетворяет требованиям клиента, указанным в заголовке запроса "Accept".
- 407 Proxy Authentication Required - Этот код состояния указывает, что для доступа к запрашиваемому ресурсу через прокси-сервер требуется аутентификация. Клиент должен предоставить учетные данные для аутентификации.
- 408 Request Timeout - Этот код состояния указывает, что сервер закрыл соединение с клиентом, так как время ожидания запроса истекло. Это может быть вызвано, например, если клиент отправляет запрос, но сервер не получает полное сообщение в заданное время. Ошибка указывает на то, что клиенту следует повторить запрос снова, возможно с более длительным таймаутом.
- 409 Conflict - Этот код состояния указывает на конфликт в запросе клиента, который не может быть разрешен сервером. Это может произойти, например, при попытке одновременного редактирования одного ресурса несколькими клиентами.
- 410 Gone - Этот код состояния указывает, что запрашиваемый ресурс ранее существовал на сервере, но больше не доступен и не будет восстановлен. Он часто используется для указания удаления постоянно недоступного ресурса.
- 411 Length Required - Этот код состояния указывает, что сервер требует, чтобы клиент предоставил длину содержимого запроса в заголовке "Content-Length". Это часто используется, когда сервер ожидает определенную длину данных в запросе, например, при загрузке файлов.
- 412 Precondition Failed - Этот код состояния указывает, что предусловие, указанное в заголовке запроса, не выполнено. Он часто используется для указания, что выполнение запроса зависит от определенных условий, которые не соблюдены.
- 413 Request Entity Too Large - Этот код состояния указывает, что размер тела запроса превышает максимально допустимый размер, установленный сервером. Это может быть вызвано, например, при попытке загрузить слишком большой файл на сервер.
- 414 Request-URI Too Large - Этот код состояния указывает, что длина URI запроса превышает максимально допустимый размер, установленный сервером. Это может произойти, например, если клиент отправляет запрос с очень длинным URI.
- 415 Unsupported Media Type - Этот код состояния указывает, что тип данных в теле запроса не поддерживается сервером. Например, если клиент пытается отправить данные в неподдерживаемом формате или MIME-типе.
- 416 Requested Range Not Satisfiable - Этот код состояния указывает, что сервер не может удовлетворить запрашиваемый диапазон байтов в заголовке "Range" запроса. Он может быть вызван, например, если клиент запрашивает диапазон, выходящий за пределы доступного содержимого.
- 417 Expectation Failed - Этот код состояния указывает, что сервер не может выполнить ожидание, указанное клиентом в заголовке "Expect" запроса. Он может быть вызван, например, если клиент ожидает определенного поведения сервера, которое сервер не может или не хочет предоставить.
- 418 I'm a teapot - Этот код состояния, изначально предложенный в качестве шутки, указывает на то, что сервер является "чайником" и не способен обработать запрос. Он используется для тестирования и демонстрации, но не должен применяться в реальных сценариях.
- 422 Unprocessable Entity - Этот код состояния указывает, что сервер не может обработать запрос, потому что содержимое запроса является правильным синтаксически, но содержит семантические ошибки или некорректные данные. Например, если клиент отправляет запрос с недопустимыми значениями полей формы.
- 423 Locked - Этот код состояния указывает, что запрашиваемый ресурс заблокирован, и текущий запрос не может быть выполнен. Он может быть использован для указания временной блокировки ресурса, чтобы предотвратить конфликты при параллельных операциях.
- 424 Failed Dependency - Этот код состояния указывает, что запрос зависит от другого запроса, который не удалось выполнить. Он может быть использован, например, в распределенных системах для указания, что одна операция зависит от успешного выполнения другой операции.
- 425 Unordered Collection - Этот код состояния указывает, что сервер отказывается упорядочивать элементы в коллекции, предоставленной клиентом. Он может быть использован, когда клиент запрашивает упорядоченный список элементов, но сервер не предоставляет гарантий относительно порядка элементов в коллекции.
- 426 Upgrade Required - Этот код состояния указывает, что клиент должен обновить используемый протокол для продолжения запроса. Он может быть использован, когда сервер требует использования новой версии протокола, чтобы обеспечить совместимость и безопасность.
- 428 Precondition Required - Этот код состояния указывает, что для выполнения запроса требуется определенное предусловие, которое не было указано клиентом. Например, сервер может требовать наличие определенных заголовков или состояния, чтобы выполнить запрос.
- 429 Too Many Requests - Этот код состояния указывает, что клиент отправил слишком много запросов за определенный период времени. Это используется для ограничения частоты запросов и предотвращения перегрузки сервера или сети.
- 431 Request Header Fields Too Large - Этот код состояния указывает, что поля заголовка запроса слишком большие и не могут быть обработаны сервером. Это может произойти, когда клиент отправляет слишком много или очень длинные заголовки запроса.
- 434 Requested host unavailable - Этот код состояния указывает, что запрашиваемый хост недоступен. Это может быть вызвано, например, если сервер не может установить соединение с запрашиваемым хостом.
- 449 Retry With - Этот код состояния, хотя и не является официальным кодом, но иногда используется для указания клиенту повторить запрос с использованием другого протокола или другого URL.
- 451 Unavailable For Legal Reasons - Этот код состояния указывает, что запрашиваемый ресурс недоступен по юридическим причинам. Он может быть использован, когда сервер не может предоставить запрашиваемый ресурс в связи с требованиями правовой системы или ограничениями на содержимое.
- 456 Unrecoverable Error - Этот код состояния указывает, что сервер обнаружил некорректируемую ошибку, из-за которой запрос не может быть выполнен. Это может быть вызвано, например, при серьезной внутренней ошибке на сервере.
- 499 Client Closed Request - Этот код состояния используется сервером Nginx, когда клиент закрывает соединение до получения ответа от сервера. Он указывает, что клиент прервал соединение, возможно, по своей инициативе.
5xx: Server Error - ошибка сервера:
- 500 Internal Server Error - Этот код состояния указывает на внутреннюю ошибку сервера, которая мешает серверу выполнить запрос клиента. Он обычно указывает на проблемы в работе серверного программного обеспечения или конфигурации сервера.
- 501 Not Implemented - Этот код состояния указывает, что сервер не поддерживает функциональность, необходимую для выполнения запроса клиента. Он обычно используется, когда сервер не распознает или не может обработать метод запроса.
- 502 Bad Gateway - Этот код состояния указывает, что сервер, действуя в роли шлюза или прокси, получил недопустимый ответ от внешнего сервера при попытке выполнить запрос клиента. Это может быть вызвано проблемами связи или неправильной конфигурацией шлюза.
- 503 Service Unavailable - Этот код состояния указывает, что сервер временно недоступен или не может обрабатывать запросы. Он может быть вызван, например, если сервер перегружен, находится на обслуживании или испытывает временные проблемы.
- 504 Gateway Timeout - Этот код состояния указывает, что сервер, действуя в роли шлюза или прокси, не получает своевременный ответ от внешнего сервера при попытке выполнить запрос клиента. Это может быть вызвано проблемами связи или длительным временем ответа от внешнего сервера.
- 505 HTTP Version Not Supported - Этот код состояния указывает, что сервер не поддерживает или не распознает версию протокола HTTP, указанную в запросе клиента. Это может быть вызвано, например, если клиент использует более новую версию протокола, которую сервер не распознает.
- 506 Variant Also Negotiates - Этот код состояния указывает, что сервер обнаружил противоречие в условиях согласования, указанных в запросе. Он может быть использован, когда клиент запрашивает ресурс, который имеет несколько доступных вариантов, но клиент не может выбрать подходящий вариант.
- 507 Insufficient Storage - Этот код состояния указывает, что серверу не хватает свободного места для выполнения запроса. Он может быть вызван, например, при попытке загрузить файл на сервер, но недостаточно места на диске.
- 508 Loop Detected - Этот код состояния указывает, что сервер обнаружил зацикливание или бесконечное перенаправление в запросе. Это может быть вызвано, например, если сервер получает последовательные запросы, которые циклически перенаправляют друг на друга.
- 509 Bandwidth Limit Exceeded - Этот код состояния указывает, что был превышен лимит пропускной способности для данного клиента или запроса. Он может быть использован для ограничения использования пропускной способности сервером или провайдером.
- 510 Not Extended - Этот код состояния указывает, что дополнительные расширения, запрашиваемые клиентом, не были предоставлены сервером. Он используется, когда клиент запрашивает использование определенных расширений протокола, но сервер не поддерживает их.
- 511 Network Authentication Required - Этот код состояния указывает, что для доступа к запрашиваемому ресурсу требуется сетевая аутентификация. Он может быть использован, например, для ограничения доступа к ресурсу только для аутентифицированных пользователей через сетевые учетные данные.
- 599 Network Connect Timeout Error - Этот код состояния, хотя и не является официальным кодом, иногда используется для указания, что произошла ошибка тайм-аута при попытке установить соединение с сервером. Он указывает на проблемы связи или недоступность сервера.
Комментарии