Содержание

Коды ответов сервера — подробное описание

Как проверить код ответа сервера и понять его значение. Подробный перечень частых ошибок 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.


451 Unavailable For Legal Reasons


Код отображает то же, что и 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 код. Для исправления нужно проверить настройку прокси-сервера.


503 Service Unavailable


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


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 коды ответов сервера 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

У Вас в браузере заблокирован 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. Состоит из 3 десятичных цифр. По коду ответа сервера клиент узнаёт о результатах его запроса и определяет, какие действия ему предпринимать дальше.

и их расшифровка.

Чтобы проверить HTTP заголовки конкретного сайта или страницы, воспользуйтесь инструментом

Выберите интересующий Вас HTTP код для быстрого перехода:

ВЫБРАТЬ КОД HTTP100101102200201203204205206207226300301302303304305306307308400401402403404405406407408409410411412413414415416417422423424425426449451456499500501502503504505506507509510511520521522523524525526

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

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 | Wiki — PeterHost

Wiki

Коды состояния http

Категория:Виртуальный хостинг -> Инструкции -> Разное

Содержание

Ответ HTTP-сервера (apache или nginx) на запрос клиента состоит из двух частей: заголовки и непосредственно тело сообщения.
Для диагностики проблем с сайтами бывает полезно взглянуть именно на заголовки, так как они несут часть служебной информации о том, как отработал сервер, отдавая страницу клиенту.

HTTP/1.1 200 OK
Server: nginx
Date: Sat, 15 May 2010 06:04:26 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
Cache-Control: no-cache,no-store,max-age=0,must-revalidate
Content-Length: 6426
Expires: Sat May 15 06:04:26 2010 GMT
Last-Modified: Sat May 15 06:04:26 2010 GMT
Set-Cookie: S=; path=/; expires=Wed, 17-May-2000 06:04:26 GMT
Set-Cookie: S=; domain=.ya.ru; path=/; expires=Wed, 17-May-2000 06:04:26 GMT
X-XRDS-Location: http://openid.yandex.ru/server_xrds/

<html>
<head>
<meta http-equiv=«Content-Type«content=«text/html;charset=utf-8»>
<title>Яндекс</title>
<link rel=«shortcut icon«href=«http://yandex.st/lego/2.2.8/common/block/b-service-icon/_ico/b-service-icon_serp.ico»><base target=»_top»>

</body>
</html>

Заголовки отделяются от тела сообщения пустой строкой.
HTTP-сервер в первой строке заголовка указывает код состояния запроса.
По коду состояния можно судить о результате работы сервера при обработке запроса клиента.

Классы кодов ответа:

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

В этот класс выделены коды, информирующие о процессе передачи.

2xx Success (Успешно)

Сообщения данного класса информируют о случаях успешного принятия и обработки запроса клиента. В зависимости от статуса сервер может также передать заголовки и тело сообщения.

3xx Redirection (Перенаправление)

Коды класса 3xx сообщают клиенту что для успешного выполнения операции необходимо сделать другой запрос (как правило по другой ссылке). Из данного класса пять кодов 301, 302, 303, 305 и 307 относятся непосредственно к перенаправлениям. Адрес, по которому клиенту следует произвести запрос, сервер указывает в заголовке Location.

Узнать код ответа сервера на определенный запрос можно с помощью утилиты curl, вызвав её с ключом -I.
Команду curl можно использовать из командной строки *nix-подобной операционной системы, например, зайдя на сервер по SSH.
Запросим с помощью неё yandex.ru:

curl -I http://yandex.ru

и получим следующий ответ:

HTTP/1.1 301 Moved Permanently
Date: Sat, 15 May 2010 05:39:40 GMT
Server: Apache/2.2.9 (Unix) mod_perl/2.0.4 Perl/v5.8.8
Location: http://www.yandex.ru/
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=iso-8859-1

Сервер яндекса на запрос yandex.ru ответил кодом «301 Moved Permanently», что, как сказано выше, означает необходимость выполнить запрос по предложенному сервером адресу(этот адрес указан в заголовке «Location», и в данном случае это www.yandex.ru).
Сервер сообщает нам, что обращаться нужно не к yandex.ru, а к www.yandex.ru.

Запросим www.yandex.ru:

curl -I http://www.yandex.ru

получим ответ:

HTTP/1.1 200 OK
Server: nginx
Date: Sat, 15 May 2010 06:01:26 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
Cache-Control: no-cache,no-store,max-age=0,must-revalidate
Content-Length: 73507
Expires: Sat May 15 06:01:27 2010 GMT
Last-Modified: Sat May 15 06:01:27 2010 GMT
Set-Cookie: S=; path=/; expires=Wed, 17-May-2000 06:01:26 GMT
Set-Cookie: S=; domain=.yandex.ru; path=/; expires=Wed, 17-May-2000 06:01:26 GMT
Set-Cookie: yandexuid=3572906971273903287; domain=.yandex.ru; path=/; expires=Tue, 12-May-2020 06:01:26 GMT
X-XRDS-Location: http://openid.yandex.ru/server_xrds/

Код ответа «200 OK». Сервер исправно выполнил запрос и вернул пользователю результат.

4xx Client Error (Ошибка клиента)

Класс кодов 4xx предназначен для указания ошибок со стороны клиента.

400 Bad Request (Плохой запрос)

Запрос не принят сервером из-за наличия синтаксической ошибки. Клиенту следует повторно обратиться к ресурсу с изменённым запросом.

401 Unauthorized (Не авторизован)

Запрос требует авторизации пользователя. Сервер должен запросить имя и пароль у пользователя. Если были указаны неверные данные, то сервер снова вернёт этот же статус. Например, наша система мониторинга требует предоставления логина и пароля для входа в систему.
При запросе страницы мониторинга сервер отдаёт следующие заголовки:

curl -I http://monitoring.z8.ru

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

HTTP/1.1 401 Authorization Required
Server: nginx/0.5.7
Date: Sat, 15 May 2010 06:16:23 GMT
Content-Type: text/html; charset=iso-8859-1
Transfer-Encoding: chunked
Connection: keep-alive
WWW-Authenticate: Basic realm="Nagios Access"
403 Forbidden (Запрещено)

