за что отвечает группа кодов 3хх протокола http
HTTP протокол: основные правила Интернета, которые должен знать каждый веб-разработчик. Как браузер взаимодействует с сервером.
Тема 9: HTTP коды состояния. Классы кодов состояния HTTP сервера
Привет, читатель блога ZametkiNaPolyah.ru! Продолжим знакомиться с протоколом HTTP в рубрике серверы и протоколы и ее разделе HTTP протокол. Сегодня мы с тобой начнем разбираться с кодами состояния HTTP сервера, а конкретно эта публикация познакомит тебя с классами кодов состояния HTTP сервера: ты разберешься с тем, как HTTP сервер отвечает на запросы твоего браузера и, что значат все эти цифры, которые периодически появляются в окне твоего бразуера. Оговорюсь сразу, что всего в стандарте HTTP пять классов кодов состояния, а каждый класс содержит несколько кодов состояния, которые могут быть расширены в зависимости от HTTP приложения.
HTTP коды состояний. Классы кодов состояния HTTP сервера
HTTP коды 1хх – информационные коды. HTTP коды 2хх – успешные коды. HTTP код 3хх – коды перенаправления. HTTP код 4хх – коды ошибок клиента. HTTP код 5хх – коды ошибок сервера.
Если вы хотите узнать всё про протокол HTTP, обратитесь к навигации по рубрике HTTP протокол. Код состояния – это элемент ответа HTTP сервера, который представляет собой три цифры, первая цифра показывает к какому классу состояния относится тот или иной код состояния. В HTTP насчитывают всего пять классов кодов состояний: 1хх, 2хх, 3хх, 4хх, 5хх. HTTP коды состояний расширяемы, любой разработчик сервера может добавлять свои коды. Каждый код состояния очень тесно связан с HTTP методами: если метод – это элемент HTTP запроса, то код состояния это HTTP ответ сервера, который означает то, как сервер понял запрос.
Давайте сведем HTTP коды состояний в одну таблицу, разделив коды по классам и дадим описание каждому классу состояния HTTP сервера.
Номер | HTTP код состояния и его описание |
1 | HTTP коды состояний 1xx: информационные коды состояния Такой код состояния сервер высылает в том случае, когда запрос получен, но еще не обработан. |
2 | HTTP коды состояний 2xx: успешные коды состояния Сервер отправит вам такой код в том случае, когда он успешно принял и обработал HTTP сообщение клиента. |
3 | HTTP коды состояний 3xx: коды перенаправления Если вы получили от сервера код состояния, начинающийся на тройку, то это означает, что нужны дополнительные действия, чтобы завершить процесс обработки HTTP запроса. |
4 | HTTP коды состояний 4xx: коды ошибок клиента Если вы увидели код состояния, который начинается с четверки, то это означает, что произошла ошибка по вине клиента. |
5 | HTTP коды состояний 5xx: коды ошибок сервера Код состояния, начинающийся с пятерки, говорит о том, что произошла ошибка на стороне сервера. |
Обычно помимо кода состояния сервер высылает пояснения клиенту в виде HTTP объекта и при помощи полей заголовка. Мы рассмотрели классы кодов состояний HTTP сервера, давайте теперь рассмотрим каждый класс и каждый код состояния HTTP протокола по отдельности.
Коды ответа HTTP
Код ответа (состояния) HTTP показывает, был ли успешно выполнен определённый HTTP запрос. Коды сгруппированы в 5 классов:
Если вы получили код ответа (состояния), которого нет в данном списке, в таком случае он является не стандартизированным кодом ответа (состояния), вероятней всего он кастомный сервера.
Следующая таблица содержит список всех кодов и их значения:
Этот ответ отсылается, когда веб сервер после выполнения server-driven content negotiation, не нашёл контента, отвечающего критериям, полученным из user agent.
Этот ответ отсылается, когда запрос конфликтует с текущим состоянием сервера.
Этот ответ отсылается, когда запрашиваемый контент удалён с сервера.
Размер запроса превышает лимит, объявленный сервером. Сервер может закрыть соединение, вернув заголовок Retry-After
Код состояния HTTP в IIS 7.0 и более поздних версиях
В этой статье приводится список кодов состояния Hypertext Transfer Protocol (HTTP) в Microsoft IIS (IIS) 7.0 и более поздних версиях.
Оригинальная версия продукта: службы IIS версии 7.0 и более поздних версий
Исходный номер КБ: 943891
Введение
При попытке получить доступ к содержимому на сервере, который работает (IIS) 7.0, 7.5 или более поздних версий с помощью протокола HTTP, IIS возвращает числовой код, который указывает состояние ответа. Код состояния HTTP записан в журнале IIS. Кроме того, код состояния HTTP может отображаться в клиентской браузере.
Код состояния HTTP может указывать, является ли запрос успешным или неудачным. Код состояния HTTP также может выявить точную причину неудачного запроса.
Эта статья предназначена для использования агентами поддержки и ИТ-специалистами. Если вы ищете дополнительные сведения об ошибках веб-сайта, см. в справке о сообщениях об ошибках веб-сайта (http errors).
Расположения файлов журнала
По умолчанию IIS 7.0 и более поздние версии помещает файлы журнала в следующую папку:
inetpub\logs\Logfiles
Эта папка содержит отдельные каталоги для каждого веб-сайта World Wide Web. По умолчанию файлы журналов создаются в каталогах ежедневно, а файлы журналов называются с помощью даты. Например, файл журнала можно назвать exYYMMDD.log.
Коды состояния HTTP
В этом разделе описываются коды состояния HTTP, которые используют IIS 7.0 и более поздние версии.
В этой статье не перечисляются все возможные коды состояния HTTP, как это диктуется в спецификации HTTP. В этой статье содержатся только коды состояния HTTP, которые могут отправляться в IIS 7.0 и более поздних версиях. Например, настраиваемый фильтр API API internet Server (ISAPI) или настраиваемый модуль HTTP может устанавливать собственный код состояния HTTP.
Эти коды состояния HTTP указывают на предварительный ответ. Клиентский компьютер получает один или более 1 xx ответов, прежде чем клиентский компьютер получает регулярный ответ.
В версиях IIS 7.0 и более поздних версий используются следующие коды состояния HTTP:
Эти коды состояния HTTP указывают на то, что сервер успешно принял запрос.
В IIS 7.0 и более поздних версиях используются следующие коды состояния HTTP успеха:
3 xx — перенаправление
Эти коды состояния HTTP указывают на то, что клиентский браузер должен принять дополнительные меры для выполнения запроса. Например, клиентский браузер может потребовать другую страницу на сервере. Или клиентский браузер может повторить запрос с помощью прокси-сервера.
В IIS 7.0 и более поздних версиях используются следующие коды http-состояния http перенаправления:
4 xx — ошибка клиента
Эти коды состояния HTTP указывают на то, что произошла ошибка и клиентский браузер, как представляется, виноват. Например, клиентский браузер мог запрашивать страницу, которая не существует. Или клиентский браузер может не предоставлять допустимые сведения о проверке подлинности.
В версиях IIS 7.0 и более поздних версий используются следующие коды состояния http-состояния ошибки клиента:
IiS 7.0 и более поздние версии определяют следующие коды состояния HTTP, которые указывают на более конкретную причину ошибки 400:
IiS 7.0 и более поздние версии определяют несколько кодов состояния HTTP, которые указывают на более конкретную причину ошибки 401. В клиентский браузер отображаются следующие коды состояния HTTP, но не отображаются в журнале IIS:
IiS 7.0 и более поздние версии определяют следующие коды состояния HTTP, которые указывают на более конкретную причину ошибки 403:
IiS 7.0 и более поздние версии определяют следующие коды состояния HTTP, которые указывают на более конкретную причину ошибки 404:
404.1 — сайт не найден.
404.2 — ограничение ISAPI или CGI.
404.3 — ограничение типа multipurpose Internet Mail Extensions (MIME).
404.5 — отказано по запросу конфигурации фильтрации.
404.6 — Глагол отклонен.
404.7 — расширение файла отклонено.
404.8 — скрытое пространство имен.
404.9 — скрытый атрибут файла.
404.11 — Запрос содержит двойную последовательность побега.
404.13 — слишком большая длина контента.
404.15 — слишком длинная строка запроса.
404.16 — запрос DAV, отправленный обработнику статического файла.
404.17 — динамическое содержимое, сопоставленное с обработилом статического файла с помощью сопоставления MIME подтекстата.
404.19 — отклонено правилом фильтрации.
404.20 — слишком много сегментов URL-адресов
404.501 — не найден: слишком много запросов с одного и того же IP-адреса клиента; Динамическое ограничение IP-адресов одновременное ограничение скорости запроса достигнуто.
404.502 — не найден: слишком много запросов с одного и того же IP-адреса клиента; Динамическое ограничение IP Максимальное ограничение скорости запроса достигнуто.
404.503 — Не найден: IP-адрес включен в список ограничений IP-адресов
404.504 — Не найден: имя хозяина включено в список запрета ограничения IP
405 — метод запрещен.
5 xx — ошибка сервера
Эти коды состояния HTTP указывают на то, что сервер не может выполнить запрос, так как сервер сталкивается с ошибкой.
В IIS и более поздних версиях используются следующие коды состояния http-состояния ошибки сервера:
500 — ошибка внутреннего сервера.
IiS 7.0 и более поздние версии определяют следующие коды состояния HTTP, которые указывают на более конкретную причину ошибки 500:
500.0 — произошла ошибка Модуля или ISAPI.
500.13 — веб-сервер слишком занят.
500.21 — модуль не распознается.
500.22 — конфигурация ASP.NET не применяется в httpModules режиме управляемого конвейера.
500.23 — конфигурация ASP.NET не применяется в httpHandlers режиме управляемого конвейера.
500.24 — конфигурация ASP.NET не применяется в режиме управляемого конвейера.
Здесь считыется конфигурация распределенных правил как для входящие, так и исходящие правила.
500.51 — ошибка переписывание произошла во время GL_PRE_BEGIN_REQUEST обработки уведомлений. Произошла глобальная конфигурация или ошибка выполнения глобальных правил.
Здесь прочитана глобальная конфигурация правил.
500.100 — внутренняя ошибка ASP.
IiS 7.0 и более поздние версии определяют следующие коды состояния HTTP, которые указывают на более конкретную причину ошибки 502:
IiS 7.0 и более поздние версии определяют следующие коды состояния HTTP, которые указывают на более конкретную причину ошибки 503:
Общие коды состояния HTTP и причины
В следующей таблице описываются причины некоторых распространенных кодов состояния HTTP.
Коды http substatus, добавленные в IIS 8.0
Subcode | Описание |
---|---|
400.10 | Недействительный загон X-Forwarded-For (XFF) |
400.11 | Недействительный запрос WebSocket |
Коды http substatus, добавленные в ARR 3.0.1916
Subcode | Описание |
---|---|
400.601 | Плохой запрос клиента (ARR) |
400.602 | Недействительный формат времени (ARR) |
400.603 | Ошибка диапазона parse (ARR) |
400.604 | Клиент исчез (ARR) |
400.605 | Максимальное количество форварда (ARR) |
400.606 | Асинхронная ошибка конкуренции (ARR) |
502.2 | Сбой запроса на карту (ARR) |
502.3 | Асинхронный сбой завершения WinHTTP (ARR) |
502.4 | Нет сервера (ARR) |
502.5 | Сбой WebSocket (ARR) |
502.6 | Сбой запроса на переададку (ARR) |
502.7 | Выполнение сбоя запроса (ARR) |
Ссылки
Дополнительные сведения о определениях кода кода состояния HTTP см. в http/1.1: Status Code Definitions.
Заявление об отказе от ответственности за сведения о продуктах сторонних производителей
В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.
Коды ответов сервера 2ХХ, 3ХХ, 4ХХ, 5ХХ
Какие бывают 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
Ответ сервера 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
Для проверки необходимо перейти по ссылке (https://www.reg.ru/nettools/dig), затем прописать имя проверяемого домена, а в списке выбрать «MX». Теперь нажимаем Проверить:
На выходе будет представлена таблица.
Необходимо убедиться, что в ней прописаны необходимые записи для работы вашей почты:
Почта
MX-записи
Почта REG.RU на хостинге
mx1.hosting.reg.ru и mx2.hosting.reg.ru
Mail.Ru для бизнеса
Расширенная защита от спама
mxs1.reg.ru и mxs2.reg.ru
Почта REG.RU на VPS
Как получить коды ответа сервера (страницы) через Яндекс
Шаг 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. В данном случае код ответа подсвечен зеленым.
Массовая проверка ответов сервера (сайта) онлайн
Массовая проверка кодов ответа может пригодиться для поиска неработающих сайтов, на которых были куплены ссылки (через биржи или напрямую – неважно).
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.
Итак, Вы проверили сайт на скорость загрузки. Но как реагировать на результаты?
- за что начисляются бонусы по картам билайн world и world paypass
- за этот чит на майнкрафт вас не забанят самый лучший чит