Коды ответов сервера Ошибки 40

Дневник админа
Коды ответов сервера Ошибки 40

Коды ответов сервера. Ошибки 404, 407, 408, 500, 502, 503 и другие статусы

Коды ответа сервера, или, как их еще называют, коды состояния HTTP, отправляются в заголовке ответа HTTP на запросы клиента и содержат информацию о том, насколько успешно сервер смог обработать запрос клиента.

Звучит немного сложно, не так ли? На самом деле ничего сложного в этом нет. Вот как это работает.

Во-первых, нам нужно понять, что такое клиент и сервер и как они говорят, зачем они вам нужны. Архитектура клиент-сервер — это основа Интернета в том виде, в котором мы его знаем. Контент веб-сайтов и приложений размещается на серверах и доступен для клиентских программ, которые взаимодействуют с серверами (которые также являются программами) через различные сетевые протоколы, такие как HTTP.

Это длинная статья, поэтому вы можете нажать Ctrl + F, чтобы найти ошибку или код ответа сервера, который вы ищете.

Клиент и сервер обмениваются сообщениями. Сообщения от клиента называются запросами, а сообщения от сервера — ответами. Каждое сообщение должно иметь заголовок и может иметь так называемый тело.

Когда веб-клиент (браузер или поисковый робот) запрашивает информацию (страницу, файл или другие данные) с сервера, сервер пытается выполнить запрос и доставить результат клиенту (клиент всегда прав;). Но также бывает, что сервер не может найти запрошенный файл/страницу, или он перегружен запросами, или требует авторизации для доступа к контенту, или что-то еще. Он также должен проинформировать клиента об этих вопросах. Клиент и сервер общаются с помощью кодов. После получения ответа от сервера клиент должен обработать его в соответствии с кодом состояния.

Эти коды стандартизированы и используются всеми серверами и клиентами, общающимися по протоколу HTTP. Они состоят из 3-х цифр, первая из которых обозначает класс (категорию) кода состояния. Всего 5 классов:

1xx — информация — это временные коды, используемые сервером для информирования клиента о том, что он принял и обрабатывает запрос.

2xx — Успех отправляется, когда запрос был успешно обработан

3xxx — Перенаправление: сообщение о том, что клиенту необходимо предпринять дополнительные действия для выполнения запроса.

4xxx — Ошибка клиента: сервер сообщает, что не может выполнить запрос, поскольку он содержит ошибку.

5xxx — Ошибка сервера — запрос был принят, но сервер не может его обработать.

Кодов много, и о них можно не беспокоиться. Однако стоит знать несколько самых распространенных из них.

Давайте посмотрим на приведенные выше классы с их наиболее распространенными кодами, и, в частности, давайте посмотрим на последние два класса кода.

Это коды, с помощью которых сервер информирует клиента о том, что его запрос принят в обработку. Заказчику не нужно предпринимать никаких дополнительных действий.

Этот код ответа указывает, что сервер удовлетворен исходными данными запроса и что клиент может продолжить. Этот HTTP-код может потребоваться, если клиенту необходимо отправить на сервер большой объем данных (например, через POST) и проверить, примет ли сервер его перед отправкой данных.

Посредством кода HTTP 101 сервер предлагает клиенту переключиться на протокол, более подходящий для данного ресурса. Список предлагаемых протоколов указан в заголовке ответа на обновление.

Код ответа 102 информирует клиента о том, что его запрос был принят для обработки, но для его выполнения потребуется некоторое время. После получения этого ответа клиент должен дождаться выполнения запроса и не отключаться от сервера (сбросить таймер и дождаться следующего ответа).

Коды этого класса передаются, если запрос от клиента был успешно получен, принят, обработан и выполнен сервером.

Код состояния 200 OK, вероятно, является наиболее важным, поскольку он указывает, что сервер успешно выполнил то, что хотел сделать клиент. Например, если клиент запросил определенную страницу, сервер вернет код HTML и статус HTTP 200. И если запрос клиента содержал данные (например,Форма регистрации), которые должны были быть обработаны, в ответ, в дополнение к 200code, там будет информация о результате обработки.

Этот

В HTTP код информирует клиента о том, что новый ресурс был создан в результате его запроса (например, запись в блоге или комментарий). Как правило, этот код передается в ответ на запрос с помощью метода PUT. В дополнении к 201 коде, существует также ссылка на созданный ресурс в ответ сервера.

Код 202 означает, что запрос был принят для обработки, но она еще не завершена, и потому, что его реализация может занять много времени, клиент не должен ждать результата. Там нет никакой гарантии, что запрос будет выполняться также может быть отклонен.