Сервер вернул ошибку 403 при попытке просмотра директории доступ к которой был запрещён. Сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе со стороны клиента к указанному ресурсу. Если для доступа к ресурсу требуется аутентификация средствами HTTP, то сервер вернёт ответ 401. В противном случае ограничения были заданы администратором сервера или разработчиком web-приложения и могут быть любыми в зависимости от возможностей используемого ПО. Наиболее вероятными причинами ограничения могут являться:

  • Попытка доступа к системным ресурсам веб-сервера (например, файлам .htaccess или .htpasswd) или к файлам, доступ к которым был закрыт с помощью настроек доступа к серверу.
  • Для доступа требуется аутентификация не средствами HTTP (например, для доступа к CMS или разделу для зарегистрированных пользователей).
  • Сервер не удовлетворён IP-адресом клиента (например, временная блокировка из-за частых обращений или же на этапе разработки приложения доступ разрешён только некоторым IP).
  • В запрашиваемой директории отсутствует индексный файл.
404 Not Found (Не найдено)

Сервер понял запрос, но не нашёл соответствующего ресурса по указанной ссылке. Запросим несуществующую страницу:

curl -I http://yandex.ru/instr/index.php

И получим ответ 404:

HTTP/1.1 404 Not Found
Date: Sat, 15 May 2010 06:56:24 GMT
Server: Apache/2.2.9 (Unix) mod_perl/2.0.4 Perl/v5.8.8
Accept-Ranges: bytes
Vary: Accept-Encoding
Connection: close
Content-Type: text/html
405 Method Not Allowed (Метод не применим)

Указанный клиентом метод запроса нельзя применить к текущему ресурсу.

499 Client Closed Request (Nginx)

Данная ошибка означает, что клиент закрыл соединение до того, как ему хоть что-то было передано сервером. Во многих случаях 499 – это нормально. Скажем, клиент закрыл браузер до того, как успела загрузится только что открытая страница (или загрузки картинок с только что открытой страницы). Однако стоит упомянуть, что Яндекс.Метрика, получая код 499, считает, что сервер недоступен.

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

Коды 5xx выделены под случаи неудачного выполнения операции по вине сервера.

500 Internal Server Error (Внутренняя ошибка сервера)

Любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса 5xx. В основном может возникать в случаях:

  • ошибок пользователей в файле .htaccess.
  • ошибок в скриптах пользователя.
  • проблем на сервере
502 Bad Gateway (Плохой шлюз)

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

503 Service Unavailable (Сервис недоступен)

Сервер временно не имеет возможности обрабатывать запросы по техническим причинам. У нас на хостинге эта ошибка говорит о том, что у пользователя превышен лимит на количество обработчиков HTTP-сервера или общего числа процессов на аккаунт.

504 Gateway Timeout (Шлюз не отвечает)

См. 502

Категории:

Список кодов состояния HTTP




Список кодов состояния HTTP

Код состояния HTTP (англ. HTTP status code) — часть первой строки ответа сервера при запросах по протоколу HTTP. Он представляет собой целое число из трёх десятичных цифр. Первая цифра указывает на класс состояния. За кодом ответа обычно следует отделённая пробелом поясняющая фраза на английском языке, которая разъясняет человеку причину именно такого ответа. Примеры:

  • 201 Created.
  • 401 Unauthorized.
  • 507 Insufficient Storage.

Клиент узнаёт по коду ответа о результатах его запроса и определяет, какие действия ему предпринимать дальше. Набор кодов состояния является стандартом, и они описаны в соответствующих документах RFC. Введение новых кодов должно производиться только после согласования с IETF. Тем не менее известно о двух используемых кодах, не упомянутых в RFC: 449 Retry With. Также упоминается пояснительная фраза «Reply With»[1] в спецификации по WebDAV в Microsoft Developer Network, введённый Microsoft и 509 Bandwidth Limit Exceeded, введённый в cPanel.

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

Веб-сервер Internet Information Services в своих файлах журналов, кроме стандартных кодов состояния, использует подкоды, записывая их через точку после основного. При этом в ответах от сервера данный подкод не размещается — он нужен администратору сервера, чтобы тот мог более точно определять источники проблем.

Ниже представлен обзорный список всех описанных в данной статье кодов ответа:

Диаграмма принятия веб-сервером решений на основе заголовковДиаграмма принятия веб-сервером решений на основе заголовковДиаграмма принятия веб-сервером решений на основе заголовковСтатистика по кодам ответа, сгенерированная анализатором логов WebalizerСтатистика по кодам ответа, сгенерированная анализатором логов WebalizerСтатистика по кодам ответа, сгенерированная анализатором логов Webalizer

Статистика по кодам ответа, сгенерированная анализатором логов Webalizer






Предыдущая статьяРуководство по REST архитектуреСледующая статьяСоздаем многопользовательскую веб-игру Javascript

HTTP ответы сервера: строка состояния HTTP ответа, коды состояния, заголовки HTTP ответа, примеры

Привет, читатель блога ZametkiNaPolyah.ru! Продолжим знакомиться с протоколом HTTP в рубрике серверы и протоколы и ее разделе HTTP протокол. В этой записи мы с тобой разберем, как отвечает HTTP сервер на запросы клиента. Как всегда: понятно и с примерами, но если тебе что-то будет непонятно — не стесняйся спросить в комментариях. Ответ ты получишь, как минимум, HTTP. Как ты уже догадался, в этой записи мы с тобой будем говорить про HTTP ответы сервера, а конкретнее: про строку состояния HTTP ответа сервера, немного поговорим про коды состояния HTTP ответа, посмотрим какие заголовки сервер может посылать в ответ на запрос и разберем несколько примеров HTTP ответа сервера.

HTTP ответы сервера: строка состояния HTTP ответа, коды состояния, заголовки HTTP ответа, примеры

Структура HTTP ответа сервера

Содержание статьи:

Если вы хотите узнать всё про протокол HTTP, обратитесь к навигации по рубрике HTTP протокол. HTTP ответы – это HTTP сообщение, которое посылает сервер в ответ на запрос клиента. Ответы HTTP сервера строго регламентированы и имеют четкую структуру. Структура HTTP ответа сервера состоит из:

  1. Строки состояния HTTP ответа, в которой сервер указывает версию HTTP протокола и код состояния.
  2. Нуля или нескольких полей HTTP заголовка, разделенных между собой символом CRLF.
  3. Пустой строки (в этой строке должен быть только символ CRLF), эта строка обозначает окончание полей заголовка.
  4. Необязательное тело HTTP сообщения.

Для тех кому непонятно словесное описание структуры HTTP ответа сервера приведем пример:

Response      = Status-Line               ;

*( general-header         ;

| response-header        ;

| entity-header )        ;

CRLF

[ message-body ]          ;



Response      = Status-Line               ;

 

*( general-header         ;

 

| response-header        ;

 

| entity-header )        ;

 

CRLF

 

[ message-body ]          ;

Мы обозначили структуру HTTP ответа сервера. Давайте теперь рассмотрим каждую из составляющих HTTP ответа сервера в отдельности.

