коды ответов сервера и их значение

Коды ответа HTTP

Код ответа (состояния) HTTP показывает, был ли успешно выполнен определённый HTTP запрос. Коды сгруппированы в 5 классов:

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

Следующая таблица содержит список всех кодов и их значения:

Этот ответ отсылается, когда веб сервер после выполнения server-driven content negotiation, не нашёл контента, отвечающего критериям, полученным из user agent.

Только HTTP/1.1407Proxy Authentication RequiredЭтот код ответа аналогичен коду 401, только аутентификация требуется для прокси сервера.Только HTTP/1.1408Request TimeoutОтвет с таким кодом может прийти, даже без предшествующего запроса. Он означает, что сервер хотел бы отключить это неиспользуемое соединение. Этот метод используется все чаще с тех пор, как некоторые браузеры, вроде Chrome и IE9, стали использовать HTTP механизмы предварительного соединения для ускорения сёрфинга (смотрите баг 634278, будущей реализации этого механизма в Firefox). Также учитывайте, что некоторые серверы прерывают соединения не отправляя подобных сообщений.Только HTTP/1.1409Conflict

Этот ответ отсылается, когда запрос конфликтует с текущим состоянием сервера.

Этот ответ отсылается, когда запрашиваемый контент удалён с сервера.

Только HTTP/1.1412Precondition FailedКлиент указал в своих заголовках условия, которые сервер не может выполнитьТолько HTTP/1.1413Request Entity Too Large

Размер запроса превышает лимит, объявленный сервером. Сервер может закрыть соединение, вернув заголовок Retry-After

Источник

Коды статусов ответа по протоколу HTTP

Информационный (Informational 1xx)

100=»Continue»
Начальная часть запроса принята, и клиент может продолжать передачу запроса.
101=»Switching Protocols»
Сервер выполняет требование клиента и переключает протоколы в соответствии с указанием, данным в поле заголовка Upgrade.

Запрос клиента успешен (Successful 2xx)

Ответы в диапазоне 200-299 означают, что запрос клиента обработан успешно.

200=»OK»
Запрос клиента обработан успешно, и ответ сервера содержит затребованные данные.
201=»Created»
Этот код состояния используется в случае создания нового URI. Вместе с этим кодом результата сервер выдает заголовок Location (см. главу 19), который содержит информацию о том, куда были помещены новые данные.
202=»Accepted»
Запрос принят, но обрабатывается не сразу. В теле содержимого ответа сервера может быть дана дополнительная информация о данной транзакции. Гарантии того, что сервер в конечном итоге удовлетворит запрос, нет, даже несмотря на то, что на момент приема запрос выглядел допустимым.
203=»Non-Authoritative Information»
Информация в заголовке содержимого взята из локальной копии или у третьей стороны, а не с исходного сервера.
204=»No Content»
Ответ содержит код состояния и заголовок, но тело содержимого отсутствует. При получении этого ответа броузер не должен обновлять свой документ. Обработчик чувствительных областей изображений может возвращать этот код, когда пользователь щелкает на бесполезных или пустых участках изображения.
205=»Reset Content»

Броузер должен очистить форму, используемую в данной транзакции, для дополнительных входных данных. Полезен для CGI-приложений, требующих ввода данных.

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

Запрос клиента переадресован (Redirection 3xx)

Код ответа в диапазоне 300-399 означает, что запрос не выполнен и клиенту нужно предпринять некоторые действия для удовлетворения запроса.

Это код ответа на заголовок lf-Modified-Since, если URI не изменялся с указанной даты. Тело содержимого не посылается, и клиент должен использовать свою локальную копию.

Доступ к затребованному URI должен осуществляться через proxy-сервер, указанный в заголовке Location.

Запрос клиента является неполным (Client Error 4xx)

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

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

416=»Requested Range Not Satisfiable»

Запрашиваемый диапазон не допустим

Ожидание не удалось

Превышен лимит запросов

450=Rating Service Unavailable

451=Unavailable For Legal Reasons

452 could be site not permitted by employer,

453 could be site not permitted by ISP

460 Blocked by Repressive Regime

Ошибки сервера (Server Error 5xx)

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

Сервер не поддерживает версию протокола HTTP, использованную в запросе.

Ошибки ( Error 7xx)

Ошибки ( Error 9xx)

Для отправки кода статуса из PHP используется директива «header Status».

Источник

Коды ответа веб сервера

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

Существует 5 диапазонов кодов состояния:

коды ответов сервера и их значение