Этот код означает, что сервер понял и принял запрос, но информация, выдаваемая ею могут быть устаревшими или не может быть в курсе, потому что они были загружены из другого источника (например, другой сервер или резервного копирования) и поэтому полученные данные должны не может рассматриваться как имеющие отношение.

HTTP 204 код указывает на то, что сервер обработал запрос успешно, но не передает данные в своем ответе, и поэтому клиент не должен обновлять содержимое документа.

Этот код указывает клиенту, что сервер посылает только часть требуемого ресурса, потому что клиент дал диапазон (диапазон заголовка). Это позволяет скачать прерванные загрузки или разделить загруженный файл в несколько потоков).

HTTP коды этого класса сообщить клиенту, что требуются дополнительные шаги, чтобы сделать свои запросы (например, запросы посылов на другой адрес — переназначения).

Клиент может быть перенаправлен и затем далее и так далее, переходя на новый адрес, который возвращается в ответе сервера вместе с кодом этого класса. Клиент может также быть перенаправлены обратно на адрес, под которым он был уже и тогда Перенаправление петельным. По этой причине, часто бывает, что клиенты просят пользователя согласиться на несколько перенаправлений.

Средство кода HTTP 300, что по данному адресу есть несколько ресурсов (например, файлы с различными типами MIME, различными языковыми версиями страницы, различными видео или аудио форматами ресурсов) и сервер запрашивает у клиента, чтобы выбрать из списка ресурсов , который также посылается в ответ.

Если клиент получает ответ от сервера с 301 постоянно перемещена HTTP-код состояния, это означает, что требуемый ресурс был окончательно переведен в новое место, т.е. перманентно;) (постоянно). Новый адрес передается также в заголовке ответа.

Код 302 НАЙДЕНО используется сервер, чтобы сообщить клиенту, что требуемый ресурс был (временно) переносятся на новый адрес, под которым он был найден. При статусе 302, сервер посылает заголовок с новым адресом.

Многие клиенты используют GET для перенаправления на новый адрес, в отличие от стандарта, даже если первоначальный запрос используется другой метод (POST/PUT/DELETE), что может привести к непреднамеренным последствиям. Чтобы избежать этого, статусы 303 и 307 должны быть использованы.

Этот код означает, что сервер успешно переработанный запрос клиента, но предлагает экспедиторский на другой адрес (также передается в этом ответе), используя метод GET.

Это часто встречается на сайтах, работающих на WordPress двигателя. После ввода что-то в поле поиска и нажать клавишу ВВОД, не открывается ни в одном списке результатов поиска, но наиболее подходящий результат. Это более или менее, как это: клиент отправляет запрос с поисковой фразой через пост на сервер, на котором установлен WP, который выбирает наиболее точный результат и возвращает ответ 303 See Other кода и адрес выбранная статья. Получив этот ответ, клиент (браузер) переходит к заданному адресу.

HTTP 304 Not Modified код состояния означает, что требуемый ресурс был найден на данном URL, но нет никакой другой версии, чем дано в заголовке запроса (IF-доработанный-Since) и, следовательно, нет необходимости в его повторной отправке.

Этот код означает, что требуемый ресурс находится по другому адресу (он также возвращается), но дальнейшийзапросы следует направлять на старый адрес. В отличие от кода 302, этот статус не позволяет изменять метод запроса, т.е. если метод POST использовался в первом запросе, метод POST также должен использоваться в запросе на новый адрес.

Этот код HTTP, как и код 301, указывает, что запрошенный ресурс наконец-то переместился в новое место, но, в отличие от кода 307, он не позволяет изменять метод запроса.

Этот класс содержит коды, информирующие о том, что серверу не удалось вернуть запрошенный ресурс по вине клиента (в запросе была сделана ошибка или не были выполнены шаги, которые должны предшествовать запросу, и т. Д.

Сервер возвращается с кодом ошибки, объясняющим, какая ошибка произошла и является ли она временной или постоянной. Это объяснение, которое клиент должен предоставить пользователю.

Что означает 400 Bad Request?

В буквальном переводе Bad Request означает «плохой запрос». Сервер использует код HTTP 400, чтобы сообщить клиенту, что он не может обработать запрос, поскольку он содержит синтаксическую ошибку.

Хотя класс PHP 4xx определяет это как ошибку на стороне клиента, часто бывает так, что сервер не может обработать стандартный клиентский запрос из-за неправильной конфигурации или ошибки сценария и выдает сообщение об ошибке 400.

Как я могу исправить 400 неверных запросов?

Вот некоторые из наиболее распространенных причин ошибки 400 и способы их устранения.

На стороне клиента

Сторона сервера

Что означает статус HTTP 401 Unauthorized?

Неавторизованный переводится как «неавторизованный». С 401 сервер сообщает клиенту, что для доступа к ресурсу требуется авторизация, и клиент должен отправить заголовок WWW-Authenticate с именем пользователя и паролем при следующем запросе. В противном случае или при отправке неправильного имени пользователя или пароля сервер снова возвращает ошибку 401.

Как я могу исправить ошибку 401 Unauthorized?

Если вы пользователь веб-сайта

Если вы владелец сайта

Этот HTTP-статус пока не получил широкого распространения. Код 402 зарезервирован для использования в будущем. Это можно увидеть сейчас, например, после превышения дневного лимита запросов к Google Developers API, или в названии одного из эпизодов журнала Mr. Робот;)