Строка состояния HTTP ответа сервера

Первая строка в HTTP ответе – это строка состояния, иначе Status-Line. Она состоит из версии протокола HTTP, числового кода состояния HTTP сервера и поясняющей фразы. Окончание строки состояния в HTTP ответе является символ CRLF. Пример строки состояния HTTP ответа сервера:

Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF



Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF

Вот таким нехитрым образом записывается строка состояния в HTTP ответ. Да, кстати, строка состояния — это параметр HTTP.

Код состояния HTTP ответа и поясняющая фраза

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

Вообще, правильно говорить элемент кода состояния или Status-Code – это целочисленный трехразрядный код результата понимания и удовлетворения запроса клиента. Грубо говоря, это число, которое показывает то, как сервер понял запрос клиента. К коду состояния HTTP ответа идет поясняющая фраз, которая предназначена для людей, чтобы те понимали, что в итоге случилось. Давайте сведем в таблицу коды состояний  HTTP сервера и дадим к ним пояснения:

Номер Код состояния HTTP сервера и его описание
1 1xx: информационный код состояния HTTP сервера
Все коды состояний, начинающиеся с единицы говорят клиенту о том, что их запрос получен и находится в обработке  и называются они — информационные коды состояния.
2 2xx: успешный код состояния HTTP сервера
Все коды состояний, начинающиеся с двойки говорят клиенту о том, что действие закончилось успешно: получено, понято и обработано, такие коды называются успешные HTTP коды.
3 3xx: код перенаправления HTTP сервера
Все коды состояния, начинающиеся с тройки говорят клиенту о том, что для продолжения работы ему нужно совершить какие-то действия, это коды получили название кодов перенаправления HTTP сервера.
4 4xx: коды ошибок HTTP клиента
Все коды состояния, начинающиеся с четверки говорят нам о том, что ошибка происходит по вине клиента (неверный синтаксис, устаревший протокол и прочее), из-за чего сервер не может корректно отработать и дать ответ. Их называют коды ошибок HTTP клиента.
5 5xx: коды ошибок HTTP сервера
Все коды состояний, начинающиеся с пятерки, говорят нам о том, что произошла ошибка на стороне сервера HTTP. И они получили называние коды ошибок HTTP сервера.

 

Приведем набор кодов состояний в HTTP и поясняющие фразы к ним:

Status-Code    = «100»   ; Продолжать, Continue

| «101»   ; Переключение протоколов,

; Switching Protocols

| «200»   ; OK

| «201»   ; Создан, Created

| «202»   ; Принято, Accepted

| «203»   ; Не авторская информация,

; Non-Authoritative Information

| «204»   ; Нет содержимого, No Content

| «205»   ; Сбросить содержимое, Reset

; Content

| «206»   ; Частичное содержимое, Partial

; Content

| «300»   ; Множественный выбор, Multiple

; Choices

| «301»   ; Постоянно перенесен, Moved

; Permanently

| «302»   ; Временно перемещен, Moved

; Temporarily

| «303»   ; Смотреть другой, See Other

| «304»   ; Не модифицирован, Not Modified

| «305»   ; Используйте прокси-сервер, Use

; Proxy

| «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»   ; URI запроса слишком длинный,

; Request-URI Too Long

| «415»   ; Неподдерживаемый медиа тип,

; Unsupported Media Type

| «500»   ; Внутренняя ошибка сервера,

; Internal Server Error

| «501»   ; Не реализовано, Not Implemented

| «502»   ; Ошибка шлюза, Bad Gateway

| «503»   ; Сервис недоступен, Service

; Unavailable

| «504»   ; Истекло время ожидания от шлюза,

; Gateway Timeout

| «505»   ; Не поддерживаемая версия HTTP,

; HTTP Version Not Supported

| extension-code

 

extension-code = 3DIGIT

 

Reason-Phrase  = *<TEXT не включающий CR, LF>


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

Status-Code    = «100»   ; Продолжать, Continue

 

| «101»   ; Переключение протоколов,

 

; Switching Protocols

 

| «200»   ; OK

 

| «201»   ; Создан, Created

 

| «202»   ; Принято, Accepted

 

| «203»   ; Не авторская информация,

 

; Non-Authoritative Information

 

| «204»   ; Нет содержимого, No Content

 

| «205»   ; Сбросить содержимое, Reset

 

; Content

 

| «206»   ; Частичное содержимое, Partial

 

; Content

 

| «300»   ; Множественный выбор, Multiple

 

; Choices

 

| «301»   ; Постоянно перенесен, Moved

 

; Permanently

 

| «302»   ; Временно перемещен, Moved

 

; Temporarily

 

| «303»   ; Смотреть другой, See Other

 

| «304»   ; Не модифицирован, Not Modified

 

| «305»   ; Используйте прокси-сервер, Use

 

; Proxy

 

| «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»   ; URI запроса слишком длинный,

 

; Request-URI Too Long

 

| «415»   ; Неподдерживаемый медиа тип,

 

; Unsupported Media Type

 

| «500»   ; Внутренняя ошибка сервера,

 

; Internal Server Error

 

| «501»   ; Не реализовано, Not Implemented

 

| «502»   ; Ошибка шлюза, Bad Gateway

 

| «503»   ; Сервис недоступен, Service

 

; Unavailable

 

| «504»   ; Истекло время ожидания от шлюза,

 

; Gateway Timeout

 

| «505»   ; Не поддерживаемая версия HTTP,

 

; HTTP Version Not Supported

 

| extension-code

 

 

 

extension-code = 3DIGIT

 

 

 

Reason-Phrase  = *<TEXT не включающий CR, LF>

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

Поля заголовка HTTP ответа

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

response-header = Age                     ;

| Location                ;

| Proxy-Authenticate      ;

| Public                  ;

| Retry-After             ;

| Server                  ;

| Vary                    ;

| Warning                 ;

| WWW-Authenticate        ;


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

response-header = Age                     ;

 

| Location                ;

 

| Proxy-Authenticate      ;

 

| Public                  ;

 

| Retry-After             ;

 

| Server                  ;

 

| Vary                    ;

 

| Warning                 ;

 

| WWW-Authenticate        ;

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

Пример HTTP ответа сервера

Давайте теперь посмотрим пример HTTP ответа сервера, помните, мы запрашивали у сервера HTML документ в записи про HTTP запросы? Давайте теперь посмотрим, какой ответ нам даст HTTP сервер:

HTTP/1.1 200 OK

Date: Mon, 27 Jul 2009 12:28:53 GMT

Server: Apache/2.2.14 (Win32)

Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT

Content-Length: 88

Content-Type: text/html

Connection: Closed

<html>

<body>