Диапазон 100-199:

100 — Continue

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

101 — Switching Protocols

Означает, что сервер переключил протоколы.

102 — Processing

Означает, что идет обработка запроса и она займет много времени.

Диапазон 200-299:

200 — Ok

Сервер обработал запрос и передал информацию браузеру.

201 — Created

Сервер создал новый ресурс, после успешной обработки запроса.

202 — Accepted

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

203 — Non-Authoritative Information

Сервер передал информацию, но взял он ее на другом сервере.

204 — No Content

Запрос был успешно обработан сервером, но в ответе на запрос имеются только заголовки без сообщения.

205 — Reset Content

Сервер сообщает пользователю о необходимости почистить, введенные им ранее, данные.

206 — Partial Content

Сервер принял запрос и вернул только часть запрошенных данных.

Диапазон 300-399:

300 — Multiple Choices

Код говорит о том, что у одного URL есть несколько вариантов доступа к ресурсу, по каким-либо факторам. Чаще всего проблема кроется в неправильно указанных заголовках, если указать их правильно проблема исчезнет.

Пользователь запрашивает страницу, которая уже не поддерживается сервером. Сервер перенаправляет пользователя на другую страницу. Данный способ используется для редиректа.

Данный код похож на код 301, но отличается тем, что нужная страница временно недоступна. Например, на сайте ведутся работы и сервер перенаправляет пользователя на его дубликат, но с другим адресом.

303 — See Other

Код говорит о том, что запрошенная страница недоступна по запрашиваемому адресу, но доступна по другому, который можно найти по GET-запросу.

Страница не изменялась с определенного времени и она может быть использована браузером. Ускоряет время загрузки страниц, которые не изменялись.

305 — Use Proxy

Доступ к странице может быть произведен только через прокси-сервер.

307 — Temporary Redirect

Запрашиваемый ресурс временно недоступен по старому URL, но доступен по другому URL. Менять метод запроса не разрешается.

Диапазон 400-499:

Сервер не разобрал запрос пользователя из-за синтаксической ошибки.

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

402 — Payment Required

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

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

Страница которую хочет увидеть пользователь не найдена, так как удалена или ее адрес введен неверно.

405 — Method Not Allowed

Означает, что в запросе указан неподдерживаемый сервером метод.

406 — Not Acceptable

Пользователь пытается посмотреть страницу, которая есть на сервере, но имеет данные которые не поддерживаются у пользователя.

407 — Proxy Authentication Required

Сообщает о том, что для доступа к ресурсу необходима аутентификация прокси-сервера.

408 — Request Time-out

Пользователь не передал полные данные на сервер за определенное время. В итоге соединение было разорвано сервером.

409 — Conflict

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

410 — Gone

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

411 — Length Required

Запрос требует заполнение поля Content-Length.

413 — Request Entity Too Large

Сервер не может обработать запрос, так как он очень большой.

414 — Request URL Too Long

Слишком длинный URL, поэтому сервер не может его обработать.

415 — Unsupported Media Type

Сервер не может обработать запрос из-за того, что формат запроса клиента не поддерживается сервером.

416 — Requested Range Not Satisfiable

Пока значение поля Range не станет корректным, сервер не сможет выполнить запрос.

Данная ошибка возникает из-за того, что значение поля Expect являются некорректными.

422 — Unprocessable Entity

Какая-то часть запроса не обрабатывается сервером.

423 — Locked

Запрашиваемая страница была заблокирована.

424 — Failed Dependency

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

426 — Upgrade Required

Приняв запрос, сервер запрашивает SSL соединение, которое не поддерживается пользователем.

Диапазон 500-599:

На сервере произошла непредвиденная ошибка или аварийный отказ.

501 — Not Implemented

У сервера нет необходимых возможностей, для того чтобы обработать запрос.

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

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

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

505 — HTTP Version not supported

Указанный в запросе протокол HTTP сервер не поддерживает или отказывается работать с данной версией протокола.

507 — Insufficient Storage

Сервер не может обработать запрос, потому что места на диске недостаточно.

510 — Not Extended

На сервере не поддерживается расширение, которое хочет использовать пользователь. Дополнительно сервер может передать пользователю информацию о доступных расширениях.

Источник

Коды состояния HTTP: проверяем ответы сервера и убираем ошибки

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

Сегодня научимся проверять код как одной страницы, так и всех сразу, а также разберем все коды ответа и узнаем, что именно они означают.

Немного теории