Что означает 403 Forbidden?

Буквально Forbidden переводится как «запрещено». Когда сервер возвращает код HTTP 403 Forbidden, это означает, что, хотя запрос клиента содержит допустимые данные и понятен, сервер все еще отклоняет его, и клиент не должен пытаться повторить запрос.

Ошибка 403 может возникнуть в двух случаях:

Как исправить ошибку 403 Forbidden?

Если вы посетитель сайта

Если вы владелец сайта

Что означает 404 Not Found?

Это, вероятно, самая частая и, следовательно, самая известная ошибка. «Не найдено» дословно переводится как «не найдено». Когда сервер возвращает код HTTP 404 Not Found, это означает, что серверу не удалось найти запрошенный ресурс по данному URL-адресу. Сервер не препятствует повторному появлению ресурса, поэтому он не мешает клиенту адресовать запрос позже.

Иногда сервер может вернуть статус 404, даже если ресурс был найден, но доступ к нему ограничен, так что никто не может догадаться.

Однако чаще всего код 404 означает, что ресурс был перемещен или удален. Хотя перемещение страницы или файла обычно приводит к тому, что сервер возвращает HTTP 301 Moved Permanently и новый адрес ресурса, а также удаляет код HTTP 410 Gone, требующий дополнительной настройки сервера, многие сайты просто возвращают код HTTP 404 по умолчанию.

Как исправить ошибку 404 Not Found?

Если вы посетитель сайта

Если вы владелец сайта

Буквально «Метод запрещен» переводится как «Метод запрещен». Код 405 сообщает клиенту, что тип HTTP-запроса, используемый в этом URL-адресе, не поддерживается. Например, клиент отправляет запрос GET по адресу, где ожидают данные POST, или клиент пытается обновить доступный только для чтения ресурс с помощью метода PUT.

Буквально в переводе «неприемлемо» означает «неприемлемо».Он отправляется сервером, когда запрошенный ресурс не возвращает содержимое в формате, указанном клиентом в заголовке запроса Accept.

Что означает 407 Proxy Authentication Required?

Буквально «Требуется проверка подлинности прокси» переводится как «Требуется проверка подлинности прокси». Если сервер отвечает HTTP 407, запрос клиента не может быть выполнен, поскольку учетные данные недоступны на прокси-сервере, используемом для обмена данными. Этот код аналогичен по смыслу коду 401 Unauthorized, но в отличие от него указывает, что клиенту не нужно проходить аутентификацию на самом сервере, а только с прокси-сервером между ними.

После получения неавторизованного запроса прокси-сервер возвращает статус 407 вместе с заголовком Proxy-Authenticate, информируя клиента, какой тип аутентификации требуется (наиболее распространенный тип в данном случае — Базовый) и какие разрешения он предоставляет (область). Ответ клиента должен содержать заголовок Proxy-Authorization с типом авторизации (такой же, как

в ответе, полученном от прокси-сервера, чаще всего Basic) и учетных данных (учетные данные, если это Basic, строка символов, закодированная в Base64 типа имя пользователя: пароль).

Как я могу исправить ошибку 407 Proxy Authentication Required?

Хотя коды класса 4xx указывают на ошибки клиента, причиной ошибки 407 Proxy Authentication Required может быть ошибка в конфигурации родительского сервера или прокси-сервера, используемого для отправки запроса. Однако вам следует начать искать причину этой ошибки на стороне клиента.

Если вы посетитель сайта

Если вы владелец сайта

Что означает тайм-аут запроса 408?

Время ожидания запроса буквально переводится как «время ожидания запроса». Если сервер отвечает HTTP 408, запрос клиента завершился неудачно, и сервер завершает соединение. Однако не запрещено делать несколько запросов на один и тот же адрес.