<h2>Hello, World!</h2>

</body>

</html>


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

HTTP/1.1 200 OK

 

Date: Mon, 27 Jul 2009 12:28:53 GMT

 

Server: Apache/2.2.14 (Win32)

 

Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT

 

Content-Length: 88

 

Content-Type: text/html

 

Connection: Closed

 

<html>

 

<body>

 

<h2>Hello, World!</h2>

 

</body>

 

</html>

А теперь давайте посмотрим, какой ответ нам даст HTTP сервер, если произойдет ошибка и сервер не сможет найти требуемую нам страницу:

HTTP/1.1 404 Not Found

Date: Sun, 18 Oct 2012 10:36:20 GMT

Server: Apache/2.2.14 (Win32)

Content-Length: 230

Connection: Closed

Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC «-//IETF//DTD HTML 2.0//EN»>

<html>

<head>

<title>404 Not Found</title>

</head>

<body>

<h2>Not Found</h2>

<p>The requested URL /t.html was not found on this server.</p>

</body>

</html>


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

HTTP/1.1 404 Not Found

 

Date: Sun, 18 Oct 2012 10:36:20 GMT

 

Server: Apache/2.2.14 (Win32)

 

Content-Length: 230

 

Connection: Closed

 

Content-Type: text/html; charset=iso-8859-1

 

<!DOCTYPE HTML PUBLIC «-//IETF//DTD HTML 2.0//EN»>

 

<html>

 

<head>

 

<title>404 Not Found</title>

 

</head>

 

<body>

 

<h2>Not Found</h2>

 

<p>The requested URL /t.html was not found on this server.</p>

 

</body>

 

</html>

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

HTTP/1.1 400 Bad Request

Date: Sun, 18 Oct 2012 10:36:20 GMT

Server: Apache/2.2.14 (Win32)

Content-Length: 230

Content-Type: text/html; charset=iso-8859-1

Connection: Closed

 

<!DOCTYPE HTML PUBLIC «-//IETF//DTD HTML 2.0//EN»>

<html>

<head>

<title>400 Bad Request</title>

</head>

<body>

<h2>Bad Request</h2>

<p>Your browser sent a request that this server could not understand.</p>

<p>The request line contained invalid characters following the protocol string.</p>

</body>

</html>


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

HTTP/1.1 400 Bad Request

 

Date: Sun, 18 Oct 2012 10:36:20 GMT

 

Server: Apache/2.2.14 (Win32)

 

Content-Length: 230

 

Content-Type: text/html; charset=iso-8859-1

 

Connection: Closed

 

 

 

<!DOCTYPE HTML PUBLIC «-//IETF//DTD HTML 2.0//EN»>

 

<html>

 

<head>

 

<title>400 Bad Request</title>

 

</head>

 

<body>

 

<h2>Bad Request</h2>

 

<p>Your browser sent a request that this server could not understand.</p>

 

<p>The request line contained invalid characters following the protocol string.</p>

 

</body>

 

</html>

Вот так легко и просто мы разобрались с HTTP ответами сервера.

Коды состояния

HTTP — Учебное пособие по REST API

API

REST используют часть 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 Used
Сервер выполнил запрос GET для ресурса, и ответ является представлением результата одной или нескольких манипуляций с экземпляром, примененных к текущему экземпляру.
Код состояния Описание
300 Множественный выбор
Запрос имеет более одного возможного ответа. Пользовательский агент или пользователь должен выбрать один из них.
301 Перемещено навсегда
URL-адрес запрошенного ресурса был изменен навсегда. Новый URL-адрес задается полем заголовка Location в ответе. Этот ответ кэшируется, если не указано иное.
302 Найдено
URL-адрес запрошенного ресурса был временно изменен. Новый URL-адрес задается полем Location в ответе. Этот ответ кэшируется только в том случае, если это указано полем заголовка Cache-Control или Expires .
303 См. Другое
Ответ можно найти под другим URI, и его СЛЕДУЕТ получить с помощью метода GET для этого ресурса.
304 Не изменено
Указывает клиенту, что ответ не был изменен, поэтому клиент может продолжать использовать ту же кэшированную версию ответа.
305 Использовать прокси (устарело)
Указывает, что запрошенный ответ должен быть доступен через прокси.
306 (Не используется)
Это зарезервированный код состояния, который больше не используется.
307 Временное перенаправление
Указывает, что клиент получит запрос

.

кодов ответа HTTP | Что такое коды состояния HTTP?

HTTP Response Codes
Коды ответа

