Информационные | |||
---|---|---|---|
100 | Continue | «Продолжить». Этот промежуточный ответ указывает, что запрос успешно принят и клиент может продолжать присылать запросы либо проигнорировать этот ответ, если запрос был завершён. | Только HTTP/1.1 |
101 | Switching Protocol | «Переключение протокола». Этот код присылается в ответ на запрос клиента, содержащий заголовок Upgrade: , и указывает, что сервер переключился на протокол, который был указан в заголовке. Эта возможность позволяет перейти на несовместимую версию протокола и обычно не используется. | Только HTTP/1.1 |
102 | Processing | «В обработке». Этот код указывает, что сервер получил запрос и обрабатывает его, но обработка еще не завершена. | Только HTTP/1.1 |
103 | Early Hints | «Ранние подсказки». В ответе сообщаются ресурсы, которые могут быть загружены заранее, пока сервер будет подготовливать основной ответ. RFC 8297 (Experimental). | Только HTTP/1.1 |
Успешные | |||
200 | OK | «Успешно». Запрос успешно обработан. Что значит «успешно», зависит от метода HTTP, который был запрошен:
| HTTP/0.9 и выше |
201 | Created | «Создано». Запрос успешно выполнен и в результате был создан ресурс. Этот код обычно присылается в ответ на запрос PUT «ПОМЕСТИТЬ». | HTTP/0.9 и выше |
202 | Accepted | «Принято». Запрос принят, но ещё не обработан. Не поддерживаемо, т.е., нет способа с помощью HTTP отправить асинхронный ответ позже, который будет показывать итог обработки запроса. Это предназначено для случаев, когда запрос обрабатывается другим процессом или сервером, либо для пакетной обработки. | HTTP/0.9 и выше |
203 | Non-Authoritative Information | «Информация не авторитетна». Этот код ответа означает, что информация, которая возвращена, была предоставлена не от исходного сервера, а из какого-нибудь другого источника. Во всех остальных ситуациях более предпочтителен код ответа 200 OK. | HTTP/0.9 и 1.1 |
204 | No Content | «Нет содержимого». Нет содержимого для ответа на запрос, но заголовки ответа, которые могут быть полезны, присылаются. Клиент может использовать их для обновления кешированных заголовков полученных ранее для этого ресурса. | HTTP/0.9 и выше |
205 | Reset Content | «Сбросить содержимое». Этот код присылается, когда запрос обработан, чтобы сообщить клиенту, что необходимо сбросить отображение документа, который прислал этот запрос. | Только HTTP/1.1 |
206 | Partial Content | «Частичное содержимое». Этот код ответа используется, когда клиент присылает заголовок диапазона, чтобы выполнить загрузку отдельно, в несколько потоков. | Только HTTP/1.1 |
Сообщения о перенаправлениях | |||
300 | Multiple Choice | «Множественный выбор». Этот код ответа присылается, когда запрос имеет более чем один из возможных ответов. И User-agent или пользователь должен выбрать один из ответов. Не существует стандартизированного способа выбора одного из полученных ответов. | HTTP/1.0 and later |
301 | Moved Permanently | «Перемещён на постоянной основе». Этот код ответа значит, что URI запрашиваемого ресурса был изменен. Возможно, новый URI будет предоставлен в ответе. | HTTP/0.9 and later |
302 | Found | «Найдено». Этот код ответа значит, что запрошенный ресурс временно изменен. Новые изменения в URI могут быть доступны в будущем. Таким образом, этот URI, должен быть использован клиентом в будущих запросах. | HTTP/0.9 and later |
303 | See Other | «Просмотр других ресурсов». Этот код ответа присылается, чтобы направлять клиента для получения запрашиваемого ресурса в другой URI с запросом GET. | HTTP/0.9 and 1.1 |
304 | Not Modified | «Не модифицировано». Используется для кэширования. Это код ответа значит, что запрошенный ресурс не был изменен. Таким образом, клиент может продолжать использовать кэшированную версию ответа. | HTTP/0.9 and later |
305 | Use Proxy | «Использовать прокси». Это означает, что запрошенный ресурс должен быть доступен через прокси. Этот код ответа в основном не поддерживается из соображений безопасности. | HTTP/1.1 only |
306 | Switch Proxy | Больше не использовать. Изначально подразумевалось, что » последующие запросы должны использовать указанный прокси.» | HTTP/1.1 only |
307 | Temporary Redirect | «Временное перенаправление». Сервер отправил этот ответ, чтобы клиент получил запрошенный ресурс на другой URL-адрес с тем же методом, который использовал предыдущий запрос. Данный код имеет ту же семантику, что код ответа 302 Found , за исключением того, что агент пользователя не должен изменять используемый метод HTTP: если в первом запросе использовался , то во втором запросе также должен использоваться POST . | HTTP/1.1 only |
308 | Permanent Redirect | «Перенаправление на постоянной основе». Это означает, что ресурс теперь постоянно находится в другом URI, указанном в заголовке Примечание: Это экспериментальный код ответа, Спецификация которого в настоящее время находится в черновом виде. | draft-reschke-http-status-308 |
Клиентские | |||
400 | Bad Request | «Плохой запрос». Этот ответ означает, что сервер не понимает запрос из-за неверного синтаксиса. | HTTP/0.9 and later |
401 | Unauthorized | «Неавторизовано». Для получения запрашиваемого ответа нужна аутентификация. Статус похож на статус 403, но,в этом случае, аутентификация возможна. | HTTP/0.9 and later |
402 | Payment Required | «Необходима оплата». Этот код ответа зарезервирован для будущего использования. Первоначальная цель для создания этого когда была в использовании его для цифровых платежных систем(на данный момент не используется). | HTTP/0.9 and 1.1 |
403 | Forbidden | «Запрещено». У клиента нет прав доступа к содержимому, поэтому сервер отказывается дать надлежащий ответ. | HTTP/0.9 and later |
404 | Not Found | «Не найден». Сервер не может найти запрашиваемый ресурс. Код этого ответа, наверно, самый известный из-за частоты его появления в вебе. | HTTP/0.9 and later |
405 | Method Not Allowed | «Метод не разрешен». Сервер знает о запрашиваемом методе, но он был деактивирован и не может быть использован. Два обязательных метода, GET и HEAD , никогда не должны быть деактивированы и не должны возвращать этот код ошибки. | HTTP/1.1 only |
406 | Not Acceptable | Этот ответ отсылается, когда веб сервер после выполнения server-driven content negotiation, не нашел контента, отвечающего критериям, полученным из user agent. | HTTP/1.1 only |
407 | Proxy Authentication Required | Этот код ответа аналогичен коду 401, только аутентификация требуется для прокси сервера. | HTTP/1.1 only |
408 | Request Timeout | Ответ с таким кодом может прийти, даже без предшествующего запроса. Он означает, что сервер хотел бы отключить это неиспользуемое соеднинение. Этот метод используется все чаще с тех пор, как некоторые браузеры, вроде Chrome и IE9, стали использовать HTTP механизмы предварительного соединения для ускорения серфинга (смотрите баг 634278, будущей реализации этого механизма в Firefox). Также учитывайте, что некоторые серверы прерывают соединения не отправляя подобных сообщений. | HTTP/1.1 only |
409 | Conflict | Этот ответ отсылается, когда запрос конфликтует с текущим состоянием сервера. | HTTP/1.1 only |
410 | Gone | Этот ответ отсылается, когда запрашиваемый контент удален с сервера. | HTTP/1.1 only |
411 | Length Required | Запрос отклонен, потому что сервер требует указание заголовка | HTTP/1.1 only |
412 | Precondition Failed | Клиент указал в своих заголовках условия, которые сервер не может выполнить | HTTP/1.1 only |
413 | Request Entity Too Large | Размер запроса превышает лимит, объявленный сервером. Сервер может закрыть соединение, вернув заголовок | HTTP/1.1 only |
414 | Request-URI Too Long | URI запрашиваемый клиентом слишком длинный для того, чтобы сервер смог его обработать | HTTP/1.1 only |
415 | Unsupported Media Type | Медиа формат запрашиваемых данных не поддерживается сервером, поэтому запрос отклонен | HTTP/1.1 only |
416 | Requested Range Not Satisfiable | Диапозон указанный заголовком запроса Range не может быть выполнен; возможно, он выходит за пределы переданного URI | HTTP/1.1 only |
417 | Expectation Failed | Этот код ответа означает, что ожидание, полученное из заголовка запроса Expect , не может быть выполнено сервером. | HTTP/1.1 only |
Серверные | |||
500 | Internal Server Error | «Внутренняя ошибка сервера». Сервер столкнулся с ситуацией, которую он не знает как обработать. | HTTP/0.9 and later |
501 | Not Implemented | «Не выполнено». Метод запроса не поддерживается сервером и не может быть обработан. Единственные методы, которые сервера должны поддерживать (и, соответственно, не должны возвращать этот код) — GET и HEAD . | HTTP/0.9 and later |
502 | Bad Gateway | «Плохой шлюз». Эта ошибка означает что сервер, во время работы в качестве шлюза для получения ответа, нужного для обработки запроса, получил недействительный (недопустимый) ответ. | HTTP/0.9 and later |
503 | Service Unavailable | «Сервис недоступен». Сервер не готов обрабатывать запрос. Зачастую причинами являются отключение сервера или то, что он перегружен. Обратите внимание, что вместе с этим ответом удобная для пользователей(user-friendly) страница должна отправлять объяснение проблемы. Этот ответ должен использоваться для временных условий и Retry-After: HTTP-заголовок должен, если возможно, содержать предполагаемое время до восстановления сервиса. Веб-мастер также должен позаботиться о заголовках, связанных с кэшем, которые отправляются вместе с этим ответом, так как эти ответы, связанные с временными условиями, обычно не должны кэшироваться. | HTTP/0.9 and later |
504 | Gateway Timeout | Этот ответ об ошибке предоставляется, когда сервер действует как шлюз и не может получить ответ вовремя. | HTTP/1.1 only |
505 | HTTP Version Not Supported | «HTTP-версия не поддерживается». HTTP-версия, используемая в запроcе, не поддерживается сервером. | HTTP/1.1 only |
Коды статусов ответа по протоколу HTTP
У Вас в браузере заблокирован JavaScript. Разрешите JavaScript для работы сайта!
Эти коды определены www.w3.org/Protocols/rfc2616/rfc2616-sec10.html:
Информационный (Informational 1xx)
Ответы в диапазоне 100-199 — информационные. Они показывают, что запрос клиента принят и обрабатывается.
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-приложений, требующих ввода данных.
206=»Partial Content»Сервер возвращает лишь часть данных затребованного объема. Используется в ответе на запрос с указанием заголовка Range. Сервер должен указать диапазон, включенный в ответ, в заголовке Content-Range.
233 — because not everyone lives in «your country»Запрос клиента переадресован (Redirection 3xx)
Код ответа в диапазоне 300-399 означает, что запрос не выполнен и клиенту нужно предпринять некоторые действия для удовлетворения запроса.
300=»Multiple Choices»Затребованный URI обозначает более одного ресурса. Например, URI может обозначать документ, переведенный на несколько языков. В теле содержимого, возвращенном сервером, может находиться перечень более конкретных данных о том, как выбрать ресурс правильно.
301=»Moved Permanently» — перемещен навсегда
Затребованный URI уже не используется сервером, и указанная в запросе операция не выполнена. Новое местонахождение затребованного документа указывается в заголовке Location. Во всех последующих запросах данного документа следует указывать новый URI.
При запросах не методом HEAD сервер должен передать в теле сообщения гипертекстовое пояснение. При использовании всех методов, кроме GET и POST, предварительно следует уведомить пользователя об изменении ссылки. Не стоить забывать, что некоторые агенты ошибочно меняют метод POST на GET после перехода на другой адрес.
302=»Moved Temporarily» — временно перемещен
Затребованный URI перемешен, но лишь временно. Заголовок Location указывает на новое местонахождение. Сразу же после получения этого кода состояния клиент должен разрешить запрос при помощи нового URI, но во всех последующих запросах необходимо пользоваться старым URI.
При всех методах кроме HEAD сервер должен передать в теле гипертекстовое пояснение. При использовании всех отличных от GET и POST методов предварительно следует уведомить пользователя об изменении URI. При обращении к следующему ресурсу метод POST на GET менять следует как это делают некоторые агенты.
303=»See Other»
Затребованный URI можно найти по другому URI (указанному в заголовке Location). Его следует выбрать методом GET по данному ресурсу.
304=»Not Modified»
Это код ответа на заголовок lf-Modified-Since, если URI не изменялся с указанной даты. Тело содержимого не посылается, и клиент должен использовать свою локальную копию.
305=»Use Proxy»Доступ к затребованному URI должен осуществляться через proxy-сервер, указанный в заголовке Location.
306=»(Unused)» 307=»Temporary Redirect»Запрос клиента является неполным (Client Error 4xx)
Коды ответов в диапазоне 400-499 означают, что запрос клиента неполный. Эти коды могут также означать, что от клиента требуется дополнительная информация.
400=»Bad Request»Означает, что сервер обнаружил в запросе клиента синтаксическую ошибку.
401=»Unauthorized» — требуется авторизация
Этот код результата, передаваемый с заголовком WWW-Authenticate, показывает, что пославший запрос пользователь не имеет необходимых полномочий и что при повторении запроса с указанием данного URI пользователь должен такие полномочия предоставить.
402=»Payment Required»
Этот код в HTTP еще не реализован.
403=»Forbidden»
Запрос отклонен по той причине, что сервер не хочет (или не имеет возможности) ответить клиенту.
404=»Not Found» — не найдено
Документ по указанному URI не существует.
405=»Method Not Allowed» — метод не поддерживается
Этот код выдается с заголовком Allow и показывает, что метод, используемый клиентом, для данного URI не поддерживается.
406=»Not Acceptable»
Ресурс, указанный клиентом по данному URI, существует, но не в том формате, который нужен клиенту. Вместе с этим кодом сервер выдает заголовки Content-Language, Content-Encoding и Content-Type.
407=»Proxy Authentication Required» Прокси-сервер затребовал авторизацию.
Proxy-сервер должен санкционировать запрос перед тем, как пересылать его. Используется с заголовком Proxy-Authenticate.
408=»Request Time-out»
Этот код ответа означает, что клиент не передал полный запрос в течение некоторого установленного промежутка времени (который обычно задается в конфигурации сервера) и сервер разрывает сетевое соединение.
409=»Conflict»
Данный запрос конфликтует с другим запросом или с конфигурацией сервера. Информацию о конфликте следует возвратить в информационной части ответа.
410=»Gone»
Данный код показывает, что затребованный URI больше не существует и навсегда удален с сервера.
411=»Length Required»
Сервер не примет запрос без указанного в нем заголовка Content-Length.
412=»Precondition Failed»
Результат вычисления условия, заданного в запросе одним или несколькими заголовками if. . ., представляет собой «ложь».
413=»Request Entity Too Large»
Сервер не будет обрабатывать запрос, потому что его тело слишком велико.
414=»Request-URI Too Long» — запрос слишком длинный
Сервер не будет обрабатывать запрос, потому что его URI слишком длинный.
415=»Unsupported Media Type»
Сервер не будет обрабатывать запрос, потому что его тело имеет неподдерживаемый формат.
416=»Requested Range Not Satisfiable»Запрашиваемый диапазон не допустим
417=»Expectation Failed»Ожидание не удалось
422=»Unprocessable Entity» — сервер успешно принял запрос, может работать с указанным видом данных (например, в теле запроса находится XML-документ, имеющий верный синтаксис), однако имеется какая-то логическая ошибка, из-за которой невозможно произвести операцию над ресурсом.В некоторых системах используется для передачи требования дополнительных данных: NOT ENOUGH DATA (не хвататет данных) 429=»You exceeded the rate limit»
Превышен лимит запросов
449 — Retry with a proxy in another country. 450=Rating Service Unavailable 451=Unavailable For Legal Reasonsдоступ к ресурсу ограничен из-за проблем с законом. 451 — Site is not permitted in your country
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 показывают, что сервер столкнулся с ошибкой и, вероятно, не сможет выполнить запрос клиента.
500=»Internal Server Error»При обработке запроса на сервере один из его компонентов выдал аварийный отказ или столкнулся с ошибкой конфигурации. Часто бывает связанно с ошибками в файле .htaccess
501=»Not Implemented»
Клиент запросил выполнение действия, которое сервер выполнить не может.
502=»Bad Gateway»
Сервер (или proxy-сервер) получил недопустимые ответы другого сервера (или proxy-сервера).
503=»Service Unavailable»
Данный код означает, что данная служба временно недоступна, но в будущем доступ к ней будет восстановлен. Если сервер знает, когда это произойдет, может быть также выдан заголовок Retry-After.
504=»Gateway Time-out»
Этот ответ похож на 408 (Request Time-out), за исключением того, что шлюз или уполномоченный сервер превысил лимит времени.
505=»HTTP Version not supported»
Сервер не поддерживает версию протокола HTTP, использованную в запросе.
560 — Server is being censoredОшибки ( Error 7xx)
701 — Your ISP is being a twat. 702 — Your organization is being a twat. 703 — Your government is being a twat 704 — Your ISP is being a twat, and has messed with your DNS request, sending you to a spamvertizement for the domain requested. 705 — Your ISP is throttling / packet shaping the living hell out of your connection. 706 — Variant HTML requested (mobile, Flash-free….lots of flags in here). 707 — The current server time (in ticks since the epoch) & the server’s time zone.Ошибки ( Error 9xx)
911 — Internet Emergency. The provider of this connection is being forced to censor this requestДля отправки кода статуса из PHP используется директива «header Status».
Описание HTTP-кодов на wikipedia.
HTTP | Все коды ошибок
Во время запроса информации с удаленного веб сервера может возникнуть ошибка, тогда веб-сервер посылает в ответ код ошибки HTTP. Например 404 – Not Found (ресурс не найден).
Коды состояния HTTP состоят из трех цифр от 100 и до 510. Они делятся на следующие группы:
Введите в поле ниже интересующий Вас трех символьный код и получите его описание:
100
ContinueCервер удовлетворён начальными сведениями о запросе, клиент может продолжать пересылать заголовки. Появился в 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 поддержкой расширений.
HTTP коды ответов сервера 200 ОК, 404, 301, 302, 304, 500
СОДЕРЖАНИЕ
Какие бывают http ответы сервера (сайта, страницы)?
Ответ сервера 1XX
Ответ сервера 200
Ответ сервера 301
Ответ сервера 302
Ответ сервера 404
Ответ сервера 500
Ответ сервера 502
Ответ сервера 550
Как получить коды ответа сервера (страницы) через Яндекс
Как еще узнать коды ответа сервера (сайта)?
Массовая проверка ответов сервера (сайта) онлайн
Как проверить скорость (время) ответа сервера сайта?
Долгий ответ сервера
Какое должно быть время ответа сервера?
Сокращение ответа сервера
Какие бывают http ответы сервера (сайта, страницы)?
Коды ответа http сервера (англ. HTTP status code) являются частью первой строки ответа сервера. Он представляет собой целое трехзначное число, первая цифра которого указывает на класс состояния. Вместе с кодом ответа выдается короткая англоязычная подсказка. Продвижение сайтов в сети интернет невозможно без знания ответов сервера.
Пример:
404 Not found
Дальнейшие действия зависят именно от того, какой код ответа дал сервер или страница. Ввиду того что набор кодов является стандартным для всех сайтов/страниц/серверов, действия при выдаче того или иного кода тоже будут стандартными.
На сегодняшний день выделено 5 основных классов кода ответа:
1xx: Informational (рус. Информационный) — запрос правильно воспринят, но его обработка не завершена.
2xx: Success (рус. Успешно) — запрос правильно воспринят и успешно обработан.
3xx: Redirection (рус. Перенаправление) — коды переадресации на другие страницы.
4xx: Client Error (рус. Ошибка клиента) — ошибка со стороны клиента.
5xx: Server Error (рус. Ошибка сервера) — ошибка со стороны сервера.
А теперь давайте по отдельности разберем некоторые коды состояния IANA.
Ответ сервера 1XX
100 Continue Server Code
100 Continue сообщает, что связь с сервером уже установлена, сервер принял корректный запрос и теперь ведется обмен данными между сервером и клиентом. Данный код является временным, т.е. за ним всегда следует другой. Код 100 является внутренним и не относится к ошибочным. Т.е. «дверь открыта, читай что нужно, как закончишь – закрой». Код 100 может и не генерироваться, если пользователь уже получил часть данных от сервера.
101 Switching Protocols
Данный код так же не является ошибочным. Генерируется при переключении с одного протокола на другой. Например, при запросе переключения со старой версии HTTP на более новую.
Это, один из самых простых серверных кодов. Он означает, что со стороны пользователя поступил запрос на переключение типа протокола, используемого на веб-сервере, и сервер дал согласие на это.
102 Processing
В каком-то смысле это аналог кода 100. Генерируется в том случае, когда обработка запроса может занять много времени. Для этих целей таймер ожидания сбрасывается и ожидание дальнейших команд происходит в обычном режиме. Так же не является кодом ошибки.
Ответ сервера 200 ОК
По праву занимает самое первое место по важности и популярности, т.к. именно его отдает сервер в случае успешной и правильной обработки запроса пользователя.
Ответ сервера 301
Также является одним из распространенных кодов ответа. Он сообщает, что запрашиваемая страница по данному адресу более не доступна, а затем происходит перенаправление на другой адрес. 301 редирект может применяться, например, при «переезде» сайта с протокола HTTP на HTTPS (обычно это реализуется через файл .htaccess, доступный на серверах Apache).
Ответ сервера 302
Данный код сообщает о том, что расположение запрашиваемой страницы временно изменено. Также должна быть предоставлена информация о новом местоположении запрашиваемого документа. Данный код изначально использовался в качестве основного способа перенаправления.
Ответ сервера 404
Вот уж что-что, а ошибку ответа сервера 404 не видели только те, кто еще не родился и те, кто умер до создания интернета. Данный код сообщает о том, что запрашиваемый документ по каким-то причинам на сайте отсутствует. Код ошибки ответа сервера 404 должен отдаваться только в том случае, если по указанному пользователем адресу документа никогда не было. Если документ ранее был доступен по этому адресу, а потом его удалили с сайта, то сервер должен отдавать код 410, а не 404.
Фейковые страницы 404
Большинство вебмастеров не обращает на 404-тые страницы никакого внимания, однако, это может серьезно навредить ранжированию сайта. Парадокс, но страница с сообщением 404 File Not Found далеко не всегда отдает код 404. Такие страницы принято называть «Soft 404». Причины возникновения просты – по каким-то причинам страница отдает код, отличный от 404 и 410 – например, 200. Такое вполне возможно, если страница уже создана, но контента на ней пока нет.
Ответ сервера 500
Все коды серии 5хх свидетельствуют о том, что сервер не в состоянии завершить обработку запроса. Вместе с кодом должно появляться и поясняющая подсказка (с причиной) на английском языке.
500 Internal Server Error
Код 500 отдается в случае любой внутренней ошибки сервера, за исключением остальных ошибок 5хх класса. Такая ошибка может быть отдана в том случае, когда ссылка генерируется на сервере непосредственно в момент запроса. Простейший пример – внутренний поиск по сайту: физически никакого документа по запрашиваемой ссылке нет.
Ответ сервера 502
Код 502 может отображаться в тех случаях, когда сервер играет роль шлюза или прокси, но при этом не удалось «найти общий язык» между ним и вышестоящим сервером, т.е., по сути, это просто ошибка обмена данных.
Ответ сервера 550
При возникновении ошибки 550 необходимо проверить насколько корректно прописаны MX-записи, чтобы устранить данные ошибки ответа сервера .
Для проверки необходимо перейти по ссылке (https://www.reg.ru/nettools/dig), затем прописать имя проверяемого домена, а в списке выбрать «MX». Теперь нажимаем Проверить:
На выходе будет представлена таблица.
Необходимо убедиться, что в ней прописаны необходимые записи для работы вашей почты:
Почта |
MX-записи |
Почта REG.RU на хостинге |
mx1.hosting.reg.ru и mx2.hosting.reg.ru |
Yandex |
mx.yandex.net |
Google Apps |
aspmx.l.google.com … |
Mail.Ru для бизнеса |
emx.mail.ru |
Расширенная защита от спама |
mxs1.reg.ru и mxs2.reg.ru |
Почта REG.RU на VPS |
mail.domain.ru |
ВАЖНО! Смешивание MX-записей недопустимо, т.е. в таблице на выдаче должны быть только те MX-записи, которые нужны именно для вашей почты. При необходимости нужно скорректировать записи, исправив ошибки и/или удалив лишнее.
Как получить коды ответа сервера (страницы) через Яндекс
Шаг 1. Проверяем код ответа сервера на страницу сайта, которая должна быть в поиске.
Открываем любую страницу Вашего сайта, находящуюся в поисковой выдаче Яндекса, затем из адресной строки копируем ее URL-адрес.
Теперь переходим в сервис Яндекса (http://webmaster.yandex.ru/server-response.xml), с помощью которого можно посмотреть на сайт глазами робота и проверить скорость ответа сервера в Яндекс панели.
Просто вставляем url-адрес интересующей нас страницы в текстовое поле и нажимаем на кнопку «Проверить». В данном случае мы получили код 200 ОК, свидетельствующий о нормальной работе страницы.
Шаг 2. Проверяем ответ сервера на заведомо несуществующую страницу.
В том же сервисе вводим имя_домена/какая-то_крокозябра
В данном случае мы получили ответ 301 Moved Permanently. Это говорит о том, что адрес страницы указан неверно и происходит переадресация на правильный адрес.
Как еще узнать коды ответа сервера (сайта)?
Mainspy
В качестве альтернативы можно пробить код ответа с помощью сервиса http://mainspy.ru. Работает аналогично сервису Яндекса: вставляем интересующий URL и жмем «Проверить». Код ответа в данном случае находится в самой первой строке:
Bertal
Bertal, в отличие от Mainspy, позволяет взглянуть на страницу не только глазами Яндекс-бота, но и глазами поисковых роботов Bing и Google, а в качестве бонуса – может эмулировать популярные браузеры. Для удобства взглянем на те же страницы глазами GoogleBot. В данном случае код ответа подсвечен зеленым.
Массовая проверка ответов сервера (сайта) онлайн
Массовая проверка кодов ответа может пригодиться для поиска неработающих сайтов, на которых были куплены ссылки (через биржи или напрямую – неважно).
Dimax.biz — http://backlinks-checker.dimax.biz/tools/proverka_otveta_servera.php – это один из лучших чекеров. Единственный минус – в бесплатном режиме можно делать не более 2 запросов по 50 ссылок каждый. Для более «серьезных» объемов придется воспользоваться платным PRO-тарифом. На выходе мы получаем список, отсортированных по коду ответа. В данном случае в сортировке нет необходимости, т.к. в списке всего 2 адреса, и оба отдают код 200.
Urlitor
Urlitor – еще один сервис, для массовой проверки кодов ответа. Сервис хорош тем, что результаты проверки сводятся в таблицу для облегчения восприятия. К слову – ссылки в таблице кликабельны.
Как проверить скорость (время) ответа сервера сайта?
Сколько таких сервисов уже развелось – не пересчитать. Рассмотрим некоторые из них.
Pingdom
Это англоязычный инструмент, анализирующий скорость по всем параметрам. С его помощью можно узнать скорость в секундах, сколько весит тестируемая страница, а также получить оценку и рекомендации для ее улучшения. Преимущество данного сервиса в том, что анализируется каждый отдельный элемент. Такой анализ позволяет выяснить, что именно затормаживает загрузку отдельно взятой страницы и/или сайта в целом.
Which Loads Faster
Основная фишка данного сервиса в том, что анализируется время загрузки одновременно двух ресурсов. Это позволяет узнать, какой из двух ресурсов работает быстрее. Единственный минус – при разных подключениях и в разных браузерах результат может отличаться.
Google PageSpeed Insights
Google PageSpeed Insights так же является одним из самых мощных инструментов для измерения скорости работы мобильной и десктопной версии. Оценка производится по 100-бальной шкале. 85 баллов и более – это хороший показатель. Плюс бонусом он выдает рекомендации по улучшению.
Долгий ответ сервера
Ответ, длительность которого составляет больше, чем полсекунды, принято называть «долгим». Поэтому, при длительной загрузке сайте вы можете видеть сообщение в браузере «превышено время ожидания ответа от сервера». Причин долгого ответа может быть уйма:
— сложная логика предоставления данных
— сервер не успевает своевременно обрабатывать поступающие запросы из-за их большого количества
— сами запросы (либо сложные, либо неоптимизированные, либо и то и другое)
— запросы к большому количеству внешних ресурсов
— большое количество исполняемых файлов
— сам веб-сервер долго обрабатывает запрос.
Самые «больные» места производительности сервера:
Используемый веб-сервер (Apache, IIS).
Ряд веб-серверов даже при выдаче статических файлов могут создавать задержки, т.к. они на архитектурном уровне не предназначены для обработки большого количества запросов и из-за этого может быть сообщения что превышено время ожидания ответа от сервера. Поэтому для нормальной работы веб-сервера имеет смысл использовать nginx (причем в связке с Apache, php-fpm, а также остальными серверами приложений для обработки серверных вычислений).
Использование OpCache.
Сократите время ответа сервера путем кэширования исполняемого кода (скриптов сайта) – оно позволяет воспользоваться уже готовым результатом вместо того, чтоб каждый раз переводить PHP-инструкции в бинарный код. Но это кэширование с кэшированием результатов выполнения PHP-скриптов не имеет вообще ничего общего.
Запросы к базе данных.
Второй шаг к быстродействию сервера — настройка таблиц (индексов) в базе данных и их структурирование, чтоб облегчить обработку запросов. Сюда же можно отнести пересчет промежуточных и кэширование наиболее часто используемых результатов в отдельные таблицы. Это снизит потребление серверных ресурсов в несколько раз и поможет сократить время ответа сервера.
Сложная логика обработки данных.
Третий шаг – упрощение серверной логики. По сути, это просто устранение ненужных операций и профилирование времени выполнения серверных скриптов.
Обращение к сторонним сервисам.
Прописанные в коде серверных скриптов запросы к сторонним сервисам – это «обычная история», способная преподнести множество сюрпризов, поскольку производительность сервисов, откуда запрашиваются данные, практически никогда и никем не проверяется. А ведь время ответа стороннего сервиса напрямую влияет на время ответа сервера. Поэтому лучше всего в серверных запросах использовать только внутренние источники, которые в любой момент можно проконтролировать на качество производительности, либо в отложенном режиме запросить данные на клиентской.
Почему скорость ответа веб сервера влияет на продвижение.
Во-первых, потому что скорость загрузки является одним из факторов ранжирования (хоть и не решающим). Google открыто заявляет, что по скорости показа страниц ранжируется менее 1% сайтов. НО…
Во-вторых, если страница слишком долго грузится — пользователь ее просто закроет. Такое поведение пользователя принято называть «отказом». К слову, «отказы» оказывают прямое влияние на позиции в поисковой выдаче. Чем выше скорость загрузки – тем ниже процент отказов и, как следствие, тем выше позиции.
Превышено время ожидания ответа от сервера.
Для начала важно понимать причину возникновения сбоя. Т.е. пользователь вводит адрес, а браузер в этот момент отправляет группу запросов, а также включает обратный секундомер на каждый из них. Если по истечении заданного времени браузер не получает ответ на свой запрос, то пользователь увидит вот такую неприятную картинку.
Основных же причин сбоя может несколько:
- Невозможно подключиться к сайту из-за нестабильной работы его серверов;
- Сбитые настройки браузера либо его захламленность;
-
Проблемы с подключением к интернету со стороны пользователя;
-
Ресурс заблокирован.
Что делать для решения?
Если сбой единичен – перезагружаем страницу с помощью комбинации Ctrl+F5. Возможно, потребуется перезагрузить страницу несколько раз. Если не помогло – проверяем подключение к интернету.
Настройки Сети.
1. Некоторые сайты иногда «капризничают». Для динамического IP решение будет простым – перезагрузить роутер через отключение питания.
2. Медленное соединение иногда провоцирует ошибку ERR_CONNECTION_TIMED_OUT. Скорость работы интернета можно проверить через Яндекс-интернетометр. Если скорость слишком низкая – следует обратиться к интернет-провайдеру.
3. Необходимо проверить «Свойства сети» на наличие посторонних DNS-адресов. Если такие адреса имеются – удалить (предварительно на всякий случай переписав их куда-нибудь) и проверить систему на вирусы с помощью установленного на ПК антивирусного ПО – NOD32, Kaspersky, AdwCleaner, MalwareBytes, Dr.Web и т.д. Лучше всего для этих целей использовать Live-загрузчики.
4. Проверить настройки самого роутера. Наиболее часто сбивается параметр MTU. Универсальных рекомендаций по настройке роутера дать невозможно, т.к. это напрямую зависит и от модели роутера, и от интернет-провайдера. Обычно MTU имеет значения 1500, 1460, 1476.
Какое должно быть время ответа сервера?
И сразу же конкретные цифры:
— самая высокая конверсия у страниц, которые полностью загружаются за 1,8 и 2,7 секунды для десктопной и мобильной версий соответственно
— самый низкий показатель отказов у страниц, которые полностью загружаются за 1 и 0.7 секунды для десктопной и мобильной версий соответственно
Данные цифры позаимствованы из исследования Akamai Technologies.
Итак, Вы проверили сайт на скорость загрузки. Но как реагировать на результаты?
-
<1 секунды – идеал
-
1-2 секунды – почти идеал
-
3-5 секунд – сносно, но имеет смысл допилить
-
5-10 секунд – плохо, нужно срочно допиливать
-
≥10 секунд – очень плохо, нужно ЭКСТРЕННО допиливать
Однако, нельзя забывать одно ультраважное правило – скорость загрузки должна быть выше, чем у конкурентов. Исследования The New York Times доказали, что разницы в 0,25 секунды может быть достаточно для того, чтоб посетители предпочли более быстрый сайт. И глазом моргнуть не успеете (в самом прямом смысле), как пользователь уйдет от Вас к конкуренту.
Сокращение ответа сервера
Оптимизация графики.
Ранее мы говорили, что некоторые чекеры предоставляют еще и рекомендации по оптимизации. Среди них можно найти адреса картинок, которые можно оптимизировать путем уменьшения.
Упростить код.
В тех же рекомендациях будет сказано, где и насколько можно подрезать коды HTML, CSS и JavaScript. Например, убрать лишние пробелы, комментарии от создателей кода, и т.д.
Использовать кеш браузера.
Браузер будет скачивать изображения к себе в кэш. Следовательно, повторная загрузка изображений с сервера уже не потребуется, а это сэкономит массу времени на загрузку.
Включить сжатие.
Актуально, если используется gzip. В итоге объем данных сокращается раза в 4, а то и в 5. Чем меньше объем передаваемых данных – тем меньше времени занимает их передача.
Сократить время ответа сервера.
С помощью сервиса Pingdom можно вычислить, сколько времени требуется серверу для того, чтоб отдать код ответа. Идеальное время – не более 0,2 секунды.
Данные инструкции помогут значительно ускорить работу сайта. Однако, есть риск навредить функциональности или внешнему виду. Поэтому перед каждым действием в обязательном порядке делать бэкапы исходных файлов. Также не помешает проконсультироваться с техническими специалистами.
Полный список кодов ответов HTTP, классы и описание | Клуб разработки сайтов
Сегодня мы расскажем про существующие коды состояния HTTP, которые отдаются для клиентов после его запроса на http протокол. Каждый из кодов является стандартом, который отвечает за определенный вариант ответы клиенту. Коды ответов регулируются в документах RFC и делятся на классы, показывающие его состояние. При этом если клиент не знает что это за код, то класс уже четко отвечает и после этого происходит реакция клиента на ответ. Коды позволяют для администратора выявляться проблемы и решать их. Полный список http кодов.
Классы кодов ответа HTTP
Всего есть 5 классов
Класс 1хх – информационные коды ответа HTTP.
100 Continue — сервер удовлетворён начальными сведениями о запросе, клиент может продолжать пересылать заголовки. Появился в HTTP/1.1.
101 Switching Protocols — сервер предлагает перейти на более подходящий для указанного ресурса протокол; список предлагаемых протоколов сервер обязательно указывает в поле заголовка Update. Если клиента это заинтересует, то он посылает новый запрос с указанием другого протокола. Появился в HTTP/1.1.
102 Processing — запрос принят, но на его обработку понадобится длительное время. Используется сервером, чтобы клиент не разорвал соединение из-за превышения времени ожидания. Клиент при получении такого ответа должен сбросить таймер и дожидаться следующей команды в обычном режиме. Появился в WebDAV.
Класс 2xx коды HTTP – успешно
Если код ответа содержит сообщение с кодом 2хх то это значит, что запрос клиента успешно принят и обработан. Дополнительно может передавать и другая информация, например заголовки ответы и содержание.
200 OK — успешный запрос.
202 Accepted — запрос был принят на обработку, но она не завершена.
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 поддержкой дельта-кодирования.
Класс 3хх коды HTTP – перенаправление
Ответы HTTP начинающиеся на 3хх говорят о перенаправлении.
300 Multiple Choices («множество выборов»)
301 Moved Permanently («перемещено навсегда»)
302 Moved Temporarily («перемещено временно»)
302 Found («найдено»)
303 See Other (смотреть другое)
304 Not Modified (не изменялось)
305 Use Proxy («использовать прокси»)
306 — зарезервировано (код использовался только в ранних спецификациях)
307 Temporary Redirect («временное перенаправление»)
Класс 4хх ответы HTTP – ошибки клиента
4xx: Client Error (ошибка клиента)
400 Bad Request («плохой, неверный запрос»)
401 Unauthorized («не авторизован»)
402 Payment Required («необходима оплата»)
403 Forbidden («запрещено»)
404 Not Found («не найдено»)
405 Method Not Allowed («метод не поддерживается»)
406 Not Acceptable («неприемлемо»)
407 Proxy Authentication Required («необходима аутентификация прокси»)
408 Request Timeout («истекло время ожидания»)
409 Conflict («конфликт»)
410 Gone («удалён»)
411 Length Required («необходима длина»)
412 Precondition Failed («условие ложно»)
413 Request Entity Too Large («размер запроса слишком велик»)
414 Request-URI Too Large («запрашиваемый URI слишком длинный»)
415 Unsupported Media Type («неподдерживаемый тип данных»)
416 Requested Range Not Satisfiable («запрашиваемый диапазон не достижим»)
417 Expectation Failed («ожидаемое неприемлемо»)
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. («Запрашиваемый адрес недоступен»)
444 Закрывает соединение без передачи заголовка ответа. Нестандартный код
449 Retry With («повторить с»)
451 Unavailable For Legal Reasons («недоступно по юридическим причинам»)
Класс 5хх ответы HTTP – внутренние ошибки сервера
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 «требуется сетевая аутентификация»
Коды ответов сервера — подробное описание
Как проверить код ответа сервера и понять его значение. Подробный перечень частых ошибок HTTP с пояснениями.
При каждом обращении к серверу вы получаете от него код статуса ответа. Коды связаны с функциональностью страниц сайта и сигнализируют о состоянии страницы. Благодаря значению, которое несет код, сервер корректирует обработку документа после запроса пользователя. Самые популярные коды — 200, который показывает, что запрос выполнен успешно, и 404, показывающий ошибку, если ресурс не найден.
На код ответа сервера обращают внимание поисковые боты и браузеры.
Как проверить код ответа сервера
Посмотреть код ответа на странице можно бесплатно за пару кликов. В браузере информация находится на панели разработчика: в Google Chrome для вызовите панель горячей клавишей F12, откройте вкладку Network и обновите страницу.
Для просмотра кода есть браузерные расширения: HTTP Headers для Google Chrome, HTTP Header для Opera.
Инструмент в Яндекс.Вебмастере покажет код статуса HTTP.
Инструмент
проверки заголовков сервера от PR-CY определит HTTP статусы сайта и доменного имени.
Значения кодов ответов сервера
Код состоит из трех цифр и начинается с 1-5 в зависимости от группы, к которой принадлежит. После числового обозначения есть приписка на английском, которая поясняет его значение.
Принадлежность кода к группе определяется по первой цифре:
- 1— — информационный код, отвечающий за передачу данных.
Такие коды временны и показывают, что запрос принят и обрабатывается. - 2— — код успешной обработки запроса.
Сервис получил и обработал запрос. - 3— — код редиректа.
Сервер сигнализирует, что для выполнения запроса нужно предпринять дополнительные действия, к примеру, перейти на другой адрес. - 4— — клиентская ошибка.
Ошибка на стороне клиента. Возможно, пользователь что-то сделал неправильно, и поэтому запрос не может быть успешно обработан. - 5— — серверная ошибка.
По какой-то внутренней причине сервер не может выполнить пользовательский запрос.
Коды ответов, сигнализирующих об ошибке, содержат информацию об их причинах. Отслеживать ошибки и устранять их можно по лог-файлам сервера — в логах содержится детальная информация о проблемах.
Информационные коды
Коды этой группы информируют о том, что сервер принял запрос и будет его обрабатывать.
100 Continue
Сервер принял запрос и удовлетворен начальными сведениями. Процесс обработки будет продолжен.
101 Switching Protocols
Сервер одобрил переключение типа протокола, которое запросил пользователь. Код используется, когда сервер предлагает перейти на новую версию HTTP. В поле Update будут перечислены доступные протоколы, пользователь может выбрать один из них.
102 Processing
Сервер сигнализирует, что принял запрос, но на обработку требуется больше времени. Клиенту не нужно разрывать соединение, он должен сбросить таймер и дождаться следующей команды.
Коды успешной обработки запроса
Коды группы сигнализируют о том, что запрос принят и успешно обработан.
200 ОК
Это один из самых популярных ответов, он означает, что запрос принят и успешно обработан, страница открыта и доступна к просмотру. Все страницы, которые будут проиндексированы, должны отдавать код 200 ОК.
201 Created
Ответ означает, что сервер принял запрос, обработал и создал новый ресурс. Код можно увидеть, к примеру, если пользователь создал новую страницу. Если новый ресурс создать невозможно, или он перестанет существовать к тому времени, когда клиент получит сообщение, то сервер отдаст код 202 Accepted.
202 Accepted
Сервер принял запрос, но не завершил его обработку. Запрос можно отклонить, поскольку на его выполнение может потребоваться слишком много времени.
203 Non-Authoritative Information
Код ответа 203 означает, что операция прошла успешно, но от кода 200 он отличается указанием источника информации. Данные получены не из первоисточника, а с другого сервера или резервной копии. Возможно, информация устарела, о чем и предупреждает код ответа.
204 No Content
Обработка запроса прошла успешно, но серверу нечего отправить в ответ. Ответ не содержит тело сообщения, только заголовки. Обычно такой код включается в первую пустую строку кода, чтобы разрешить запуск скриптов, не меняя содержимого и не обновляя страницу.
205 Reset Content
Сервер сигнализирует, что запрос успешно обработан и клиенту нужно сбросить введенные данные. Обновление документа не требуется, сервер не передает тело сообщения.
206 Partial Reset
Этот код обычно используют инструменты кэширования. Сервер в ответе возвращает только часть контента страницы, которую и запрашивает пользователь.
207 Multi-Status
Код обозначает мультистатусность ответа: сервер обработал несколько операций,не зависящих друг от друга. Результаты отображаются в теле сообщения как XML-документ с объектом multistatus.
226 IM Used
Сервер успешно завершил операцию: принял заголовок A-IM и вернул содержимое с учетом указанных параметров.
Коды редиректов
Класс кодов показывает, что для успешного выполнения запроса клиенту нужно совершить переход, то есть редирект.
300 Multiple Choices
Робот не может проиндексировать страницу, поскольку не может сопоставить ресурс и URL. Частая причина — ресурс перемещен на другой адрес. Сервер предлагает клиенту выбор альтернатив для перехода. Для успешной индексации нужно либо правильно указать ресурс, либо поправить заголовки.
301 Moved Permanently
Если у проиндексированной страницы изменился адрес, то со старого URL на новый настраивают 301 редирект. Код ответа показывает, что запрашиваемый документ был навсегда перенесен на другой URL, куда пользователя перенаправляет ссылка. Робот проиндексирует страницу, на которую ведет редирект, и склеит исходный адрес и новый.
302 Found
Код означает не постоянное, а временное перемещение страницы на другой адрес, поэтому страницу удалять из индекса не нужно. В ответе указано новое расположение данных.
Страница остается в индексе, ссылочный вес продолжает передаваться.
303 See Other
Сервер сигнализирует, что ресурс, который указан в запросе, расположен на другом адресе. Обычно он используется для перенаправления пользователя к выбранному ресурсу выводом данных POST-активированного скрипта.
В ответе сервера будет указан адрес, по которому нужно искать результат, удовлетворяющий запрос.
304 Not Modified
Код рекомендуется выдавать, если страница не менялась с момента ее последнего посещения роботом. Сервер дает сигнал об этом боту, бот получает от документа http-заголовки, не загружая страницу повторно, из-за чего индексирование проходит быстрее и уменьшается нагрузка на сервер.
305 Use Proxy
Код ответа связан с безопасностью данных. Сервер выдает код 305, если доступ к ресурсу, который запрашивает клиент, возможен только с прокси. Прокси указан там же в ответе сервера.
307 Temporary Redirect
Код 307 похож на 302, но дает более конкретный ответ. Код означает, что ресурс, который требует клиент, на время переведен на другой адрес, а новый URL нужно прописать в Location.
Коды ошибок клиента
Коды ответов этой группы означают ошибки по вине клиента или невозможность выдать результат, потому что на странице нет данных.
400 Bad Request
Запрос некорректен, где-то в нем есть синтаксическая ошибка, поэтому сервер не может выдать результат. Для успешного выполнения запроса нужно исправить синтаксис, обычно помогает очистка куки или кэша страниц, исправление запроса пользователем.
401 Unauthorized
Информация доступна только зарегистрированным пользователям или запаролена. Если пользователь не авторизовался, доступ к странице невозможен.
403 Forbidden
Запрос успешно получен и верно сформулирован, но у сервера нет доступа к запрашиваемой странице. Возможно, доступ ограничен специально для определенных IP-адресов с помощью файла .htaccess.
Если пользователю www-data, под которым запущен сервер, закрыт доступ к чтению файла, поможет команда sudo chmod o=r /usr/share/nginx/html/index.html
Еще одна причина — пользователь обратился к закрытому каталогу, в котором нет индексного файла. Разрешение на просмотр каталога включается в настройках сервера.
404 Not Found
Серверу не удалось найти ресурс, который запрашивает пользователь, документа по этому адресу не существует.
Это частая ошибка, она может быть связана с тем, что пользователь ошибся в адресе страницы, у пользователя нет прав на чтение и исполнение файла, файл на сервере переместили иди удалили, корневой каталог указали с ошибкой или сервер не настроен для работы с символьными «мягкими» ссылками, которые использованы для обработки.
Код ответа 404 Not FoundСсылки на удаленные разделы сайта будут возвращать код 404. На такие документы не нужно тратить краулинговый бюджет, поэтому в файле robots.txt запрещают роботу посещение и индексацию таких страниц.
405 Method Not Allowed
Недоступен метод, которым совершается запрос. Сервер выдает этот код для конкретных отдельных объектов на странице. К примеру, строка запроса, запускающая скрипт, отличается от запроса, который совершает пользователь.
406 Not Acceptable
Код ответа означает, что запрашиваемый файл существует, запрос сформулирован верно, но кодировка документа недоступна для расшифровки роботом.
407 Proxy Authentication Required
Этот код похож на 401 и 407, он используется, если вопрос корректен, но клиент может получить доступ к документу только с помощью авторизации через прокси. Клиент авторизуется, если прокси вернет поле с заголовком proxy-authenticate.
408 Request Timeout
Сервер возвращает этот код ответа, если в установленное время ожидания клиент не сделал ни один запрос. Код 408 не возвращается, если пользователь сам отменил запрос, или соединение оборвалось, а отправить ответ нет возможности.
409 Conflict
Код означает, что в системе конфликт: к примеру, пользователь загружает файл на сервер, где уже есть такой файл в новой версии.
410 Gone
Код ответа похож на 404 код, он означает, что документ, к которому направлен запрос, больше недоступен. Если сервер возвращает код 404, то робот еще вернется на страницу, чтобы проверить ее состояние, а в случае ответа 410 робот поймет, что страница удалена навсегда.
411 Length Required
Сервер не может принять и обработать запрос, если в заголовке content-length не указана длина контента.
413 Request Entity Too Large
Если в теле запроса слишком большой объем информации и сервер не может обработать такой большой запрос, то он возвращает код ошибки 413. Если это временная проблема, в поле Retry-After сервер укажет время, которое нужно подождать.
414 Request-URL Too Long
Аналогично с кодом 413, за исключением того, что 414 код отображается, если в запросе указан слишком длинный URL.
422 Unprocessable Entity
Сервер возвращает этот код, если он принял и распознал запрос, но в теле запроса допущена логическая ошибка, которая мешает его выполнить.
424 Failed Dependency
Если выполнение этой операции зависит от исхода других связанных с ней операций, сервер вернет этот запрос.
429 Too Many Requests
Код 429 означает, что пользователь посылает слишком много запросов за короткий временной промежуток, и сервер не может обработать такое количество.
431 Request Header Fields Too Large
Если в запросе указаны слишком большие поля заголовков, сервер не сможет справиться с таким запросом и вернет код ошибки 431.
Код отображает то же, что и 403, но с уточнениями. Он используется, если доступ к серверу заблокирован по решению суда, обычно из-за нарушения авторских прав, а также если доступ закрыт на государственном уровне.
418 I’m a teapot
Это забавный код, возвращающий ошибку «Я чайник», связан с гипертекстовым протоколом управления кофеваркой — Hyper Text Coffee Pot Control Protocol. Ошибка означает, что запрос некорректен, с помощью чайника нельзя приготовить кофе. Протокол и код этой ошибки были созданы в шутку в 1998 году к 1 апреля.
Код 418 I’m a teapot
Коды ошибок сервера
Коды этой группы обозначают ошибки на стороне сервера.
500 Internal Server Error
Код обозначает, что сервер не может обработать запрос по причине внутренних ошибок. Обычно проблема в настройке сервера, обращении к некорректному файлу .htaccess или пакету PHP, который не установлен.
501 Not Implemented
Сервер возвращает этот код, когда не может обработать запрос: он не поддерживает возможности для обработки или не может распознать метод. К примеру, эта ошибка появится, если распространенные протоколы HEAD, POST, GET и другие по какой-то причине не поддерживаются сервером.
502 Bad Gateway
За обработку запроса отвечают бэкенд серверы, которые передают данные прокси-серверу или шлюзу. Если запрос был направлен к такому шлюзу, который не получил ответ от бэкенда, сервер вернет 502 код. Для исправления нужно проверить настройку прокси-сервера.
Код свидетельствует о перегрузке сервера, запрос не может быть выполнен в данный момент. Второй причиной может быть обслуживание сервера: ему не хватает памяти или ресурсов, чтобы обработать запрос. Такой ответ может вернуться, если на сервере ограничено количество пользователей.
504 Gateway Timeout
Код похож на 502, но ошибка 504 означает, что истек срок ожидания ответа от сервера. Необходимое количество времени истекло, а ответ от бэкенд-сервера не пришел.
Причина может быть в сетевом соединении, недостатке ресурсов, версии протокола HTTP или настройке сервера, если выставлен слишком короткий таймаут.
506 Variant Also Negotiates
Код ответа 506 означает, что сервер настроен некорректно: ошибка в конфигурации зацикливает обращение сервера, и он указывает сам на себя.
507 Insufficient Storage
Если сервер загружен настолько, что для выполнения запроса не хватает памяти, он вернет ошибку 507. Это бывает, если на сервере нет места для данных в принимаемом запросе.
510 Not Extended
Код 510 возвращается в случае, если сервер не поддерживает расширение, которое указано в запросе. В этом же ответе сервер может указать, какие расширения доступны.
511 Network Authentication Required
Эта ошибка возвращается клиенту, если пользователь не авторизовался в сети. К примеру, если он не согласился на условия использования интернета, когда подключался к wi-fi, или не ввел пароль.
На коды ответов сервера обращают внимание поисковые роботы, с помощью этих сигналов они узнают, как им нужно вести себя со страницей — индексировать, пропустить, вернуться к ней позже. Веб-мастерам важно распознавать сигналы с ошибками, чтобы направлять поисковых ботов и исправлять часть ошибок, если причина ошибки им доступна.
Коды ответов сервера HTTP
(англ.
) — число, в котором содержится ответ сервера при запросах по протоколу HTTP. Состоит из 3 десятичных цифр. По коду ответа сервера клиент узнаёт о результатах его запроса и определяет, какие действия ему предпринимать дальше.
и их расшифровка.
Чтобы проверить HTTP заголовки конкретного сайта или страницы, воспользуйтесь инструментом
Выберите интересующий Вас HTTP код для быстрого перехода:
ВЫБРАТЬ КОД HTTP 100 101 102 200 201 203 204 205 206 207 226 300 301 302 303 304 305 306 307 308 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 422 423 424 425 426 449 451 456 499 500 501 502 503 504 505 506 507 509 510 511 520 521 522 523 524 525 526Informational (Информационный)
100
ContinueCервер удовлетворён начальными сведениями о запросе, клиент может продолжать пересылать заголовки. Появился в HTTP/1.1.
101
Switching ProtocolsСервер предлагает перейти на более подходящий для указанного ресурса протокол; список предлагаемых протоколов сервер обязательно указывает в поле заголовкаUpdate. Если клиента это заинтересует, то он посылает новый запрос с указанием другого протокола. Появился в HTTP/1.1.
102
ProcessingЗапрос принят, но на его обработку понадобится длительное время. Используется сервером, чтобы клиент не разорвал соединение из-за превышения времени ожидания. Клиент при получении такого ответа должен сбросить таймер и дожидаться следующей команды в обычном режиме. Появился в WebDAV.
Success (Успешно)
200
ОКУспешный запрос. Если клиентом были запрошены какие-либо данные, то они находятся в заголовке и/или теле сообщения. Появился в HTTP/1.0.
201
CreatedВ результате успешного выполнения запроса был создан новый ресурс. Сервер должен указать его местоположение в заголовке Location. Серверу рекомендуется ещё указывать в заголовке характеристики созданного ресурса (например, в поле 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 поддержкой дельта-кодирования.
Redirection (Перенаправление)
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).
308
Permanent Redirectзапрашиваемый ресурс был окончательно перенесен на новый URI, указанный в поле Location заголовка. Метод запроса (GET/POST) менять не разрешается. Например, POST запрос должен быть отправлен по новому URI тем же методом POST. Этот код был введён вместо 301-го для избежания неоднозначности. Введено в RFC 7238.
Client Error (Ошибка клиента)
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. Введено в 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.
426
Upgrade RequiredСервер указывает клиенту на необходимость обновить протокол. Заголовок ответа должен содержать правильно сформированные поля Upgrade и Connection. Введено в RFC 2817 для возможности перехода к TLS посредством HTTP.
449
Retry WithВозвращается сервером, если для обработки запроса от клиента поступило недостаточно информации. При этом в заголовок ответа помещается поле Ms-Echo-Request. Введено корпорацией Microsoft для WebDAV. В настоящий момент как минимум используется программой Microsoft Money.
451
Unavailable For Legal ReasonsДоступ к ресурсу закрыт по юридическим причинам, например, по требованию органов государственной власти или по требованию правообладателя в случае нарушения авторских прав. Введено в черновике IETF за авторством Google, при этом код ошибки является отсылкой к роману Рэя Брэдбери «451 градус по Фаренгейту». Был добавлен в стандарт 21 декабря 2015 года
456
Unrecoverable ErrorВозвращается сервером, если обработка запроса вызывает некорректируемые сбои в таблицах баз данных. Введено корпорацией Microsoftдля WebDAV.
499
Client Closed RequestНестандартный код, предложенный и используемый nginx для случаев, когда клиент закрыл соединение, пока nginx обрабатывал запрос.
Server Error (Ошибка сервера)
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 поддержкой расширений.
511
Network Authentication RequiredЭтот ответ посылается не сервером, которому был предназначен запрос, а сервером-посредником — например, сервером провайдера — в случае, если клиент должен сначала авторизоваться в сети, например, ввести пароль для платной точки доступа к Интернету. Предполагается, что в теле ответа будет возвращена Web-форма авторизации или перенаправление на неё. Введено в черновике стандарта RFC 6585.
520
Unknown ErrorОшибка возникает когда сервер CDN не смог обработать ошибку веб-сервера; нестандартный код CloudFlare.
521
Web Server Is DownОшибка возникает когда подключения CDN отклоняются веб-сервером; нестандартный код CloudFlare.
522
Connection Timed OutОшибка возникает когда CDN не удалось подключиться к веб-серверу; нестандартный код CloudFlare.
523
Origin Is UnreachableОшибка возникает когда веб-сервер недостижим; нестандартный код CloudFlare.
524
A Timeout OccurredОшибка возникает при истечении тайм-аута подключения между сервером CDN и веб-сервером; нестандартный код CloudFlare.
525
SSL Handshake FailedОшибка возникает при ошибке рукопожатия SSL между сервером CDN и веб-сервером; нестандартный код CloudFlare.
526
Invalid SSL CertificateОшибка возникает когда не удаётся подтвердить сертификат шифрования веб-сервера; нестандартный код CloudFlare.
Коды состояния HTTP
Код состояния 511 указывает, что клиенту необходимо пройти аутентификацию, чтобы получить доступ к сети.
Представление ответа ДОЛЖНО содержать ссылку на ресурс, который позволяет пользователю отправлять учетные данные (например, с помощью HTML-формы).
Обратите внимание, что ответ 511 НЕ ДОЛЖЕН содержать запрос или сам интерфейс входа в систему, поскольку браузеры будут отображать интерфейс входа в систему как связанный с первоначально запрошенным URL-адресом, что может вызвать путаницу.
Статус 511 НЕ ДОЛЖЕН генерироваться исходными серверами; он предназначен для использования путем перехвата прокси-серверов, которые вставляются в качестве средства контроля доступа к сети.
Ответы с кодом состояния 511 НЕ ДОЛЖНЫ храниться в кэше.
Код состояния 511 разработан для смягчения проблем, вызванных «перехватывающими порталами» программного обеспечения (особенно агентов, не являющихся браузерами), которые ожидают ответа от сервера, к которому был сделан запрос, а не от промежуточной сетевой инфраструктуры.Он не предназначен для поощрения развертывания скрытых порталов, а только для ограничения наносимого ими ущерба.
Сетевой оператор, желающий потребовать аутентификации, принятия условий или другого взаимодействия с пользователем перед предоставлением доступа, обычно делает это путем идентификации клиентов, которые этого не сделали («неизвестные клиенты»), используя свои MAC-адреса.
Неизвестные клиенты затем блокируют весь трафик, за исключением TCP-порта 80, который отправляется на HTTP-сервер («сервер входа в систему»), предназначенный для «входа в систему» неизвестных клиентов, и, конечно же, трафик на сам сервер входа в систему.
Обычно ответ, содержащий код состояния 511, не приходит от исходного сервера, указанного в URL-адресе запроса. Это создает множество проблем с безопасностью; например, атакующий посредник может вставлять файлы cookie в пространство имен исходного домена, может наблюдать файлы cookie или учетные данные HTTP-аутентификации, отправленные пользовательским агентом, и так далее.
Однако эти риски не уникальны для кода состояния 511; другими словами, адаптивный портал, который не использует этот код состояния, вызывает те же проблемы.
Также обратите внимание, что связанные порталы, использующие этот код состояния в SSL или TLS-соединении (обычно порт 443), вызывают ошибку сертификата на клиенте.
Википедия
Клиент должен пройти аутентификацию, чтобы получить доступ к сети. Предназначен для использования путем перехвата прокси-серверов, используемых для управления доступом к сети (например, «перехватывающие порталы», используемые для запроса согласия с Условиями обслуживания перед предоставлением полного доступа в Интернет через точку доступа Wi-Fi).
,кодов ответа HTTP | Что такое коды состояния HTTP?
Коды ответапротокола передачи гипертекста (HTTP) выдаются сервером в ответ на запрос, сделанный сервером. Он включает коды из запроса комментариев IETF (RFC), а также некоторые дополнительные коды, которые обычно используются в приложениях HTTP.
Коды состоянияHTTP указывают, был ли успешно выполнен конкретный запрос HTTP. Ответы обычно сгруппированы в пять классов:
- Информационные ответы (100-199)
- Успешные ответы (200-299)
- Перенаправления (300-399)
- Ошибки клиента (400-499)
- Ошибки сервера (500-599)
Коды состояния класса 1xx являются информационными и указывают на то, что запрос был получен и понят.Он выдается как предварительный статус, пока процесс еще продолжается. Он также говорит клиенту дождаться окончательного ответа. Эти сообщения состоят из строки состояния и дополнительных полей заголовка.
Диапазон кодов 2xx обычно означает, что запрос был успешно получен, понят и принят, тогда как диапазон кодов 3xx указывает, что клиент должен предпринять дополнительные действия для выполнения конкретного запроса. Это часто используется при перенаправлении URL-адресов.
Класс кодов состояния 4xx предназначен для ситуаций, в которых ошибка, по-видимому, была вызвана клиентом. Эти коды состояния применимы к любому методу запроса, и пользовательские агенты должны отображать любую включенную сущность для пользователя.
Диапазон кодов 5xx относится к кодам ошибок сервера, которые указывают на то, что запрос был принят, но произошла ошибка, которая помешала серверу выполнить запрос.
Несмотря на то, что существует длинный список кодов ошибок HTTP, вы, скорее всего, столкнетесь только с десятком из них.Но как только вы поймете, что они означают, вы поймете, что нужно сделать, чтобы их исправить.
Мы более подробно рассмотрим различные коды ответов HTTP и их значение.
Ищете самый быстрый и дешевый CDN для своей компании?
Попробуйте БЕСПЛАТНО в течение 30 дней1, информационные ответы
Коды ответов HTTPв этом семействе предназначены только для получения дополнительной информации, только для идентификации того, что определенный процесс был завершен или запрос был завершен.Коды состояния HTTP в этом диапазоне используются редко, потому что большинство из них определяют, казалось бы, рутинные процессы. Примеры этих кодов состояния HTTP включают в себя самый простой: 100: Продолжить, что означает, что сервер должен продолжать работу, как обычно, и 102: Обработка, что означает, что запрос обрабатывается либо сервером, либо клиентом (клиент — это объект на принимающая сторона запроса). Как видите, эти два информационных кода являются частью обычного процесса, почему для них необходимо определять код ответа HTTP? Эти HTTP-коды помогают отслеживать пути передачи данных во всей производительности сервера.Без этих кодов состояния HTTP не будет указателей для определенного процесса, а просмотр журнала превратится в игру в угадывание. В конце концов, коды ответов HTTP от 100 до 199 имеют уместное использование.
100 Продолжить
Этот ответ будет указывать на то, что пока все в порядке и что других проблем нет, поэтому клиент может продолжить запрос. Однако клиент также может игнорировать ответ, если запрос уже завершен.
101 Протоколы коммутации
Этот ответ указывает на то, что код отправляется в ответ на заголовок запроса обновления от клиента, который указывает протокол, на который серверы переключаются.
102 Обработка (WebDAV)
Этот код указывает на то, что сервер уже получил и в настоящее время обрабатывает запрос, но ответа пока нет.
103 Ранние подсказки
Этот код ответа HTTP в основном используется с заголовком Link, позволяя агенту пользователя начать предварительную загрузку ресурсов, пока сервер готовит ответ.
2, успешные ответы
Коды ошибокHTTP из этого семейства показывают успех в различных формах. Коды ответа HTTP 200 — 299 несут хорошие новости: запрос принят, создан новый запрос или решена определенная проблема.Поскольку коды состояния HTTP в более ранней группе действуют как указатели, коды состояния HTTP в группе 200 действуют как сигналы перехода для продолжения определенных действий, поскольку необходимые запросы стали возможными. 202: Принято означает, что клиент получил запрос. Код 202 ответа HTTP не обязательно означает, что запрос сделан, но важно то, что он обрабатывается. Часть этих кодов состояния HTTP — 206: Частичное содержимое. Это означает, что запрос удовлетворен частично, но, тем не менее, выполнен.
200 ОК
Этот код состояния указывает на то, что запрос был успешным. Смысл успеха в конкретном методе HTTP:
- GET: ресурс был получен и передается
- HEAD: заголовки объекта находятся в теле сообщения
- PUT или POST: ресурс, описывающий результат действия, передается в теле сообщения
- TRACE: тело сообщения содержит сообщение запроса в том виде, в каком оно получено
201 Создано
Это указывает на то, что отходы прошли успешно и в результате был создан новый ресурс.Обычно это ответ, который отправляется после запросов POST или некоторых запросов PUT.
202 Принято
Запрос принят в обработку, но обработка не завершена. В конечном итоге запрос может быть обработан и может быть отклонен при обработке. Это предназначено для случаев, когда другой процесс или сервер обрабатывает запросы, или для пакетной обработки.
203 Неавторизованная информация
Этот код состояния на самом деле означает, что возвращаемая метаинформация не полностью совпадает с информацией, доступной с исходного сервера, но собирается из локальной или сторонней копии.Это в основном полезно для резервного копирования другого ресурса.
204 Без содержания
Этот код состояния показывает отсутствие содержимого, отправленного для конкретного запроса, хотя заголовки могут быть полезны. Пользовательский агент может обновлять свои кэшированные заголовки для этого ресурса новыми.
205 Сбросить содержимое
Этот код состояния сообщает агенту пользователя о необходимости сбросить документ, отправивший запрос.
206 Частичное содержимое
Этот код ответа используется, когда заголовок Range отправляется от клиента для запроса только части ресурса.
207 Мульти-статус (WebDAV)
Этот код состояния предоставляет информацию для нескольких независимых операций. Сообщение по умолчанию является XML-сообщением и может предоставлять различные коды ответа в зависимости от того, сколько подзапросов было сделано.
208 Уже отправлено (WebDAV)
Используется внутри элемента ответа
226 Использовано IM (кодировка HTTP Delta)
Сервер выполнил запрос GET для ресурса, и ответ является представлением результата одной или нескольких манипуляций с экземпляром, примененных к текущему экземпляру.
3, сообщения о перенаправлении
Коды состояния HTTP 300-399 говорят о перенаправлении. Эти коды ответа HTTP означают, что запрос должен быть перенаправлен по разным причинам. Код статуса HTTP 300–399 может потребовать немедленных действий, поскольку перенаправление может быть ожидающим запросом, а веб-браузер где-то застрял. 300: Multiple Choices затрудняет выбор веб-браузера, куда идти, поэтому необходимо выполнять прямые действия. 310: Ресурс перемещен навсегда означает, что с этого момента маршрут запроса изменится навсегда.
300 Множественный выбор
Этот запрошенный ресурс соответствует любому из набора представлений, каждое из которых имеет свое собственное местоположение и информацию. Это предусмотрено для того, чтобы пользовательский агент мог выбрать конкретное представление и затем перенаправить запрос в это место.
301 Постоянно перемещен
Этот код ответа HTTP указывает, что конкретный URL-адрес запрашиваемого ресурса изменился навсегда.Новый URL указан в ответе.
302 Найдено
Этот код указывает, что URL-адрес запрошенного ресурса был временно изменен. Изменения в URL-адресе также могут быть внесены в будущем, поэтому тот же URL-адрес следует использовать в будущих запросах. Это пример отраслевой практики, противоречащей стандарту.
303 См. Другие
Когда этот код состояния получен, он указывает, что сервер отправляет ответ, чтобы указать клиенту получить запрошенный ресурс по другому URL-адресу с помощью запроса GET.
304 Без изменений
Это означает, что клиент выполнил условный запрос и доступ разрешен, но документы не были изменены, и сервер должен ответить кодом состояния. Важно отметить, что ответ 304 не должен содержать тела сообщения, поэтому он всегда заканчивается первой пустой строкой после полей заголовка.
305 Использовать прокси
Этот код определен как предыдущая версия спецификации HTTP, чтобы указать, что запрашиваемый ответ должен быть доступен прокси.Он устарел из-за проблем безопасности, связанных с настройкой прокси-сервера.
306 неиспользованный
Этот код больше не используется. Раньше это означало, что подзапросы должны использовать указанный прокси.
307 Временное перенаправление
Для этого кода состояния это означает, что запрос должен быть повторен с другим URI. Однако любые будущие запросы должны по-прежнему использовать исходный URI.По сути, он похож на код HTTP 302 Found, но за исключением того, что пользовательский агент не должен изменять используемый метод HTTP. Если POST использовался в первом запросе, POST должен использоваться во втором запросе.
308 Постоянное перенаправление
Этот код состояния указывает, что ресурс не находится постоянно по другому URL-адресу. Это будет указано в заголовке Location: HTTP Response. Это также похоже на код ответа 301, перемещенный постоянно, за исключением того, что пользовательский агент не должен изменять используемый метод HTTP.Если POST использовался в первом запросе, POST должен использоваться во втором запросе.
4, ответы клиента об ошибках
Теперь мы переходим к кодам ошибок HTTP, которые могут в некоторой степени настораживать. Коды ответа HTTP в сообщениях об ошибке HTTP 400 означают, что клиент не в состоянии выполнить запрос. Самая известная из семейства ошибок 400 кода состояния протокола передачи гипертекста (HTTP) — это 404: файл не найден. Это просто означает, что клиент, с которым связываются, нигде не может быть найден, поэтому запрос не может быть выполнен.
400 Плохой запрос
Это общий код состояния, который указывает, что сервер не может понять запрос из-за неверного синтаксиса.
401 Неавторизованный
Хотя стандарт HTTP определяет «неавторизованный», семантически этот ответ означает «неавторизованный». То есть клиент должен пройти аутентификацию, чтобы получить запрошенный ответ.Подобно 403 Forbidden, но специально для использования, когда аутентификация требуется, но она не удалась или еще не была предоставлена.
402 Требуется оплата
Этот код ответа зарезервирован для использования в будущем. Первоначальная цель заключалась в использовании его для цифровых платежных систем; однако код используется очень редко и для него нет стандарта.
403 Запрещено
Этот код состояния для той, у которой установлена цена, поэтому служба отказывается предоставлять ресурсы.В отличие от ошибки 401, личность клиента известна серверу.
404 Не найдено
Этот код состояния означает, что сервер не может найти запрошенный ресурс. В вашем интернет-браузере это означает, что URL-адрес не распознается. В случае использования API это также может означать, что конечная точка действительна, но сам ресурс не существует. Серверы также могут отправлять ответ вместо ошибки 403, чтобы скрыть существование ресурса от неавторизованного клиента.Вероятно, это один из самых известных кодов ответов, который часто появляется в Интернете.
405 Метод запрещен
Этот код ответа означает, что метод запроса известен серверу, но отключен и не может использоваться. Пример: API может запретить удаление ресурса.
406 Неприемлемо
Этот код ответа доставляется, когда веб-сервер не находит никакого контента, который соответствует критериям, заданным пользовательским агентом, часто формируя согласование контента, управляемое сервером.
407 Требуется аутентификация прокси
Этот код ответа очень похож на код 401, но аутентификация должна выполняться прокси.
408 Тайм-аут запроса
Этот ответ обычно отправляется неактивным соединением какого-либо сервера, даже без предварительного запроса со стороны клиента. По сути, это означает, что серверу нравится закрывать бездействующее соединение, и в наши дни ответ используется гораздо чаще, поскольку веб-браузеры, такие как Chrome и Firefox, используют механизмы HTTP-соединения для ускорения просмотра.Также обратите внимание, что некоторые серверы могут отключать соединение без выдачи этого уведомления.
409 Конфликт
Этот ответ он отправляет сервером, когда запрос конфликтует с текущим состоянием сервера.
410 Исчез
Это состояние ошибки означает, что запрошенный ресурс больше не доступен и больше не будет доступен. Этот код следует использовать, когда ресурс был намеренно удален, и этот ресурс не следует очищать.Когда получен код состояния 410, клиент не должен запрашивать этот ресурс снова в будущем. Такие клиенты, как поисковые системы, удалят ресурс.
411 Требуемая длина
Этот ответ просто означает, что запрос не указывал ссылку на контент, который требуется запрошенному ресурсу.
412 Ошибка предварительного условия
, код состояния 412 означает, что сервер не соответствует одному из предварительных условий, которые запрос помещает в поля заголовка запроса.
413 Слишком большая полезная нагрузка
Объект запроса превышает пределы, определенные сервером; сервер может закрыть соединение или вернуть поле заголовка Retry-After.
414 URI слишком длинный
Размер запроса превышает размер запроса, который сервер может или может обработать. Ранее назывался «Слишком большой объект запроса».
415 Неподдерживаемый тип носителя
Сервер отказывается обслуживать запрос, поскольку объект запроса имеет формат, не поддерживаемый запрошенным ресурсом для запрошенного метода.
416 Диапазон Не выполняется
Диапазон, указанный полем заголовка Range в запросе, не может быть выполнен; возможно, что диапазон выходит за пределы размера данных целевого URI.
417 Ожидание не выполнено
Сервер не может удовлетворить требованиям поля заголовка запроса Expect.
418 Я чайник
Сервер отклоняет попытку заварить кофе с помощью чайника.Этот код был определен в 1998 году как одна из традиционных первоапрельских шуток IETF.
421 Неверный запрос
Запрос был направлен на сервер, который не может дать ответ. Это может быть отправлено сервером, который не настроен для создания ответов для комбинации схемы и полномочий, которые включены в URI запроса.
422 Необработанный объект (WebDAV)
Запрос был правильно сформирован, но его не удалось выполнить из-за семантических ошибок.Например, это состояние ошибки может возникнуть, если тело запроса XML содержит правильно сформированные (т. Е. Синтаксически правильные), но семантически ошибочные инструкции XML.
423 Заблокировано (WebDAV)
Ресурс, к которому осуществляется доступ, заблокирован.
424 Неудачная зависимость (WebDAV)
Запрос не удался, поскольку он зависел от другого запроса, и этот запрос не удался.
425 Слишком рано
Указывает, что сервер не желает рисковать обработкой запроса, который может быть воспроизведен.
426 Требуется обновление
Сервер отказывается выполнять запрос с использованием текущего протокола, но может пожелать сделать это после того, как клиент перейдет на другой протокол. Сервер отправляет заголовок Upgrade в ответе 426, чтобы указать требуемый протокол (ы).
428 Требуются предварительные условия
Исходный сервер требует, чтобы запрос был условным. Предназначено для предотвращения проблемы «потерянного обновления», когда клиент ПОЛУЧАЕТ состояние ресурса, изменяет его и отправляет обратно на сервер, когда тем временем третья сторона изменила состояние на сервере, что привело к конфликту.
429 Слишком много запросов
Код состояния 429 указывает, что пользователь отправил слишком много запросов за заданный промежуток времени («ограничение скорости»).Представления ответа ДОЛЖНЫ включать подробности, объясняющие условие, и МОГУТ включать заголовок Retry-After, указывающий, как долго ждать, прежде чем делать новый запрос. Когда сервер находится под атакой или просто получает очень большое количество запросов от одной стороны, ответ на каждый с кодом состояния 429 потребляет ресурсы.
431 Поля заголовка запроса слишком велики
Код состояния 431 указывает, что сервер не желает обрабатывать запрос, потому что его поля заголовка слишком велики.Запрос МОЖЕТ быть отправлен повторно после уменьшения размера полей заголовка запроса. Его можно использовать как в случае, когда набор полей заголовка запроса в целом слишком велик, так и когда возникает ошибка в одном поле заголовка. В последнем случае в представлении ответа должно быть указано, какое поле заголовка было слишком большим.
451 Недоступно по юридическим причинам
Пользователь-агент запросил ресурс, который не может быть предоставлен по закону, например веб-страницу, подвергнутую цензуре правительством.Это также отсылка к роману 1953 года «451 градус по Фаренгейту», где книги запрещены, а температура самовоспламенения бумаги составляет 451 ° F.
5, ответы сервера об ошибках
И, наконец, коды статуса HTTP 500 — 599, информируют журнал о проблемах с сервером. Серверы должны координироваться друг с другом, но этот код ответа протокола передачи гипертекста (HTTP) означает, что может возникнуть проблема в том, как эти серверы работают вместе.502: Плохой шлюз просто означает, что один сервер получил недопустимый ответ от другого сервера. Однако серьезность этой ситуации может быть разной. Но опять же, коды ответа HTTP в группе 500 могут потребовать некоторого внимания.
500 Внутренняя ошибка сервера
Этот код состояния HTTP является общим сообщением об ошибке, которое указывает, что условие возникло неожиданно, и более подробные сведения недоступны. Одна из наиболее частых причин этой ошибки — неправильная конфигурация сервера.
501 Не реализовано
Сервер либо не распознает метод запроса, либо не может выполнить запрос. Обычно это подразумевает наличие в будущем.
502 Плохой шлюз
Сервер действовал как шлюз или прокси и получил недопустимый ответ от вышестоящего сервера.
503 Служба недоступна
Этот код ошибки относится к серверу, который действовал как шлюз или прокси и получил недопустимый ответ от вышестоящего сервера.
504 Тайм-аут шлюза
Сервер действовал как шлюз или прокси и не получил своевременного ответа от вышестоящего сервера.
505 Версия HTTP не поддерживается
Этот код состояния указывает на то, что сервер не поддерживает версию протокола HTTP, используемую в запросе.
506 Вариант также оговаривается
Эта ошибка сервера означает, что согласование запроса сервера приводит к циклическим ссылкам.
507 Недостаточно памяти (WebDAV)
Сервер не может сохранить представление, необходимое для выполнения запроса.
508 Обнаружен цикл (WebDAV)
Сервер прервал операцию, потому что он обнаружил бесконечный цикл при обработке запроса с «Глубиной: бесконечность». Этот статус указывает на то, что вся операция завершилась неудачно.
510 Не расширенный
В запросе не соблюдена политика доступа к ресурсу.Сервер должен отправить обратно всю информацию, необходимую клиенту для отправки расширенного запроса.
511 Требуется сетевая аутентификация
Для получения доступа к сети клиенту необходимо пройти аутентификацию. Предназначен для использования путем перехвата прокси-серверов, используемых для управления доступом к сети (например, «перехватывающие порталы», используемые для запроса согласия с Условиями обслуживания перед предоставлением полного доступа в Интернет через точку доступа Wi-Fi).
Другие важные коды состояния HTTP
HTTP 502: Bad Getaway.HTTP 404: файл не найден. Вам знакомы эти слова? Это, вероятно, одни из наиболее распространенных кодов ответов HTTP, с которыми мы сталкиваемся, возможно, ежедневно. Это не единственные коды состояния HTTP. Фактически, их множество, от 100 до 599, и все они содержат конкретные новости для всех, кто их хочет услышать: администраторов журналов, посетителей веб-сайтов, программистов. Эти коды являются частью определенного языка, который поможет тем, кто управляет всемирной паутиной, превратить ее в хорошо отлаженную машину, связывающую всех в сети.
Но почему вы должны знать все о коде ответа HTTP? Эти коды ошибок HTTP уже кажутся вам чуждыми; для некоторых простая ошибка HTTP 502 или HTTP 404 уже сбивает их с толку. Здесь, в BelugaCDN, мы видим ценность технической подкованности не только в индивидуальном, но и в профессиональном плане, особенно для потенциальных клиентов CDN, таких как вы, и сотрудников, которых вы хотите поддерживать. Такие знания также дают вам преимущество, когда речь идет об использовании технологий бок о бок с бизнесом.Зная коды ответов HTTP, журналы сервера будут для вас более понятными, и вы сможете воспользоваться более конкретными технологическими решениями, чем те, которые используются всеми. На этой заметке давайте начнем ваше путешествие с овладения другими важными кодами статуса HTTP.
Неофициальные коды
103 КПП
Используется для возврата некоторых заголовков ответа перед окончательным HTTP-сообщением.
218 Это нормально (веб-сервер Apache)
Используется как условие общей ошибки, позволяющее передавать тела ответов через Apache, когда включен ProxyErrorOverride.
419 Срок действия страницы истек (Laravel Framework)
Используется Laravel Framework, когда токен CSRF отсутствует или просрочен.
420 Ошибка метода (Spring Framework)
Устаревший ответ, используемый Spring Framework при сбое метода.
420 Укрепите свое спокойствие (Twitter)
Код статуса 420 Enhance Your Calm является неофициальным расширением Twitter.Twitter использовал это, чтобы сообщить HTTP-клиентам, что их скорость ограничена. Ограничение скорости означает наложение ограничений на общее количество запросов, которые клиент может выполнить в течение определенного периода времени.
430 Слишком большие поля заголовка запроса (Shopify)
Этот код состояния указывает, что сервер не желает обрабатывать запрос, потому что его поля заголовка слишком велики. Запрос МОЖЕТ быть отправлен повторно после уменьшения размера полей заголовка запроса…. Ответы с кодом состояния 430 НЕ ДОЛЖНЫ храниться в кэше
450 Заблокировано родительским контролем Windows (Microsoft)
Код расширения Microsoft, указываемый, когда родительский контроль Windows включен и блокирует доступ к запрошенной веб-странице.
498 Неверный токен (Esri)
Возвращено ArcGIS for Server. Код 498 указывает на просроченный или недействительный токен по иным причинам.
Требуется 499 токен (Esri)
Нестандартный код состояния, введенный nginx для случая, когда клиент закрывает соединение, пока nginx обрабатывает запрос.
509 Превышен предел пропускной способности (веб-сервер Apache / cPanel)
Сервер превысил полосу пропускания, указанную администратором сервера; это часто используется провайдерами виртуального хостинга для ограничения полосы пропускания клиентов.
526 Недействительный сертификат SSL
Этот код ответа HTTP относится к тому моменту, когда клиент должен переключиться на другой протокол, указанный в поле заголовка Upgrade.
529 Сайт перегружен
Этот код ответа HTTP используется Qualys в API тестирования сервера SSLLabs для сигнализации о том, что сайт не может обработать запрос.
530 Сайт заморожен
Эта ошибка указывает на то, что запрошенное имя хоста не может быть разрешено в сети Cloudflare на исходный сервер.
598 (Неофициальное соглашение) Ошибка тайм-аута сетевого чтения
Используется некоторыми прокси-серверами HTTP для сигнализации тайм-аута сетевого чтения за прокси-сервером клиенту перед прокси.
Информационные службы Интернета
440 Тайм-аут входа
Сеанс клиента истек, и он должен войти в систему снова.
449 Повторить с
Сервер не может удовлетворить запрос, потому что пользователь не предоставил требуемую информацию.
451 Перенаправление
Сервер запрещает доступ к ресурсу вследствие законного требования.
Nginx
444 Нет ответа
Этот статус используется, чтобы указать, что nginx получил указание закрыть соединение без отправки ответа клиенту. Это часто используется для отклонения искаженных или злонамеренных запросов.
494 Заголовок запроса слишком большой
Этот код состояния используется nginx, чтобы указать, что запрос, отправленный клиентом, слишком велик или что строка заголовка слишком длинная.
495 Ошибка сертификата SSL
Расширение кода ответа 400 Bad Request, используемого, когда клиент предоставил недействительный сертификат клиента.
496 Требуется сертификат SSL
Расширение кода ответа 400 Bad Request, используемого, когда сертификат клиента требуется, но не предоставляется.
497 HTTP-запрос отправлен на HTTPS-порт
Расширение кода ответа 400 Bad Request, используемого, когда клиент отправил HTTP-запрос на порт, который прослушивает HTTPS-запросы.
499 Клиент закрытый запрос
Нестандартный код состояния, введенный nginx для случая, когда клиент закрывает соединение, пока nginx обрабатывает запрос.
Cloudflare
520 Веб-сервер возвратил неизвестную ошибку
Ошибка 520 используется как «всеобъемлющий ответ на случай, когда исходный сервер возвращает что-то неожиданное», с указанием сброса соединения, больших заголовков и пустых или недопустимых ответов в качестве общих триггеров.
521 Веб-сервер не работает
Эта ошибка указывает на то, что соединение с Cloudflare было отклонено сервером.
522 Превышено время ожидания соединения
Этот код состояния указывает на то, что подтверждение TCP не может быть согласовано с Cloudflare.
523 Источник недоступен
Cloudflare не смог связаться с исходным сервером; например, если записи DNS для исходного сервера неверны.
524 Истекло время ожидания
Cloudflare смог установить TCP-соединение с исходным сервером, но не получил своевременного ответа HTTP.
525 Ошибка установления связи SSL
Cloudflare не удалось согласовать рукопожатие SSL / TLS с исходным сервером.
526 Недействительный сертификат SSL
Используется Cloudflare и gorouter Cloud Foundry, чтобы указать, что не удалось проверить сертификат SSL / TLS, представленный исходным сервером.
527 Ошибка рейлгана
Ошибка 527 указывает на то, что запрос истек или завершился неудачно после установления соединения WAN.
530
Ошибка 530 указывает на то, что запрошенное имя хоста не может быть разрешено в сети Cloudflare на исходный сервер.
AWS Elastic Load Balancer
460
Эта ошибка может означать, что файл по ссылке недоступен, так как он помечен как ограниченный, например.g., в связи с заявлением об авторских правах. Если вы считаете, что файл был неправильно помечен, обратитесь в службу поддержки.
463
Этот код ошибки относится к недопустимому имени носителя.
Заключение
И вот оно! Это ваш краткий обзор того, что такое коды HTTP и что означают эти группы кодов состояния HTTP. Это хороший первый шаг к пониманию этого журнала сервера, и у вас хорошее начало, чтобы знать, какой из этих кодов ответа HTTP требует внимания или нет.
499 Код ошибки
Работает ли мой CDN
Связанный ресурс
,Коды состоянияHTTP — Учебное пособие по REST API
APIREST используют часть Status-Line ответного сообщения HTTP для информирования клиентов об общем результате их запроса. RFC 2616 определяет синтаксис строки состояния, как показано ниже:
Строка состояния = версия HTTP SP Код состояния SP Причина-фраза CRLF
HTTP определяет эти стандартные коды состояния, которые могут использоваться для передачи результатов запрос клиента. Коды состояния делятся на пять категорий.
- 1xx: Информационный — передает информацию на уровне протокола передачи.
- 2xx: Success — указывает, что запрос клиента был успешно принят.
- 3xx: Перенаправление — указывает, что клиент должен предпринять некоторые дополнительные действия для выполнения своего запроса.
- 4xx: ошибка клиента — эта категория кодов состояния ошибки указывает пальцем на клиентов.
- 5xx: Ошибка сервера — Сервер берет на себя ответственность за эти коды состояния ошибки.
Список кодов состояния HTTP
1xx коды 2xx коды 3xx коды 4xx коды 5xx коды
Код состояния | Описание |
---|---|
100 Продолжить | Промежуточный ответ. Указывает клиенту, что начальная часть запроса получена и еще не отклонена сервером. Клиенту СЛЕДУЕТ продолжить, отправив оставшуюся часть запроса, или, если запрос уже выполнен, игнорировать этот ответ.Сервер ДОЛЖЕН отправить окончательный ответ после того, как запрос был завершен. |
101 Протокол переключения | Отправляется в ответ на заголовок запроса обновления от клиента и указывает протокол, на который переключается сервер. |
102 Обработка (WebDAV) | Указывает, что сервер получил и обрабатывает запрос, но ответа еще нет. |
103 Ранние подсказки | В первую очередь предназначены для использования с заголовком Link .Он предлагает пользовательскому агенту начать предварительную загрузку ресурсов, пока сервер готовит окончательный ответ. |
Код состояния | Описание |
---|---|
200 OK | Указывает, что запрос выполнен успешно. |
201 Создано | Указывает, что запрос выполнен успешно, и в результате был создан новый ресурс. |
202 Принято | Указывает, что запрос был получен, но еще не выполнен.Обычно он используется при выполнении запросов журнала и пакетной обработке. |
203 Неавторизованная информация | Указывает, что возвращенная метаинформация в заголовке объекта не является окончательным набором, доступным с исходного сервера, а собирается из локальной или сторонней копии. Представленный набор МОЖЕТ быть подмножеством или расширенным набором исходной версии. |
204 Нет содержимого | Сервер выполнил запрос, но не должен возвращать тело ответа.Сервер может вернуть обновленную метаинформацию. |
205 Сброс содержимого | Указывает, что клиент должен сбросить документ, отправивший этот запрос. |
206 Частичное содержимое | Он используется, когда заголовок Range отправляется от клиента для запроса только части ресурса. |
207 Мульти-статус (WebDAV) | Индикатор для клиента, что произошло несколько операций и что статус каждой операции можно найти в теле ответа. |
208 Уже сообщено (WebDAV) | Позволяет клиенту сообщить серверу, что тот же ресурс (с той же привязкой) упоминался ранее. Он никогда не отображается как настоящий код ответа HTTP в строке состояния, а отображается только в теле. |
226 Использовано IM | Сервер выполнил запрос GET для ресурса, и ответ является представлением результата одной или нескольких манипуляций с экземпляром, примененных к текущему экземпляру. |
Код состояния | Описание |
---|---|
300 Множественный выбор | Запрос имеет более одного возможного ответа. Пользовательский агент или пользователь должен выбрать один из них. |
301 Перемещено навсегда | URL-адрес запрошенного ресурса был изменен навсегда. Новый URL-адрес задается полем заголовка Location в ответе. Этот ответ кэшируется, если не указано иное. |
302 Найдено | URL-адрес запрошенного ресурса был временно изменен. Новый URL-адрес задается полем Location в ответе. Этот ответ кэшируется только в том случае, если это указано полем заголовка Cache-Control или Expires . |
303 См. Другое | Ответ можно найти под другим URI, и его СЛЕДУЕТ получить с помощью метода GET для этого ресурса. |
304 Не изменено | Указывает клиенту, что ответ не был изменен, поэтому клиент может продолжать использовать ту же кэшированную версию ответа. |
305 Использовать прокси (устарело) | Указывает, что запрошенный ответ должен быть доступен прокси. |
306 (Не используется) | Это зарезервированный код состояния, который больше не используется. |
307 Временное перенаправление | Указывает, что клиент получит |
Общие сведения о кодах состояния ответа HTTP
В этом руководстве мы рассмотрим, что означает код состояния и как их использовать. Мы создадим простой бэкэнд Node.js для имитации всех наиболее распространенных кодов состояния из всего, что мы рассмотрим. Это поможет нам двумя способами:
- Использование API при создании приложений, особенно приложений на базе JavaScript.
- Создание API-интерфейсов RESTful, обеспечивающих максимально точный ответ в любое время.
— это язык, на котором фактически описываются результаты запросов браузеров (клиентов) к серверам.Браузеры знают, что означают коды состояния, поэтому они знают, как представить вам информацию после того, как вы сделаете запрос.
Если подумать, имеет смысл определить способы, которыми сервер может сообщать браузеру результат сделанного запроса. Существуют разные виды браузеров и разные конфигурации серверов, которые подходят для конкретных нужд приложения. Если бы не было стандартной схемы общения… анархия!
Предварительные требования
- Базовые знания JavaScript
- У вас установлен Node на вашем компьютере
Как браузер и сервер взаимодействуют друг с другом
Прежде чем вы спросите: «Правда? Это? Мне три года? », Я призываю вас обратить на это внимание, особенно если вам раньше не приходилось создавать API.Понимание того, как браузер общается с сервером (отношения клиент-сервер) в сети, поможет вам понять, почему важен каждый код состояния.
Серверы подобны центральному месту хранения данных (например, ресторан), а клиенты — это компьютеры, которые постоянно взаимодействуют с этими данными (например, голодные клиенты). Различные клиенты, от нескольких тысяч до сотен тысяч, обращаются к серверу с запросами на получение данных. Сервер выполняет несколько функций:
- Сначала определите тип клиента, проанализировав заголовок запроса, в котором указывается IP-адрес компьютера, тип используемого веб-браузера, тип используемого устройства, предпочтительный язык, на котором клиент хочет получать данные, формат данных. быть внутри, среди прочего.Вот почему, когда вы посещаете такой сайт, как Google, с другим языком, установленным в вашем браузере, он возвращает страницу на этом языке. Таким образом Twitter или Facebook могут перенаправить вас на m.twitter.com или m.facebook.com, когда вы заходите на сайт с мобильного телефона.
- Подтвердите, что у вас есть доступ к запрашиваемому содержимому (существуют разные уровни авторизации, которые он может использовать, в зависимости от типа запрашиваемого содержимого).
- Обработайте запрос.
- Вернуть данные вам.
Сервер должен сделать все это за доли секунды, чтобы он мог отвечать другим ожидающим пользователям.
Клиент, с другой стороны, отправляет запрос вместе с соответствующими заголовками, чтобы правильно определить, кто он и как он хочет получить запрошенную информацию. Если он пытается запросить стробируемую информацию, он должен представить некоторую форму токена / ключа доступа или иметь возможность показать, что у него есть разрешение на доступ к запрашиваемым данным. Клиент обычно не очень терпелив, поскольку ему не хватает времени и ресурсов.Если он не получает ответа от сервера через некоторое время, он закрывает соединение (точно так же, как голодный клиент уходит, когда он слишком долго ждал, чтобы его обслужили).
Однако, когда сервер отвечает, он отправляет некоторый код, чтобы сообщить клиенту о статусе своего запроса. Это было успешно? Следует ли клиенту уделить этому больше времени? Это не удалось? Неужели он не понял просьбу? Клиент ошибся в отправленном запросе? Это то, что сервер поясняет кодами состояния.
Конечно, взаимодействие клиент-сервер намного сложнее, и в игру вступают различные инструменты и протоколы, но это выходит за рамки данной статьи. То, что мы рассмотрели сейчас, достаточно, чтобы понять основные коды состояния, с которыми мы будем чаще встречаться при взаимодействии с общедоступными API.
Клиенты — это не просто веб-браузеры. Клиентами могут быть компьютерные терминалы, которые делают запросы CURL, или веб-/ мобильные приложения, которые взаимодействуют с API-интерфейсами для получения данных, или даже такие устройства, как холодильник или телевизор, подключенные к Интернету.
Информационные коды статуса — 1xx
Что они делают? Короткий ответ — предоставить информацию в браузер. Они сообщают, что запрос был получен и понят, и в большинстве случаев браузеру следует немного подождать, пока сервер обрабатывает информацию.
100 Продолжить
Когда клиент получает этот код состояния, это означает, что сервер получил заголовок своего запроса и принял запрос, поэтому клиент может продолжить и отправить тело запроса.Это чаще всего используется, когда клиент хочет отправить контент большого размера. Он отправит на сервер сообщение Expect: 100 - continue
, и когда сервер отправит ответ со статусом 100 continue
, он перейдет к отправке тела.
Статус 100 продолжить
, полученный с сервера, означает « Теперь вы можете отправить больше данных или проигнорировать, если вы закончили отправку». В некоторых случаях клиент может отправить Expect: 100 - продолжить
вместе с телом запроса.Это наиболее часто встречается с запросами curl
, так как это режим по умолчанию curl
взаимодействует с серверами.
101 Переключение протоколов
Клиент может отправить запрос серверу на переключение протокола связи, используя заголовок Upgrade
. Это может быть переход с HTTP / 1.1
на HTTP / 2
или переход на WebSocket. Сервер ответит кодом ответа 101
и заголовком ответа Upgrade
с информацией о протоколе, до которого он обновился.
Подробнее об обновлении протокола можно прочитать в MDN Web Docs: Механизм обновления протокола.
Коды состояния успеха — 2xx
Это коды состояния, с которыми мы сталкиваемся каждый день. Вы загружаете сайт, и он появляется? Был использован один из этих кодов состояния. Вы отправляете форму и получаете сообщение с поздравлением? Был использован один из этих кодов состояния. Они используются, чтобы указать, что наш запрос был успешным.
200 Ok
Этот код состояния ответа указывает, что наш запрос был успешным.Это используется в основном, когда мы запрашиваем данные с сервера, и он отвечает данными. Когда вы переходите по ссылке на веб-страницу, браузер отправляет запрос на сервер, чтобы передать ему содержимое этой веб-страницы.
Сервер ответит статусом 200 ok
и заголовком, указывающим тип возвращаемого содержимого ( текст / html
, мультимедиа
и т. Д.) И тело, содержащее сам контент.
Многие запросы данных, такие как посещение URL-адреса, обычно представляют собой запросы
GET
.GET
запросов используются для получения данных с сервера.
201 Создано
Это код ответа, который получает клиент после отправки ресурса (данных) на сервер. Этот ресурс хранится на сервере, и после его успешного сохранения возвращается код ответа 201 Created
с вновь созданным ресурсом в качестве тела запроса. Это может быть отправка форм, загрузка файлов или другие связанные действия.
Запросы, которые создают ресурсы на сервере, обычно представляют собой запросы
POST
.POST
запрашивает почтовые ресурсы на сервере. В ситуации, когда запросPUT
(который используется для обновления уже сохраненного ресурса) создает ресурс впервые, также может быть возвращено201 Created
.
202 Принято
Это не очень распространенный код ответа, отправляемый серверами. Он используется в тех случаях, когда запрос клиента был получен, но сервер отправил его для обработки. Это необязательный ответ в том смысле, что когда сервер в конечном итоге приходит для обработки запроса, он может или не может действовать в соответствии с ним в зависимости от того, имеет ли клиент право сделать этот запрос или если у сервера есть средства для его обработки. ,Кроме того, это означает, что сервер больше не будет отправлять ответ.
Может использоваться в случаях, когда запрос передается на другой сервер или когда запрос группируется для обработки в другое время. В таком сценарии сервер должен возвращать индикатор текущего статуса запроса и способ, с помощью которого клиент может отслеживать обработку запроса.
203 Неавторизованная информация
Это тоже не очень распространенный код ответа. Это означает, что ответ, который получает клиент, не совсем тот, который был отправлен сервером.Это может означать, что ответ был изменен, поскольку он прошел через прокси-туннель или другую связанную третью сторону.
В конечном итоге возвращенные данные могут быть подмножеством или расширенным набором данных, возвращаемых сервером.
204 Нет содержимого
Этот код ответа сообщает клиенту (в случае пользовательского агента) не изменять текущий документ, представленный пользователю. Информация заголовка может быть обновлена, но новое содержимое отправлено не будет.
Этот ответ может быть отправлен после того, как клиент сделает запрос на обновление ресурсов на сервере, и серверу не нужно возвращать какие-либо данные, поскольку ничего нового не было создано.Сервер никогда не должен возвращать тело ответа, когда он отправляет код состояния 204 - Нет содержимого
.
205 Сбросить содержимое
Этот статус ответа указывает клиенту обновить образец документа.
206 Частичное содержимое
Этот код ответа указывает, что запрос выполнен успешно, и в теле ответа есть запрошенные диапазоны данных. Сервер отправляет диапазоны данных только тогда, когда клиент устанавливает заголовок Range
в своем запросе. Имейте в виду, что клиент никогда не должен запрашивать диапазон, если он не может его обработать.
Если есть только один диапазон, Content-Type
всего ответа устанавливается на тип документа, и предоставляется Content-Range
. Если несколько диапазонов отправляются обратно, Content-Type
устанавливается на multipart / byteranges
, и каждый фрагмент покрывает один диапазон, с Content-Range
и Content-Type
, описывающими его.
Когда диапазон запрашивается клиентом, сервер возвращает 206 Parital Content
и никогда не возвращает 200 Ok
.Медиа, такие как большие видео и изображения, являются хорошими примерами возврата данных в виде диапазона.
Перенаправления — 3xx
Вы видите эти коды ответов, вам нужно очень хорошо их знать, если поисковая оптимизация (SEO) что-то значит для вас и вашего продукта. Эти коды состояния имеют дело с перенаправлением, когда клиент пытается получить доступ к ресурсу.
300 Множественный выбор
Этот код состояния означает, что запрос имеет более одного возможного ответа. Клиент должен выбрать один из них.Не существует стандартизированного способа выбора, поэтому он используется редко. Если вы его видите, найдите заголовок Location
, который обычно содержит предпочтительный выбор серверов.
301 Перемещено навсегда
Это, возможно, самый важный из кодов состояния перенаправления. При неправильном использовании он может помешать вашему SEO и навсегда похоронить ваш сайт. Это также может создать очень плохой пользовательский опыт и увеличить отток пользователей на вашем сайте.
Это сообщает клиенту, что искомый ресурс был перемещен навсегда, а затем представляет URL-адрес нового местоположения ресурса.Это делает две вещи: сообщает клиенту, где найти ресурс, а также помогает клиенту узнать, куда идти в следующий раз, когда ему понадобится ресурс. Новое расположение ресурса указано в заголовке Location
.
301 редирект может потребовать, чтобы метод (и тело) оригинала не изменялся при выполнении перенаправления. Однако не все браузеры на стороне клиента соблюдают эту директиву. Согласно Mozilla Developer Docs, поэтому рекомендуется использовать код
301
только в качестве ответа для методовGET
илиHEAD
и вместо этого использовать308
Permanent Redirect
для методовPOST
, как с этим статусом смена метода явно запрещена
302 Найдено
Это прямой родственник 301
😁.Он используется для временного перенаправления. Клиентские браузеры будут перенаправлять на указанный ресурс, но системы индексации, такие как поисковые системы, не изменят свою ссылку на ресурс, поскольку перенаправление является временным.
И, как и 301
, клиентские браузеры могут изменить тело / метод запроса, поэтому, если вы хотите временно перенаправить POST
, используйте вместо него 307
.
303 См. Другое
Ну, мы будем называть этого двоюродным братом по номерам 301
и 302
😂.Проще говоря, этот код состояния сообщает клиенту, что переадресация ссылается не на недавно загруженные ресурсы, а на другую страницу, например страницу благодарности или страницу монитора состояния. Он отправляется в результате запроса PUT
или POST
, а для перенаправления всегда используется метод GET
. Я сказал вам, что это кузен.
304 Не изменено
Этот код состояния может пригодиться, если вы предварительно извлекли кэшируемое содержимое. Он сообщает клиенту, что ресурс, который они пытаются получить, не изменился, поэтому он должен сохранить имеющуюся копию.Это пригодится, если вы создаете такую систему, как новостная лента, и всегда хотите проверять наличие новых обновлений. Это предотвратит получение старых данных и ненужную перезагрузку браузера клиента. Хорошим вариантом было бы использовать API Pusher в реальном времени.
307 Временное перенаправление
Мы уже говорили об этом ранее, что можно пропустить его, верно? Что ж, этот код ответа отправляется сервером, когда он намеревается явно указать клиенту поддерживать метод, изначально использованный для запроса.Он работает так же, как 302
, за исключением того, что добавляет очень четкую директиву, чтобы ничего не менять. Лучше всего использовать, если у вас есть упрямые клиенты, которые всегда меняют методы запроса при перенаправлении 🙄.
Постоянное перенаправление 308
Постоянное перенаправление 308 является прямым родственником 307
. И это строгая версия 301
.
Ошибка клиента — 4xx
Это коды состояния, используемые для информирования клиента о том, что он допустил ошибку в сделанном запросе.Не заполнено ли обязательное поле? Они отправили неправильный формат данных? Разве они не авторизованы для доступа к ресурсу, который они просматривают? Им нужно подтвердить свою личность? Все эти вещи обрабатываются этими кодами состояния.
А теперь давайте углубимся в них.
400 Bad Request
Должен признать, это мой любимый код статуса 😂. Каждый раз, когда на моей консоли появляется красная ошибка 400 Bad Request
, я сначала смотрю вверх и спрашиваю: «Какую жизнь я выбрал?» прежде чем приступить к расследованию.
Ошибочные запросы возникают, когда клиент отправляет запрос либо с неполными данными, либо с неверно построенными данными, либо с недопустимыми данными. Часто это может быть вина разработчика, который не указал должным образом, какие данные он ожидает. Как бы то ни было, это происходит потому, что данные, которые вы отправили в запрос, неверны.
401 Неавторизованный
Этот ответ простыми словами означает, что клиенту необходимо аутентифицировать себя, прежде чем он завершит запрос. Аутентификация здесь может быть предоставлена токен доступа
в случае OAuth
или авторизации
токена в случае системы аутентификации jwt
или даже ключей API.
Все, что нужно серверу для идентификации того, кто делает запрос, должно быть отправлено для выполнения запроса.
403 Запрещено
Эта ошибка возникает, когда клиент пытается получить доступ к запрещенному ресурсу. Это не то же самое, что 401 Unauthorized
(просто считайте их разнояйцевыми близнецами 😃). Аутентифицированному клиенту может быть Запрещено
доступ к ресурсу, так же как и неаутентифицированному клиенту.
Часто клиент получает 403 Запрещено
только после того, как он был аутентифицирован, поскольку система должна будет удостовериться, кем является клиент первым, прежде чем запрещать или предоставлять ему доступ к ресурсам.
404 Not Found
Если вы часто пользовались Интернетом, вы наверняка сталкивались с этим, особенно с 404 Page Not Found
. В терминах API это означает, что ресурс, к которому вы пытаетесь получить доступ, не найден или конечная точка не существует. Описание ошибки может сопровождать ошибку, но в большинстве случаев на это не рассчитывайте.
404
не указывает, если ресурс отсутствует или был окончательно удален (удален). В случае, если ресурс был удален навсегда, сервер должен вернуть 410 GONE
.
405 Метод запрещен
Этот код ответа возникает, когда вы пытаетесь получить доступ к ресурсу, предназначенному только для запросов GET
через запрос POST
и наоборот. К некоторым ресурсам можно получить доступ с помощью любого метода запроса ( GET
, POST
или HEAD
), и в таком случае вы не получите код ответа 405 Method Not Allowed
.
Стандартная практика заключается в том, что когда сервер отправляет код ответа 405
, он включает список методов, поддерживаемых для доступа к рассматриваемому ресурсу.
406 Неприемлемо
Это редко используемый код ошибки. Это указывает на то, что сервер не может выдать ответ, соответствующий запросу, сделанному пользователем, и сервер не желает отправлять ответ по умолчанию. Вы можете узнать об этом больше в Документах разработчика Mozilla.
407 Требуется аутентификация прокси
Это будет двойник 401 Неавторизованный
. Единственная разница в том, что аутентификация должна выполняться через прокси.
408 Тайм-аут запроса
Этот код ответа отправляется сервером, когда он хочет закрыть незанятое соединение, открытое клиентом.Клиент, возможно, не выполнил свой запрос и, возможно, тратит на это много времени.
Стандарт заключается в том, что сервер отправляет закрытый заголовок Connection
в поле ответа вместе с кодом ответа.
Во многих случаях сервер может разорвать соединение без отправки кода ответа.
409 Конфликт
Этот ответ отправляется сервером, когда запрос конфликтует с внутренними операциями сервера. Хороший пример такого конфликта — попытка обновить ресурс на сервере более старой версией.
410 Gone
Мы уже упоминали, что этот код состояния показывает, что ресурс, к которому клиент хочет получить доступ, был окончательно удален.
411 Требуется длина
Сервер возвращает этот код состояния, если он требует, чтобы заголовок Content-Length
был установлен вместе с запросом, а клиент не установил его.
412 Ошибка предварительного условия
Это происходит, когда клиент слишком требователен, а сервер не обладает такой мощностью 🙄.Таким образом, клиенты могут отправлять условные запросы на серверы, что отлично. Если условия соблюдены, сервер ответит данными. Если условия не соблюдены, сервер просто ответит 412 Precondition Failed
.
Подробнее об условных запросах мы поговорим, когда дойдем до номера 428 Требуется предварительное условие
.
413 Слишком большая полезная нагрузка
Данные запроса слишком велики для обработки сервером 😃. Говоря техническим языком, размер полезной нагрузки мог превышать предел, указанный сервером.
414 URI слишком длинный
Просто сократите URL-адрес, и все будет хорошо. На самом деле это происходит только тогда, когда у вас есть много вещей, добавленных к URL-адресу при создании запроса GET
с большим количеством параметров.
415 Неподдерживаемый тип носителя
Вот что это такое. Сервер не поддерживает тип носителя, запрошенный клиентом.
416 Диапазон не соответствует требованиям
Сервер не может выполнить диапазон Диапазон
, указанный в заголовке запроса.Это может означать, что Range
запрашивает больше данных, чем может предоставить сервер. Подумайте, индекс массива выходит за рамки
, и вы получите картину.
417 Ошибка ожидания
Когда сервер не может удовлетворить ожидания, содержащиеся в поле заголовка запроса Expect
, он отправляет этот ответ.
418 Я чайник
Честно говоря, не знаю, зачем это вообще было сделано, но это код ответа на первоапрельскую шутку. Это означает, что сервер отказывается заваривать кофе, потому что это чайник 🤣.Вы можете прочитать больше об этой розыгрыше на WikiPedia.
419 Тайм-аут аутентификации
В настоящее время это возможно только с приложениями Laravel. Это означает, что срок действия токена csrf
приложения истек. Токен csrf
в Laravel отправляется с каждой отправкой формы или запросом к ресурсам, защищенным аутентификацией и многим другим.
426 Требуется обновление
Сервер возвращает этот код ответа, когда он не желает связываться с клиентом по определенному протоколу, но желает продолжить связь, если они меняют протоколы.Да, я согласен … Эти серверы просто полны себя.
Сервер отправляет заголовок Upgrade
с этим ответом, чтобы предоставить список протоколов, которые он желает использовать для продолжения связи.
428 Требуется предварительное условие
Этот ответ отправляется сервером, когда он требует, чтобы запрос был условным. Условный запрос — это запрос, результат которого может измениться в зависимости от проверки запрошенного ресурса. Условные запросы полезны в таких сценариях, как загрузка, когда клиент может приостановить и возобновить работу в любое время.
Для таких запросов требуется заголовок предварительного условия, например If-Match
. Если заголовок предварительного условия не соответствует тому, что есть на сервере, вместо него отправляется сообщение 412 Precondition Failed
.
429 Слишком много запросов
Этот код состояния отправляется, когда пользователь отправил слишком много запросов, чем разрешено в заданный период времени. Это обычное дело для API, которые ограничивают использование периодом времени.
Сервер просто не желает обрабатывать запрос, потому что чувствует, что заголовки запроса слишком велики.Вот и все.
Клиент может уменьшить заголовки и повторить запрос.
451 Недоступен по юридическим причинам
Ресурс, запрошенный клиентом, не может быть обслужен по некоторым юридическим причинам. Предоставить его этому пользователю будет означать нарушение закона.
На практике вы редко встретите большинство кодов ошибок, но хорошо, что вы их знаете. Они становятся все более распространенными по мере увеличения сложности создаваемых вами приложений.
Ошибка — 5xx
Эти ошибки возникают не по вине клиента.Здесь виноваты серверы, и клиент ничего не может сделать, чтобы получить желаемый ответ.
500 Внутренняя ошибка сервера
Когда сервер обрабатывает запрос клиента и попадает в ситуацию, которую не может обработать, он отправляет 500 Внутренняя ошибка сервера
. Эти проблемы могут быть вызваны многими причинами. Сервис, требуемый сервером, может быть недоступен. Разработчик, создавший приложение, возможно, использовал пакет или библиотеку и забыл загрузить их на сервер.У разработчика мог быть ошибочный код, и сервер столкнулся с этим. Это может быть что угодно, мешающее серверу завершить свою работу.
501 Не реализовано
Сервер отправляет этот код, когда вы отправляете ему запрос с помощью метода запроса, который он не знает или не имеет возможности разрешить. Серверы должны реализовывать только методы GET
и HEAD
, поэтому вы можете отправить запрос PUT
или PATCH
, и сервер не сможет его обработать.
Это не то же самое, что 405 Метод запрещен
, потому что с 405
сервер четко понимает запрос, но не может ответить на него, пока метод не будет изменен. С 501
сервер не может понять используемый метод и, следовательно, не может предоставить какой-либо ответ.
502 Плохой шлюз
Сервер отправляет этот код, когда он действует как прокси-сервер и / или получает данные из внешнего ресурса, и получает недопустимый ответ от этого внешнего источника.
503 Служба недоступна
Это типичный код ошибки сервера, который вы можете получить. Это означает, что сервер может быть отключен и, следовательно, не готов обработать запрос в это время. Это может быть результатом текущего обслуживания или перегрузки сервера.
Это временная ситуация, поэтому, если вы реализуете кеширование в своем приложении, вы можете не кэшировать этот ответ.
504 Тайм-аут шлюза
Прямой родственник 502
😃.Сервер отправляет этот код ответа, когда он действует как шлюз, а внешний ресурс не предоставляет ему ответ вовремя.
505 Версия HTTP не поддерживается
Этот код состояния указывает, что версия HTTP, которую клиент использовал для запроса, не поддерживается сервером. Подумайте о вызове HTTP / 1.1
на сервер, когда сервер работает только с HTTP / 2
😎.
511 Требуется сетевая аутентификация
Этот код состояния означает, что клиенту необходимо пройти аутентификацию в сети, к которой он пытается получить доступ, прежде чем будет предоставлен доступ.Это происходит при попытке доступа к сети через прокси, поэтому можно утверждать, что это дальний родственник 401 Unauthorized
.
Разница в том, что 401
сообщает клиентскому каталогу, что он нуждается в аутентификации, но 511
означает, что прокси-сеть не может получить доступ к внешнему ресурсу из-за отсутствия надлежащей авторизации.
Заключение
Если вы следовали этому руководству, то вы, мой друг, более чем готовы создавать удивительные веб-приложения.Правильное понимание этих кодов состояния имеет решающее значение для взаимодействия с пользователем вашего приложения. Понимание их означает, что вы можете эффективно спроектировать свое приложение для корректной обработки ошибок или проблем, которые могут возникнуть.
Если вы разработчик, создающий API, вам будет проще отправлять соответствующие ответы для сценариев, с которыми сталкиваются ваши пользователи при использовании вашего приложения. Это не менее важно для создания полезных приложений.
В следующем руководстве мы увидим, что он использует API-интерфейсы и испытывает коды состояния, которые мы получили.
.