Как я могу исправить тайм-аут запроса 408?

Если ты гость

Если вы владелец сайта

Что означает конфликт 409?

Дословно Conflict можно перевести как «конфликт». Сервер возвращает код HTTP 409 в случае конфликта, например, когда два клиента пытаются изменить ресурс или клиент пытается загрузить на сервер управления версиями файл, который старше, чем тот, который он уже загрузил.

Как правило, не сам сервер генерирует код 409, а скрипты, работающие на нем (CMS, системы контроля версий и т. Д.).

Как исправить ошибку 409?

Статус HTTP 410 Gone означает, что запрошенный ресурс был удален и больше не будет доступен по этому адресу. Если клиент является поисковым роботом, он должен удалить ресурс из своего индекса.

Этот код HTTP сообщает клиенту, что его запрос не содержит заголовок Content-Length, необходимый для ресурса.

С кодом HTTP 412 сервер сообщает, что запрошенный ресурс не соответствует требованиям, которые клиент указал в заголовках запроса.

Этот код сообщает серверу, что запрос не может быть обработан, поскольку он слишком велик.

Код 414 HTTP сообщает клиенту, что запрос не может быть обработан, поскольку URI слишком длинный. Основная причина этой ошибки заключается в том, что большой объем данных (например, из формы) отправляется через GET вместо POST.

Код HTTP 415 означает, что запрос клиента отклонен, поскольку он содержит данные, которые данный тип ресурса не может обработать. Это может произойти, например, когда файл отправляется на сервер в формате, который не поддерживается программой-отправителем.

Этот статус возвращается, если запрос клиента содержит заголовок Range, который указывает диапазон байтов требуемого ресурса, который находится за пределами ресурса. Другими словами, клиент запросил часть ресурса, которую сервер не может доставить. При ошибке 416 сервер может вернуть заголовок Content-Range, указывающий фактический размер ресурса.

Этот код указывает, что запрос клиента не может быть выполнен, потому что сервер по какой-либо причине не может удовлетворить требования, указанные в заголовке запроса Expect.

Дословный перевод «Я чайник» — «Я чайник». В 1998 году в шуткуПервое апреля было разработано рабочее предложение (RFC 2324), описывающее HTCPCP, протокол, который является расширением HTTP и предназначен для взаимодействия между покупателем и чайником. При попытке заварить кофе в чайнике должна возвращаться ошибка 418. Вот и все для придурковатого юмора.

Хотя статус 418 — это шутка, он поддерживается некоторыми популярными фреймворками (такими как Django и Symfony). А в Google подготовили специальную страницу, которая возвращает HTTP-код 418 и «наливает чай».

Этот код означает, что запрос был отправлен на сервер, который не может ответить. Статус HTTP 421 может быть возвращен сервером, который не сконфигурирован для генерации ответа для комбинации схемы и разрешения, содержащейся в URI запроса.

Этот статус указывает на то, что, хотя запрос был правильно сформирован и сервер принял его, он не может обработать его из-за некоторой семантической ошибки.

Этот код указывает, что доступ к ресурсу с использованием метода, указанного в запросе, заблокирован.

Ошибка 424 возвращается сервером, если выполнение запроса зависит от другого запроса, который не был выполнен.

Сервер использует этот код, чтобы указать клиенту переключиться на другой протокол (например, SSL). При статусе 426 ответ должен включать заголовок Upgrade, определяющий требуемый протокол.

Чтобы избежать одновременного изменения одного и того же ресурса несколькими клиентами, условные HTTP-запросы, содержащие

Заголовки If-Match, If-None-Match, If-Modified-Since и If-Unmodified-Since. На этапе 428 сервер заставляет клиента использовать их.

Что означает 429 Too Many Requests?

Слишком много запросов буквально означает «слишком много запросов». Этот статус указывает на то, что сервер в настоящее время не принимает запросы от клиента, потому что слишком много запросов было сделано за короткое время. Наряду с заголовком 429 сервер также отправляет заголовок Retry-After, указывающий количество секунд, в течение которых клиент должен пересмотреть запрос.

Как исправить 429 слишком много запросов?

В большинстве случаев ошибка 429 возникает из-за того, что клиент делает слишком много запросов для какого-либо ресурса (например, страница входа в систему пытается угадать пароль). Другой причиной может быть ограничение количества запросов к ресурсу (например, ограничение количества запросов в час через REST API). Наиболее логично в этом случае последовать рекомендации сервера и повторить запрос по истечении времени, указанного в заголовке Retry-After. Если это не помогает, погуглите, потому что решение проблемы зависит от точных обстоятельств ее возникновения.