протокола передачи гипертекста (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 — Википедия переиздана // WIKI 2

Коды ответа протокола передачи гипертекста

Это список кодов состояния ответа протокола передачи гипертекста (HTTP). Коды состояния выдаются сервером в ответ на запрос клиента к серверу. Он включает коды из запроса комментариев IETF (RFC), другие спецификации и некоторые дополнительные коды, используемые в некоторых распространенных приложениях HTTP. Первая цифра кода состояния указывает один из пяти стандартных классов ответов.Показанные фразы сообщений являются типичными, но может быть предоставлена ​​любая удобочитаемая альтернатива. Если не указано иное, код состояния является частью стандарта HTTP / 1.1 (RFC 7231). [1]

Администрация адресного пространства Интернета (IANA) ведет официальный реестр кодов состояния HTTP. [2]

Все коды состояния ответа HTTP разделены на пять классов или категорий. Первая цифра кода состояния определяет класс ответа, в то время как последние две цифры не имеют никакой роли классификации или категоризации.Стандарт определяет пять классов:

  • 1xx информационный ответ — запрос получен, процесс продолжается
  • 2xx успешный — запрос был успешно получен, понят и принят
  • 3xx перенаправление — для выполнения запроса необходимо предпринять дальнейшие действия
  • 4xx ошибка клиента — запрос содержит неверный синтаксис или не может быть выполнен
  • 5xx ошибка сервера — серверу не удалось выполнить явно действительный запрос

Энциклопедия YouTube

  • 1/5

    Просмотры:

    28118

    2 302

    341

    3470

    379

  • ✪ Коды состояния HTTP за 60 секунд

  • ✪ Коды состояния HTTP — тестирование REST API تعرف علي ار الاخطاء والاستابات

  • ✪ Продвижение блога — 22 — Удаление разрешений и кодов статуса HTTP

  • ✪ Как проверить код статуса http для массовых URL-адресов

Содержание

1xx информационный ответ

Информационный ответ указывает, что запрос был получен и понят.Он выдается временно, пока продолжается обработка запроса. Он предупреждает клиента, чтобы он дождался окончательного ответа. Сообщение состоит только из строки состояния и необязательных полей заголовка и заканчивается пустой строкой. Поскольку в стандарте HTTP / 1.0 не определены коды состояния 1xx, серверы не должны отправлять ответ 1xx клиенту, совместимому с HTTP / 1.0, [примечание 1] , за исключением экспериментальных условий. [3]

100 Продолжить
Сервер получил заголовки запроса, и клиент должен продолжить отправку тела запроса (в случае запроса, для которого необходимо отправить тело; например, запрос POST).Отправка большого тела запроса на сервер после того, как запрос был отклонен из-за несоответствующих заголовков, будет неэффективен. Чтобы сервер проверил заголовки запроса, клиент должен отправить Expect: 100-continue в качестве заголовка в своем первоначальном запросе и получить в ответ код состояния 100 Continue перед отправкой тела. Если клиент получает код ошибки, такой как 403 (Запрещено) или 405 (Метод запрещен), он не должен отправлять тело запроса. Ответ 417 Expectation Failed указывает, что запрос должен быть повторен без заголовка Expect , поскольку он указывает, что сервер не поддерживает ожидания (это, например, случай HTTP / 1.0 серверов). [4]
101 Протоколы коммутации
Запрашивающая сторона попросила сервер переключить протоколы, и сервер дал согласие на это. [5]
102 Обработка (WebDAV; RFC 2518)
Запрос WebDAV может содержать множество подзапросов, связанных с файловыми операциями, для выполнения которых требуется много времени. Этот код указывает, что сервер получил и обрабатывает запрос, но ответа еще нет. [6] Это предотвращает тайм-аут клиента и предположение, что запрос был потерян.
103 Ранние подсказки (RFC 8297)
Используется для возврата некоторых заголовков ответа перед окончательным HTTP-сообщением. [7]

2xx успех

Этот класс кодов состояния указывает, что действие, запрошенное клиентом, было получено, понято и принято. [2]

200 ОК
Стандартный ответ на успешные HTTP-запросы. Фактический ответ будет зависеть от используемого метода запроса. В запросе GET ответ будет содержать объект, соответствующий запрошенному ресурсу.В запросе POST ответ будет содержать объект, описывающий или содержащий результат действия. [8]
201 Создано
Запрос был выполнен, в результате был создан новый ресурс. [9]
202 Принято
Запрос принят в обработку, но обработка не завершена. Запрос может или не может быть в конечном итоге обработан, и может быть отклонен, когда происходит обработка. [10]
203 Неавторизованная информация (начиная с HTTP / 1.1)
Сервер — это прокси-сервер преобразования (например, веб-ускоритель ), который получил 200 OK от своего источника, но возвращает измененную версию ответа источника. [11] [12]
204 Нет содержимого
Сервер успешно обработал запрос и не возвращает никакого содержимого. [13]
205 Сбросить содержимое
Сервер успешно обработал запрос, просит, чтобы инициатор запроса сбросил представление документа, и не возвращает никакого содержимого. [14]
206 Частичное содержимое (RFC 7233)
Сервер доставляет только часть ресурса (обслуживание байтов) из-за заголовка диапазона, отправленного клиентом. Заголовок диапазона используется HTTP-клиентами для возобновления прерванных загрузок или разделения загрузки на несколько одновременных потоков. [15]
207 Мульти-статус (WebDAV; RFC 4918)
Тело следующего сообщения по умолчанию является XML-сообщением и может содержать несколько отдельных кодов ответа в зависимости от того, сколько подзапросов было сделано. [16]
208 Уже сообщено (WebDAV; RFC 5842)
Члены привязки DAV уже были перечислены в предыдущей части (мультистатусного) ответа и не включаются снова.
226 Используется IM (RFC 3229)
Сервер выполнил запрос ресурса, и ответ является представлением результата одной или нескольких манипуляций с экземпляром, примененных к текущему экземпляру. [17]

перенаправление 3xx

Этот класс кода состояния указывает, что клиент должен предпринять дополнительные действия для выполнения запроса.Многие из этих кодов состояния используются при перенаправлении URL-адресов. [2]

Пользовательский агент может выполнять дополнительное действие без взаимодействия с пользователем, только если во втором запросе используется метод GET или HEAD. Пользовательский агент может автоматически перенаправить запрос. Пользовательский агент должен обнаруживать и вмешиваться, чтобы предотвратить циклические перенаправления. [18]

300 Множественный выбор
Указывает несколько вариантов ресурса, из которых клиент может выбрать (через согласование содержимого, управляемое агентом).Например, этот код можно использовать для представления нескольких опций формата видео, для перечисления файлов с разными расширениями файлов или для устранения неоднозначности в словах. [19]
301 Перемещено навсегда
Этот и все будущие запросы должны быть направлены на данный URI. [20]
302 Найдено (ранее «перемещено временно»)
Указывает клиенту посмотреть (перейти) на другой URL-адрес. 302 был заменен 303 и 307. Это пример отраслевой практики, противоречащей стандарту.Спецификация HTTP / 1.0 (RFC 1945) требовала от клиента выполнения временного перенаправления (исходная описывающая фраза была «Перемещено временно») [21] , но популярные браузеры реализовали 302 с функциональностью 303 См. Другие. Поэтому в HTTP / 1.1 добавлены коды состояния 303 и 307, чтобы различать два поведения. [22] Однако некоторые веб-приложения и платформы используют код состояния 302, как если бы это был 303. [23]
303 См. Другое (начиная с HTTP / 1.1)
Ответ на запрос можно найти под другим URI с помощью метода GET. При получении в ответ на POST (или PUT / DELETE) клиент должен предполагать, что сервер получил данные, и должен отправить новый запрос GET на данный URI. [24]
304 без изменений (RFC 7232)
Указывает, что ресурс не изменялся с версии, указанной в заголовках запроса If-Modified-Since или If-None-Match. В таком случае нет необходимости повторно передавать ресурс, поскольку у клиента все еще есть ранее загруженная копия. [25]
305 Использовать прокси (начиная с HTTP / 1.1)
Запрошенный ресурс доступен только через прокси, адрес которого указан в ответе. По соображениям безопасности многие клиенты HTTP (например, Mozilla Firefox и Internet Explorer) не подчиняются этому коду состояния.
306 Прокси-сервер коммутатора
Больше не используется. Первоначально означало «Последующие запросы должны использовать указанный прокси». [27]
307 Временное перенаправление (начиная с HTTP / 1.1)
В этом случае запрос следует повторить с другим URI; однако в будущих запросах должен по-прежнему использоваться исходный URI. В отличие от того, как 302 был исторически реализован, метод запроса не может быть изменен при повторной выдаче исходного запроса. Например, запрос POST следует повторить, используя другой запрос POST. [28]
308 Постоянное перенаправление (RFC 7538)
Запрос и все будущие запросы должны повторяться с использованием другого URI.307 и 308 аналогичны поведению 302 и 301, но не позволяют методу HTTP изменять . Так, например, отправка формы на постоянно перенаправляемый ресурс может продолжаться гладко. [29]

4xx ошибки клиента

Ошибка 404 в Википедии

Этот класс кода состояния предназначен для ситуаций, в которых кажется, что ошибка была вызвана клиентом. За исключением ответа на запрос HEAD, сервер должен включать объект, содержащий объяснение ситуации с ошибкой, и является ли это временным или постоянным состоянием.Эти коды состояния применимы к любому методу запроса. Пользовательские агенты должны отображать пользователю любую включенную сущность. [30]

400 Плохой запрос
Сервер не может или не будет обрабатывать запрос из-за явной ошибки клиента (например, неверный синтаксис запроса, слишком большой размер, недопустимое формирование сообщения запроса или обманчивая маршрутизация запроса). [31]
401 Несанкционированный (RFC 7235)
Аналогично 403 Запрещено , но специально для использования, когда требуется аутентификация, но она не удалась или еще не была предоставлена.Ответ должен включать поле заголовка WWW-Authenticate, содержащее запрос, применимый к запрошенному ресурсу. См. Разделы Аутентификация обычного доступа и Дайджест-аутентификация доступа. [32] 401 семантически означает «неавторизованный», [33] пользователь не имеет действительных учетных данных для аутентификации для целевого ресурса.
Примечание. Некоторые сайты неправильно выдают HTTP 401, когда IP-адрес запрещен для доступа к веб-сайту (обычно это домен веб-сайта) и этому конкретному адресу отказано в доступе к веб-сайту. [ необходима ссылка ]
402 Требуется оплата
Зарезервировано для использования в будущем. Первоначальное намерение состояло в том, чтобы этот код можно было использовать как часть некоторой формы схемы цифровых денег или микроплатежей, как это было предложено, например, GNU Taler, [34] , но этого еще не произошло, и этот код не получил широкого распространения. используемый. Google Developers API использует этот статус, если конкретный разработчик превысил дневной лимит запросов. [35] Sipgate использует этот код, если на счете недостаточно средств для начала вызова. [36] Shopify использует этот код, когда магазин не оплатил комиссию и временно отключен. [37] Stripe использует этот код для неудачных платежей с правильными параметрами, например, заблокированных мошеннических платежей. [38]
403 Запрещено
Запрос содержал действительные данные и был понят сервером, но сервер отклоняет действие. Это может быть связано с тем, что пользователь не имеет необходимых разрешений для ресурса или ему нужна учетная запись какого-либо типа, или он пытается выполнить запрещенное действие (например,г. создание дублирующей записи, где разрешена только одна). Этот код также обычно используется, если запрос предоставил аутентификацию путем ответа на запрос поля заголовка WWW-Authenticate, но сервер не принял эту аутентификацию. Запрос не должен повторяться.
404 Не найдено
Запрошенный ресурс не может быть найден, но может быть доступен в будущем. Последующие запросы клиента допустимы.
405 Метод запрещен
Метод запроса не поддерживается для запрошенного ресурса; например, запрос GET в форме, которая требует, чтобы данные были представлены через POST, или запрос PUT на ресурсе только для чтения.
406 Неприемлемо
Запрошенный ресурс может генерировать только контент, неприемлемый в соответствии с заголовками Accept, отправленными в запросе. [39] См. Согласование содержимого.
407 Требуется проверка подлинности прокси (RFC 7235)
Клиент должен сначала аутентифицироваться с помощью прокси. [40]
408 Тайм-аут запроса
Истекло время ожидания сервера для запроса. Согласно спецификациям HTTP: «Клиент не отправил запрос в течение времени, которое сервер был подготовлен к ожиданию.Клиент МОЖЕТ повторить запрос без изменений в любое время ». [41]
409 Конфликт
Указывает, что запрос не может быть обработан из-за конфликта в текущем состоянии ресурса, такого как конфликт редактирования между несколькими одновременными обновлениями.
410 ушел
Указывает, что запрошенный ресурс больше не доступен и больше не будет доступен. Это следует использовать, когда ресурс был намеренно удален, и ресурс должен быть очищен.После получения кода состояния 410 клиент не должен запрашивать ресурс в будущем. Такие клиенты, как поисковые системы, должны удалить ресурс из своих индексов. [42] В большинстве случаев не требуется, чтобы клиенты и поисковые системы очищали ресурс, и вместо этого можно использовать сообщение «404 Not Found».
411 Требуемая длина
В запросе не указана длина его содержимого, необходимая для запрашиваемого ресурса. [43]
412 Ошибка предварительного условия (RFC 7232)
Сервер не соответствует одному из предварительных условий, которые инициатор запроса поставил в полях заголовка запроса. [44] [45]
413 Слишком большая полезная нагрузка (RFC 7231)
Запрос больше, чем сервер может или готов обработать. Ранее назывался «Слишком большой объект запроса». [46]
414 URI слишком длинный (RFC 7231)
Предоставленный URI слишком длинный для обработки сервером. Часто это результат того, что слишком много данных кодируется в виде строки запроса GET-запроса, и в этом случае его следует преобразовать в POST-запрос. [47] Ранее вызывался «Слишком длинный URI запроса». [48]
415 Неподдерживаемый тип носителя (RFC 7231)
Объект запроса имеет тип носителя, который сервер или ресурс не поддерживает. Например, клиент загружает изображение как image / svg + xml, но сервер требует, чтобы изображения использовали другой формат. [49]
416 Диапазон не соответствует требованиям (RFC 7233)
Клиент запросил часть файла (обслуживание байтов), но сервер не может предоставить эту часть. Например, если клиент запросил часть файла, лежащую за концом файла. [50] Ранее называлась «Запрошенный диапазон не удовлетворяется». [51]
417 Неудачное ожидание
Сервер не может удовлетворить требованиям поля заголовка запроса Expect. [52]
418 Я чайник (RFC 2324, RFC 7168)
Этот код был определен в 1998 году как одна из традиционных первоапрельских шуток IETF в RFC 2324, Hyper Text Coffee Pot Control Protocol , и не ожидается, что он будет реализован на реальных HTTP-серверах.RFC указывает, что этот код должен возвращаться чайниками, которых просят заваривать кофе. [53] Этот HTTP-статус используется в качестве пасхального яйца на некоторых веб-сайтах, например на сайте Google.com «Я — пасхальное яйцо для чайника». [54] [55]
421 Неверный запрос (RFC 7540)
Запрос был направлен на сервер, который не может дать ответ [56] (например, из-за повторного использования соединения). [57]
422 Необработанный объект (WebDAV; RFC 4918)
Запрос был правильно сформирован, но его не удалось выполнить из-за семантических ошибок. [16]
423 Заблокировано (WebDAV; RFC 4918)
Ресурс, к которому осуществляется доступ, заблокирован. [16]
424 Неудачная зависимость (WebDAV; RFC 4918)
Запрос не выполнен, потому что он зависел от другого запроса, и этот запрос не удался (например, PROPPATCH). [16]
425 Слишком рано (RFC 8470)
Указывает, что сервер не желает рисковать обработкой запроса, который может быть воспроизведен.
426 Требуется обновление
Клиент должен переключиться на другой протокол, например TLS / 1.0, указанный в поле заголовка Upgrade. [58]
428 Требуется предварительное условие (RFC 6585)
Исходный сервер требует, чтобы запрос был условным. Предназначено для предотвращения проблемы «потерянного обновления», когда клиент ПОЛУЧАЕТ состояние ресурса, изменяет его и отправляет обратно на сервер, когда тем временем третья сторона изменила состояние на сервере, что привело к конфликту. [59]
429 Слишком много запросов (RFC 6585)
Пользователь отправил слишком много запросов за заданный промежуток времени.Предназначен для использования со схемами ограничения скорости. [59]
431 Слишком большие поля заголовка запроса (RFC 6585)
Сервер не желает обрабатывать запрос, потому что либо отдельное поле заголовка, либо все поля заголовка в совокупности слишком велики. [59]
451 Недоступно по юридическим причинам (RFC 7725)
Оператор сервера получил законное требование запретить доступ к ресурсу или набору ресурсов, который включает запрошенный ресурс. [60] Код 451 был выбран как ссылка на роман « Fahrenheit 451 » (см. «Благодарности» в RFC).

5xx ошибки сервера

Серверу не удалось выполнить запрос. [61]

Коды состояния ответа, начинающиеся с цифры «5», указывают на случаи, когда сервер знает, что он обнаружил ошибку или иным образом не может выполнить запрос. За исключением ответа на запрос HEAD, сервер должен включать объект, содержащий объяснение ситуации с ошибкой, и указывать, является ли это временным или постоянным состоянием.Аналогичным образом, пользовательские агенты должны отображать пользователю любую включенную сущность. Эти коды ответа применимы к любому методу запроса. [62]

500 Внутренняя ошибка сервера
Общее сообщение об ошибке, выдаваемое, когда возникла непредвиденная ситуация, и более конкретное сообщение не подходит. [63]
501 Не реализовано
Сервер либо не распознает метод запроса, либо не может выполнить запрос.Обычно это подразумевает доступность в будущем (например, новую функцию API веб-службы). [64]
502 Плохой шлюз
Сервер действовал как шлюз или прокси и получил недопустимый ответ от вышестоящего сервера. [65]
503 Служба недоступна
Сервер не может обработать запрос (потому что он перегружен или отключен для обслуживания). Как правило, это временное состояние. [66]
504 Тайм-аут шлюза
Сервер действовал как шлюз или прокси и не получил своевременного ответа от вышестоящего сервера. [67]
505 Версия HTTP не поддерживается
Сервер не поддерживает версию протокола HTTP, используемую в запросе. [68]
506 Вариант также согласовывается (RFC 2295)
Согласование прозрачного содержимого для запроса приводит к циклической ссылке. [69]
507 Недостаточно памяти (WebDAV; RFC 4918)
Сервер не может сохранить представление, необходимое для выполнения запроса. [16]
Обнаружен цикл 508 (WebDAV; RFC 5842)
Сервер обнаружил бесконечный цикл при обработке запроса (отправлено вместо 208 Already Reported).
510 Не расширенный (RFC 2774)
Для его выполнения сервером требуются дальнейшие расширения запроса. [70]
511 Требуется сетевая аутентификация (RFC 6585)
Клиент должен пройти аутентификацию, чтобы получить доступ к сети. Предназначен для использования путем перехвата прокси-серверов, используемых для управления доступом к сети (например, «перехватывающие порталы», используемые для запроса согласия с Условиями обслуживания перед предоставлением полного доступа в Интернет через точку доступа Wi-Fi). [59]

Неофициальные коды

Следующие ниже коды не определены никакими стандартами.

103 КПП
Используется в предложении возобновляемых запросов для возобновления прерванных запросов PUT или POST. [71]
218 Это нормально (веб-сервер Apache)
Используется как условие общей ошибки, позволяющее передавать тела ответов через Apache, когда включен ProxyErrorOverride. Когда ProxyErrorOverride включен в Apache, тела ответов, содержащие код состояния 4xx или 5xx, автоматически отклоняются Apache в пользу общего ответа или настраиваемого ответа, указанного в директиве ErrorDocument. [72]
419 Страница истекла (Laravel Framework)
Используется Laravel Framework, когда токен CSRF отсутствует или просрочен.
420 Ошибка метода (Spring Framework)
Устаревший ответ, используемый Spring Framework при сбое метода. [73]
420 Укрепите свое спокойствие (Twitter)
Возвращается версией 1 API поиска и трендов Twitter, когда скорость клиента ограничена; версии 1.1 и более поздние используют код ответа 429 Too Many Requests. [74] Фраза «Укрепите свое спокойствие» взята из фильма 1993 года « Demolition Man », и ее связь с этим числом, вероятно, относится к конопле. [ необходима ссылка ]
430 Слишком большие поля заголовка запроса (Shopify)
Используется Shopify вместо кода ответа 429 Too Many Requests, когда слишком много URL-адресов запрашивается в течение определенного периода времени. [75]
450 Заблокировано родительским контролем Windows (Microsoft)
Код расширения Microsoft, указываемый, когда родительский контроль Windows включен и блокирует доступ к запрошенной веб-странице. [76]
498 Неверный токен (Esri)
Возвращено ArcGIS for Server. Код 498 указывает на просроченный или недействительный токен по иным причинам. [77]
Требуется 499 токен (Esri)
Возвращено ArcGIS for Server. Код 499 указывает на то, что токен необходим, но не был отправлен. [77]
509 Превышен предел пропускной способности (веб-сервер Apache / cPanel)
Сервер превысил пропускную способность, указанную администратором сервера; это часто используется провайдерами виртуального хостинга для ограничения полосы пропускания клиентов. [78]
526 Неверный сертификат SSL
Используется Cloudflare и горутером Cloud Foundry для индикации сбоя проверки сертификата SSL / TLS, представленного исходным сервером.
529 Сайт перегружен
Используется Qualys в API тестирования сервера SSLLabs для сигнализации о том, что сайт не может обработать запрос. [79]
530 Сайт заморожен
Используется веб-платформой Pantheon для обозначения сайта, который был заблокирован из-за бездействия. [80]
598 (неофициальное соглашение) Ошибка тайм-аута сетевого чтения
Используется некоторыми прокси-серверами HTTP для сигнализации тайм-аута сетевого чтения за прокси-сервером клиенту перед прокси. [81]

Информационные службы Интернета

Веб-сервер Microsoft Internet Information Services (IIS) расширяет область ошибок 4xx, чтобы сигнализировать об ошибках в запросе клиента.

440 Тайм-аут входа
Сеанс клиента истек, и ему необходимо снова войти в систему. [82]
449 Повторите попытку с
Сервер не может выполнить запрос, потому что пользователь не предоставил требуемую информацию. [83]
451 Перенаправление
Используется в Exchange ActiveSync, когда доступен более эффективный сервер или сервер не может получить доступ к почтовому ящику пользователей. [84] Ожидается, что клиент повторно запустит операцию HTTP AutoDiscover, чтобы найти более подходящий сервер. [85]

IIS иногда использует дополнительные десятичные субкоды для более конкретной информации, [86] , однако эти субкоды появляются только в полезных данных ответа и в документации, а не вместо фактического статуса HTTP. код.

nginx

Программное обеспечение веб-сервера nginx расширяет область ошибок 4xx, чтобы сигнализировать о проблемах с запросом клиента. [87] [88]

444 Нет ответа
Используется внутри [89] , чтобы указать серверу не возвращать информацию клиенту и немедленно закрыть соединение.
494 Заголовок запроса слишком большой
Клиент отправил слишком большой запрос или слишком длинную строку заголовка.
495 Ошибка сертификата SSL
Расширение кода ответа 400 Bad Request, используемого, когда клиент предоставил недействительный сертификат клиента.
496 Требуется сертификат SSL
Расширение кода ответа 400 Bad Request, используемого, когда сертификат клиента требуется, но не предоставляется.
497 HTTP-запрос отправлен на HTTPS-порт
Расширение кода ответа 400 Bad Request, используемого, когда клиент отправил HTTP-запрос на порт, который прослушивает HTTPS-запросы.
499 Запрос клиента закрыт
Используется, когда клиент закрыл запрос до того, как сервер смог отправить ответ.

Cloudflare

Служба обратного прокси-сервера

Cloudflare расширяет область ошибок серии 5xx, чтобы сигнализировать о проблемах с исходным сервером. [90]

520 Веб-сервер вернул неизвестную ошибку
Исходный сервер вернул Cloudflare пустой, неизвестный или необъяснимый ответ. [91]
521 Веб-сервер не работает
Исходный сервер отклонил соединение с Cloudflare.
522 Превышено время ожидания соединения
Cloudflare не удалось согласовать рукопожатие TCP с исходным сервером.
523 Источник недоступен
Cloudflare не смог связаться с исходным сервером; например, если записи DNS для исходного сервера неверны.
524 Истекло время ожидания
Cloudflare смог установить TCP-соединение с исходным сервером, но не получил своевременного ответа HTTP.
525 Ошибка установления связи SSL
Cloudflare не удалось согласовать рукопожатие SSL / TLS с исходным сервером.
526 Неверный сертификат SSL
Cloudflare не удалось проверить сертификат SSL на исходном веб-сервере.
527 Ошибка рейлгана
Ошибка 527 указывает на прерванное соединение между Cloudflare и сервером Railgun исходного сервера. [92]
530
Ошибка 530 возвращается вместе с ошибкой 1xxx. [93]

AWS Elastic Load Balancer

Amazon Elastic Load Balancing добавляет несколько пользовательских кодов возврата 4xx

460

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

Список литературы

.

Коды состояния в HTTP

Коды состояния в HTTP

1992 г.

Это исторический документ, и он больше не точен. За
актуальные сведения о спецификации HTTP, см. последние
Черновики HTTP / 1.1

Значения числового кода состояния для
HTTP-запросы выглядят следующим образом. Данные
могут использоваться разделы сообщений Error, Forward и Redirection.
содержать понятную человеку диагностическую информацию.

Успех 2xx

Эти коды указывают на успех.Раздел body, если присутствует, является возвращаемым объектом
по запросу. Это объект формата MIME. Он находится в формате MIME, и может
только в формате text / plain, text / html или в одном из форматов, указанных как допустимые
в запросе.

ОК 200

Запрос был выполнен.

СОЗДАН 201

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

Принято 202

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

Неполная информация 203

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

Нет ответа 204

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

Ошибка 4xx, 5xx

Коды 4xx предназначены для случаев, когда клиент ошибся,
и коды 5xx для случаев, когда сервер знает, что сервер
ошибся. Различить эти случаи в целом невозможно, поэтому
разница только информационная.

Раздел body может содержать документ, описывающий ошибку в удобочитаемом
форма. Документ в MIME
формат и может быть только в текстовом / обычном, текстовом / html или одном из указанных форматов
как приемлемо в запросе.

Плохой запрос 400

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

Несанкционированный 401

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

Требуется оплата 402

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

Запрещено 403

Просьба о чем-то запрещенном. Авторизация не поможет.

Не найдено 404

Сервер не нашел ничего, соответствующего указанному URI

Внутренняя ошибка 500

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

Не выполнено 501

Сервер не поддерживает требуемое средство.

Сервис временно перегружен 502 (ОБСУЖДЕНИЕ)

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

Тайм-аут шлюза 503 (ОБСУЖДЕНИЕ)

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

Примечание: Коды 502 и 503 являются новыми и будут обсуждаться в сентябре.
19 января 1994 г.

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

Перемещено 301

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

Ответ содержит одну или несколько строк заголовка в форме

 URI:  String CrLf

 

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

Найдено 302

Запрошенные данные на самом деле находятся под другим URL-адресом, однако
перенаправление может быть изменено (при создании ссылок на такие
документа, браузер должен по умолчанию использовать Udi перенаправления
документ, но есть возможность ссылки на окончательный документ) как для «Вперед».

Формат ответа такой же, как и для Moved
.

Метод 303.

 Метод:  
секция тела
 

Примечание: Этот код состояния необходимо указать более подробно. За
на данный момент это только для обсуждения.

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

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

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

Не изменено 304

Если клиент выполнил условный GET и доступ разрешен, но документ
не изменялся с даты и времени, указанных в
If-Modified-Since
поле, сервер отвечает кодом состояния 304 и не отправляет документ
тело клиенту.

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

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

.