Определить доступность веб-страницы поможет анализ кода состояния HTTP. Технически он представляет из себя стандартный запрос. Он отправляется, когда мы переходим по определенной ссылке на сайте или просто вводим ее в поисковой строке браузера. При обработке запроса сервер самостоятельно формирует и отдает трехзначный цифровой код.

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

Сперва определимся с терминами.

Выделяют пять классов ответов. Идентифицировать класс можно по первой цифре.

Логика кодов, таким образом, весьма проста:

коды ответов сервера и их значение

Что значат коды состояния HTTP

Причины / решения / пояснения ошибок, я буду давать только для самых часто встречающихся кодов. Для всех остальных – только краткое описание.

Двухсотые – успешные запросы

200 – успешный запрос данных. Код не является ошибкой.

201 – завершена успешная транзакция. Код говорит о том, что сформирован новый ресурс (или документ).

202 – запрос принят, но еще не завершен. Необходимо дождаться окончания обработки.

203 – данные получены не из первоисточника (возвращаемые данные идут не от исходного сервера, а от какого-то другого) и могут быть устаревшими.

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

205 – клиенту необходимо осуществить сброс содержимого. Саму страницу обновлять не требуется.

206 – ошибка частичного содержимого. Если клиент хочет выполнить загрузку данных в несколько потоков, а сервер выполняет только часть GET-запроса, будет возникать 206-ая ошибка.

GET-запрос предназначен для получения данных, в то время как POST-запрос нужен для отправки данных.

Код также может быть отправлен с сервера, когда клиент запросил диапазон (например, условно: «Дайте мне первые 2 МБ видеоданных»). Происходит возврат только частичного контента, соответствующего Range-заголовку (данный заголовок дает понять серверу, какую именно часть страницы от него требуют, и какую ему нужно вернуть).

Если страница отдает этот код, следует обратить внимание на выполнение кэширования и на исходящий запрос.

207 – выполнено несколько операций. Найти их можно в XML, в строке MultiStatus.

Трехсотые – запросы на редирект

300 – не удалось идентифицировать точный URL. Такой ответ возникает, когда существует множественный выбор, и краулер не знает, к какой именно странице относится ресурс.

301 – документ был навсегда перемещен на новый URL. Так должны отвечать все веб-страницы, которые удалены или являются зеркалами, дублями. Со временем все указанные страницы будут склеены с целевой веб-страницей (присоединены к ней) автоматически. Если возникает такая ошибка, нужно настроить 301-ое перенаправление с устаревшего URL на актуальный (если речь идет о веб-странице, которая уже ранжировалась, но ее URL изменился). В таком случае все позитивные метрики, включая вес URL, будут сохранены.

302 – документ был временно перемещен на новый URL. Это абсолютно корректный ответ сервера, который актуален для веб-страниц с распродажами или сезонными акциями, распространяющимися на какой-либо товар. Код указывает, что данный URI будет учитываться клиентом в последующих запросах. Другими словами, страница была найдена, но перенесена. Такие документы из индекса не удаляются. Если адрес был изменен навсегда, вместо 302-го, лучше использовать 303-ий или 307-ой ответ.

303 – нужно направить пользователя на иной URL. 303-ый код можно получить исключительно GET-запросом. В идеале, этот код нужно отдавать, когда требуется редиректнуть посетителя на близкорелевантую, но не идентичную странице.

304 – документ не модифицировался. Этот код не является стандартным редиректом. Он помогает краулерам определять страницы, которые не изменились с последнего визита.

Если на вашем сайте немного страниц (до 1 000), использовать код 304 нет смысла. Если вас напрягает этот редирект, то в заголовке нужно поправить параметр Last-Modified (последняя дата изменения) он не должен быть старше, чем заголовок If-Modified-Since (если изменялся спустя заданное количество времени).

305 – доступ к этому документу возможен исключительно через прокси.

307 – документ был временно перемещен на иной URL. Идеальный вариант, если требуется временно редиректнуть посетителя, но оставить техническую возможность отправки POST-запросов.

Четырехсотые – сбои на стороне клиента

400 – ошибка синтаксиса. Сервер не может идентифицировать запрос, так как была допущена опечатка в синтаксисе. Проверьте корректность отправляемого запроса.

401 – отсутствует аутентификация. Код отдается, когда для доступа требуется пароль или регистрация.

403 – отсутствует доступ к документу. Возникает, когда пользователь хочет открыть системные файлы (robots, htaccess). Либо вы сделали опечатку при вводе URL и пытаетесь воспользоваться веб-страницей, которая не предназначена для обычного пользователя, либо вам нужно: пройти авторизацию для доступа к системным файлам.