Этот код HTTP означает, что сервер отклоняет запрос, потому что содержащиеся в нем заголовки слишком велики (имеется в виду либо общий размер всех заголовков, либо один из них, который обычно указывается в теле ответа). Эта ошибка часто вызвана чрезмерно длинным URL-адресом в заголовке Referer или большим количеством файлов cookie (или файлов cookie, если вы предпочитаете), отправленных с запросом.

Этот код означает, что сервер блокирует доступ к ресурсу или набору ресурсов по требованию закона. Код 451 — это отсылка к роману Рэя Брэдбери «451 градус по Фаренгейту», описывающему общество, в котором книги запрещены.

Этот класс содержит коды, которые описывают случаи, когда сервер знает, что он сделал ошибку или не может выполнить запрос по какой-либо причине. Помимо кода ошибки, ответ сервера должен объяснять обстоятельства, при которых произошла ошибка, и то, является ли ситуация временной или постоянной (это относится ко всем методам, кроме HEAD). Клиент, в свою очередь, должен отображать эту информацию пользователю.

Что означает 500 Internal Server Error?

В буквальном переводе Internal Server Error означает «Внутренняя ошибка сервера». Ошибка 500 является ошибкой по умолчанию и возвращается, когда более подробные статусы не совпадают. Поэтому найти его причину довольно сложно. Это может быть синтаксическая ошибка в коде сценария обработчика, ошибка диска или отсутствующий программный модуль и многое другое.

Как отремонтироватьвнутренняя ошибка сервера 500?

Если ты гость

Поскольку 500 — это ошибка сервера, вы мало что можете сделать. Вы также можете попробовать следующие решения:

Если вы владелец сайта

Как я уже сказал, для внутренней ошибки сервера 500 может быть много причин. Начните с попытки описанных выше методов. Если ничего не помогает — обратитесь в службу поддержки хостинга, возможно, они смогут более точно диагностировать проблему.

Сервер сообщает с кодом HTTP 501, что механизм, необходимый для выполнения запроса, еще не реализован на сервере. Эта ошибка обычно возникает, когда сервер не может обработать запрос способом, указанным в запросе.

Что означает 502 Bad Gateway?

Bad Gateway переводится как «Недействительный шлюз». Если клиент получает код HTTP 502 в ответ на запрос, это означает, что целевой сервер действует как прокси и получил недопустимый ответ от вышестоящего сервера.

Причин этой ошибки может быть несколько. Некоторые из наиболее вероятных включают:

Как исправить ошибку 502 Bad Gateway?

Если ты гость

Если вы владелец сайта

Что означает 503 Service Unavailable?

Служба недоступна переводится как «Служба недоступна». Статус HTTP 503 означает, что сервер не может обработать запрос, потому что он перегружен запросами или находится на обслуживании (например, обновлении программного обеспечения).

Обычно это временно, и сервер должен предоставить заголовок Retry-After, указывающий, когда клиент может попытаться связаться с ним снова.

Как мне исправить недоступность службы 503?

Если вы посетитель сайта

Если вы владелец сайта.

Код HTTP 504 означает, что сервер, к которому обращается клиент, является шлюзом или прокси-сервером и не смог выполнить запрос, поскольку не ожидал ответа.

с вышестоящего сервера.

Эта ошибка возникает при взаимодействии с сервером, поэтому вам, как посетителю веб-сайта, практически нечего с ней делать. Если вы столкнулись с ошибкой 504 при попытке открыть страницу, попробуйте просто обновить страницу с помощью комбинации клавиш Ctrl + F5 или войти в систему чуть позже. Эта ошибка, вероятно, только временная, вызванная тем, что вышестоящий сервер перегружен запросами, и ваш прокси-сервер не смог получить от него ответ в течение отведенного времени и разорвал соединение.

Код ответа 505 означает, что указанная в запросе версия HTTP не поддерживается сервером.

Этот код HTTP сообщает клиенту, что на сервере недостаточно места для выполнения запроса. Этот статус в основном используется для клиентов WebDAV, но также может заменить 413 Payload Too Large.

Этот код указывает на то, что сервер обнаружил бесконечный цикл при попытке обработать запрос.

В этой статье мы рассмотрели некоторые из основных кодов ответов официального сервера, которые описаны в черновике предложения (RFC). В дополнение к этому существуют неофициальные коды HTTP, специфичные для определенных продуктов и приложений (Apache, nginx, Cloudflare, AWS и т. Д.). О них я расскажу в одной из следующих статей.

Оцените статью