404 – отсутствует соответствующий ресурс по введенному URL. Разберитесь, по каким причинам была удалена / перемещена страница. Возможно, вы допустили ошибку и удалили ее случайно. Если так просто восстановите ее.

коды ответов сервера и их значение

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

406 – некорректный / неподдерживаемый краулером формат запроса. Код отдается, когда сервер не способен возвратить ответ, релевантный листу допустимых значений. Самый распространенный случай – поисковый робот не поддерживает кодировку документа или его язык. Убедитесь, что в теле сообщения содержится лист доступных ресурсов. Подробное описание ошибка на сайте веб-разработчиков Mozilla.

407 – отсутствует регистрация прокси или авторизация файервола.

408 – таймаут запроса. Соединение разорвано, так как полный запрос не был передан. Другими словами, запрос занял слишком много времени, а сервер не готов был ждать. На каждом сайте существует свое время таймаута. Проверьте наличие интернета и просто обновите страницу. Подробное объяснение этой ошибки на сайте веб-разработчиков Mozilla.

409 – несовместимость двух запросов. Запрос невозможно выполнить при текущем состоянии сервера. Самый распространенный случай – операции c PUT-запросом. Например, когда нужно скачать файл, возраст которого превышает возраст уже существующего, расположенного на сервере.

410 – ресурс более не существует по указанному URL. Если страница удаляется целенаправленно, лучше делать так, чтобы она отдавала именно 410-ый. Краулер обойдет такую страницу, получит этот код и больше никогда на нее не вернется, так как поймет, что она удалена навсегда. Если речь о веб-странице, которая была удалена временно, гораздо эффективнее использовать 404-ый ответ. Если страница удалена намерено и навсегда, но в SERP имела хорошие места и приносила трафик, лучше сделать редирект на максимально релевантную существующую страницу.

411 – сервер сам отклоняет отправляемый запрос, так как не находит значение Content-Length. Этот ответ характерен как для обычных POST-запросов, так и для PUT-запросов (подразумевают замену существующих представлений документа на данные, которые содержатся в самом запросе).

412 –не были до конца выполнены условные поля HTTP-заголовка, например, If-Match. 412-ый код появляется в случаях, когда доступ к целевому документу отклоняется. Нужно проверить соблюдение и корректность HTTP-заголовков выполняемого запроса.

413 – у каждого сервера есть свой собственный максимальный размер запроса, определяемый не самим HTTP-протоколом (у него ограничения по длине запроса просто напросто отсутствуют), а ограничениями со стороны браузеров. Браузеры поддерживают запросы от 2 до 8 килобайт. Вышеуказанный код отдается, когда сервер не понимает запрос из-за слишком большого размера.

414 – возникает, когда отправляется чрезвычайно длинный URL. Запросы, содержащие излишне длинные URL, не могут правильно интерпретироваться сервером. Самые частые случаи появления этого ответа – попытка передать удлиненные параметры (излишне большое количество данных через GET- запрос).

415 – некорректный медиаформат. Текущий тип данных не может быть интерпретирован сервером.

416 – некорректное значение Range (диапазон). Ответ возникает в случаях, когда в самом HTTP-заголовке прописывается некорректный байтовый диапазон. 416-ый отдается в случаях, когда сервер не может взаимодействовать с запрашиваемыми диапазонами. Причина – отсутствие диапазона в необходимом документе или опечатка в синтаксисе.Сервер просто не имеет возможности работать с запрашиваемыми диапазонами. Проверьте синтаксис значения Range – он должен обязательно соблюдаться. Скорее всего, документ просто не имеет запрашиваемых диапазонов. Обновите страницу.

417 – указанное значение Expect не может быть удовлетворено (речь о заголовке запроса). Прокси некорректно идентифицировал содержимое поля «Expect: 100-Continue». Устранить эту ошибку самостоятельно не удастся. Если вы используете прокси Squid, обратитесь в поддержку. Вам нужно активировать ignore_expect_100. Другой вариант ­ разрешите BS_PingHost обращаться к интернет-сети без участия прокси.

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

423 – используемый ресурс был заблокирован для выбранного HTTPметода. Перезагрузите роутер и компьютер. Используйте только статистический IP.

424 – зависимый ресурс был блокирован по соображением безопасности. Данный код отдается, если в запросе присутствуют признаки несанкционированного доступа к файлам CMS.

426 – некорректные значения полей Upgrade и Conection. Этот ответ возникает, когда серверу требуется обновление до SSL-протокола, но клиент не имеет его поддержки.

429 – слишком много запросов. Ошибка отдается, когда один пользователь проявляет чрезмерно большую активность за короткий временной интервал. Проверьте плагины используемой CMS. В идеале, отключите их все и включайте по очереди, пока не доберетесь до источника проблемы.

451 – доступ к серверу заблокирован по решению судебных органов. Можно плодить бесконечные дубли или вообще создать новый домен, но рано или поздно страницу с идентичным содержимым все равно заблокируют. Временное решение разместить проблемное содержимое на другом домене. Провайдеры могут подстраховаться и блокировать не только отдельные страницы, но и сайты целиком. Не нарушать закон – единственное, что можно посоветовать в этом случае.

Пятисотые – серверные сбои

500 – серверу не удается полностью обработать запрос. Такой код отдается, когда существует непредвиденное условие, мешающее выполнению запроса. Чаще всего внутренняя ошибка сервера может появляться при серверных сбоях. Проверяйте, корректно ли указаны директивы в системных файлах (особенно htaccess), нет ли ошибки прав доступа к файлам. Обратите внимание на ошибки внутри скриптов и их медленную работу.

Проверяйте конфликты плагинов и дополнений. Нередко 500-ая возникает, когда в настройках административной панели хостинга указана одна версия PHP, а на самом сайте используется другая. Последнее также создает высокую статическую нагрузку на хостинг. Если вам было бы узнать о пятисотой подробнее, пишите в комментариях, и я напишу развернутый материал на эту тему.

501 – не выполнено. Этот код отдается, когда сам сервер не может идентифицировать метод запроса. Сами вы эту ошибку не исправите. Устранить ее может только сервер.

502 – шлюзовый сбой. Возникает при получении некорректного ответа от сервера, находящегося по иерархии выше. Актуально исключительно для прокси и шлюзовых конфигураций.

503 – данный ответ возникает в случаях, когда существуют технические неполадки, не позволяющие интерпретировать введенный запрос. Скорее всего, ваш сервер просто на обслуживании или сильно перегружен. Уменьшите число перманентных запросов к базам данных. Убедитесь, что на сервере нет профилактических или других работ, ограничивающих его пропускную способность. Не используйте VPN.

504 – отсутствует ответ. Этот код отдается в одной ситуации – если сервер не может получит ответ за необходимый период времени. Отклика нет и возникает таймаут. Как и 501-ый ответ, 504-ый исправить самостоятельно не получится. Здесь дело в прокси, часто – в веб-сервере. Первым делом просто обновите веб-страницу. Если не помогло, нужно почистить DNS-кэш. Для этого используем сочетание горячих клавиш Windows+R и вводим команду cmd (Control+пробел). В открывшемся окне указываем команду ipconfig / flushdns и подтверждаем ее нажатием Enter.

коды ответов сервера и их значение

Теперь все сбои будут фиксировать в файле debug.log (находится в папке wp-сontents). Если вы используете другую CMS, найдите к ней мануал и посмотрите, как активировать в ней журнал ошибок.

Также 504-ая отдает, когда на сайте существуют проблемы, связанные с задействованием CDN или кастомизированных серверов DNS. Отключите CDN на своем сайте.

505 – отсутствует поддержка текущей версии HTTP-протокола.

507 – не хватает места на жестком диске для выполнения запроса.

510 – не найдено расширение, желающее задействовать клиент.

Массово проверяем ответ веб-страницы

Самый простой способ проверить ответ веб-страницы – воспользоваться готовыми сервисами. Наиболее популярны:

Возьмем для примера mainspy. Тут проверить код ответа проще всего:

коды ответов сервера и их значение

Таким образом, для проверки кода просто открываем страницу и вводим необходимые URL. Кликаем «Проверить». Будет выведен отчет. Напротив каждого проверяемого URL будет отображаться код ответа сервера:

коды ответов сервера и их значение

Кроме перечисленных сервисов есть также замечательный плагин для Google Chrome – HTTP Header Spy. Он позволяет проверять код ответа сервера как одной, так и нескольких страниц сразу:

коды ответов сервера и их значение

Послесловие

Коды ответа HTTP – это универсальный язык, который понимают не только краулеры Google / «Яндекса», но и люди. 5 классов кодов позволят с первого взгляда определить, где именно существует ошибка при выполнении HTTP запроса и куда копать для ее устранения.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *