Как настроить код ответа 200

Коды ответа HTTP

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

  1. Информационные 100 — 199
  2. Успешные 200 — 299
  3. Перенаправления 300 — 399
  4. Клиентские ошибки 400 — 499
  5. Серверные ошибки 500 — 599

Коды состояния определены в 10-ой секции RFC 2616 . О бновленную спецификацию можно найти в RFC 7231 .

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

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

» Множественный выбор » . Этот код ответа присылается, когда з апрос имеет более чем один из возможных ответов . И User-agent или пользователь должен выбрать один из ответов . Не существует стандартизированного способа выбора одного из полученных ответов.

«Перемещён на постоянной основе». Этот код ответа значит, что URI запрашиваемого ресурса был изменён . Возможно, новый URI будет предоставлен в ответе.

«Найдено». Этот код ответа значит, что запрошенный ресурс временно изменён. Новые изменения в URI могут быть доступны в будущем . Таким образом, этот URI, должен быть использован клиентом в будущих запросах .

«Перенаправление на постоянной основе». Это означает, что ресурс теперь постоянно находится в другом URI, указанном в заголовке Location: HTTP Response. Данный код ответа имеет ту же семантику, что и код ответа 301 Moved Permanently , за исключением того, что агент пользователя не должен изменять используемый метод HTTP: если POST использовался в первом запросе, POST должен использоваться и во втором запросе.

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

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

Запрос отклонён, потому что сервер требует указание заголовка Content-Length , но он не указан.

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

Источник

200 — это хорошо или это плохо?

В этой трехминутной статье я хочу затронуть наболевшую тему.

Речь пойдет о статус коде HTTP 200 и ошибках в ответе.

Нормально ли возвращать такой код, если возникла ошибка?

Нет? Да? Ну-ка давайте разберемся.

Случай 1. HTTP 200 и batch операция

Допустим отправляется один запрос. Запрос выполняется успешно. Возвращаем код 200. Ответ не содержит информации об ошибке. С этим случаем всё предельно просто и понятно. А что делать если требуется выполнить batch операцию?

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

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

Предположим, по какой-то причине (например, кончилось место на сервере) видео загрузить не удалось. Что бы вы вернули в таком случае? 2xx или 4xx или 5xx? Сервер, отвечает примерно вот так:

Некоторые сервисы (и вполне известные) действуют также. Отвечают 200. А в ответе возвращают список команд, которые выполнить не получилось.

Случай 2. HTTP 200 и ошибки в ответе

Пришёл запрос. Запрос зафейлился. Например, мы забыли указать какое-то поле. Или дату отправили не в миллисекундах, а как строку. Тут-то точно не надо возвращать 200! Но увы и нет.

Где-то на просторах интернета я встречал проекты на github и bitbucket, которые специально предназначены для таких вот случаев. В них просто вшиты возможные варианты и шаблоны. Можно их достаточно легко встроить в свой проект и как бы быть готовым к разного рода «падениям» запросов. Но есть одно но.

В такие моменты твой код становится уродливым. Ты ему говоришь:

— Cлушай, у нас тут есть один внешний API. Он в целом нормальный. Только надо внимательно смотреть что в ответе приходит. Если там ответ содержит поле «error», то значит запрос сломался.
— Но ведь для этого же есть 4xx и 5xx! Да кто вообще так делает?!
— Тише-тише. Не надо так громко. Он может услышать. Пожалуйста, будь добрее к нему. И просто смотри не только на статус код, но и на ответ, пожалуйста.
— Ладно…

HTTP 200 — это просто статус

Ну 200 и 200. Ну не запилили. Или не успели. Или вообще не будут. Ну и что?! Написал json парсер и всё!

Как бы да, но я хочу знать почему. Забыли? Забили? Не успели? Не знали?

Возможно я что-то упускаю. Или не знаю. Хочу ваше мнение. Срочно. Всем добра и выходных на выходных.

Источник

Что такое код ответа 200

26 октября 2017 Опубликовано в разделах: Азбука терминов. 30247

Больше видео на нашем канале — изучайте интернет-маркетинг с SEMANTICA

Приведем пример. Вы отправили посылку в другой город. На почте вам выдали трек-номер для отслеживания. По нему вы смотрите, что с вашим отправлением — вот оно покинуло сортировочный центр вашего города, вот прибыло в другой. Вот его вручили адресату. Каждый раз система выдает вам статус в ответ на запрос.


Как это работает

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

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

Что означает код 200 для правильной индексации сайта

Категория серверных ответов 2хх является категорией «Success». Эта категория уведомляет пользователей о положительном результате. В частности, код “200 ОК” говорит пользователю, что его запрос успешно выполнен. Например, клиент запросил те или иные данные. Ответ сервера 200 означает, что эти данные отображены в заголовке или сообщении.

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

Важно проверить, не отдают ли несуществующие страницы код 200. Это возможно даже когда визуально вы видите на экране “404 — страница не найдена”. Причиной этой проблемы может стать неправильная настройка работы сайта. Если вы не хотите проблем с продвижением вашего ресурса — проверьте все типы страниц на корректный ответ сервера. Так вы сможете выявить страницы, которые только прикидываются нужными.

Как проверить коды ответов

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

На самом деле кодов ответа сервера большое количество, но самые часто встречающиеся следующие:

  • Если сначала страница отвечала на запрос кодом 200, благополучно проиндексировалась, но затем ее удалили, при переходе на нее будет отображаться код 404 (не найден).
  • Если вы используете временный редирект (302), то в индекс попадут оба адреса.
  • Если на веб-странице используется постоянный редирект, вы получите ответ с кодом 301. И поисковик будет индексировать только конечный адрес с нужным кодом.

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

Профессионально владеем таргетированной рекламой в социальных сетях и инструментами для запуска успешной кампании:

– Умеем привлекать подписчиков.
– Выгодно продаем товары и услуги.

Источник

Читайте также:  Билайн турбо роутер не работает
Оцените статью
Код ответа Название Описание Версия HTTP
Информационные
100 Continue «Продолжить». Этот промежуточный ответ указывает, что запрос успешно принят и клиент может продолжать присылать запросы либо проигнорировать этот ответ, если запрос был завершён. Только HTTP/1.1
101 Switching Protocol «Переключение протокола». Этот код присылается в ответ на запрос клиента, содержащий заголовок Upgrade: , и указывает, что сервер переключился на протокол, который был указан в заголовке. Эта возможность позволяет перейти на несовместимую версию протокола и обычно не используется. Только HTTP/1.1
102 Processing «В обработке». Этот код указывает, что сервер получил запрос и обрабатывает его, но обработка ещё не завершена. Только HTTP/1.1
103 Early Hints «Ранние подсказки». В ответе сообщаются ресурсы, которые могут быть загружены заранее, пока сервер будет подготавливать основной ответ. RFC 8297 (Experimental). Только HTTP/1.1
Успешные
200 «Успешно». Запрос успешно обработан. Что значит «успешно», зависит от метода HTTP, который был запрошен:
  • GET: «ПОЛУЧИТЬ». Запрошенный ресурс был найден и передан в теле ответа.
  • HEAD: «ЗАГОЛОВОК». Заголовки переданы в ответе.
  • POST: «ПОСЫЛКА». Ресурс, описывающий результат действия сервера на запрос, передан в теле ответа.
  • TRACE: «ОТСЛЕЖИВАТЬ». Тело ответа содержит тело запроса полученного сервером.
HTTP/0.9 и выше
201 Created «Создано». Запрос успешно выполнен и в результате был создан ресурс. Этот код обычно присылается в ответ на запрос PUT «ПОМЕСТИТЬ». HTTP/0.9 и выше
202 Accepted «Принято». Запрос принят, но ещё не обработан. Не поддерживаемо, т.е., нет способа с помощью HTTP отправить асинхронный ответ позже, который будет показывать итог обработки запроса. Это предназначено для случаев, когда запрос обрабатывается другим процессом или сервером, либо для пакетной обработки. HTTP/0.9 и выше
203 Non-Authoritative Information «Информация не авторитетна». Этот код ответа означает, что информация, которая возвращена, была предоставлена не от исходного сервера, а из какого-нибудь другого источника. Во всех остальных ситуациях более предпочтителен код ответа 200 OK. HTTP/0.9 и 1.1
204 No Content «Нет содержимого». Нет содержимого для ответа на запрос, но заголовки ответа, которые могут быть полезны, присылаются. Клиент может использовать их для обновления кешированных заголовков полученных ранее для этого ресурса. HTTP/0.9 и выше
205 Reset Content «Сбросить содержимое». Этот код присылается, когда запрос обработан, чтобы сообщить клиенту, что необходимо сбросить отображение документа, который прислал этот запрос. Только HTTP/1.1
206 Partial Content «Частичное содержимое». Этот код ответа используется, когда клиент присылает заголовок диапазона , чтобы выполнить загрузку отдельно, в несколько потоков . Только HTTP/1.1
Сообщения о перенаправлениях
300 Multiple Choice HTTP/1.0 и выше
301 Moved Permanently HTTP/0.9 и выше
303 See Other «Просмотр других ресурсов». Этот код ответа присылается, чтобы направлять клиента для получения запрашиваемого ресурса в другой URI с запросом GET. HTTP/0.9 и 1.1
304 Not Modified «Не модифицировано». Используется для кеширования. Это код ответа значит, что запрошенный ресурс не был изменён. Таким образом, клиент может продолжать использовать кешированную версию ответа. HTTP/0.9 и выше
305 Use Proxy «Использовать прокси». Это означает, что запрошенный ресурс должен быть доступен через прокси. Этот код ответа в основном не поддерживается из соображений безопасности. Только HTTP/1.1
306 Switch Proxy Больше не использовать. Изначально подразумевалось, что » последующие запросы должны использовать указанный прокси.» Только HTTP/1.1
307 Temporary Redirect «Временное перенаправление». Сервер отправил этот ответ, чтобы клиент получил запрошенный ресурс на другой URL-адрес с тем же методом, который использовал предыдущий запрос. Данный код имеет ту же семантику, что код ответа 302 Found , за исключением того, что агент пользователя не должен изменять используемый метод HTTP: если в первом запросе использовался POST , то во втором запросе также должен использоваться POST . Только HTTP/1.1
308 Permanent Redirect draft-reschke-http-status-308
Клиентские
400 Bad Request «Плохой запрос». Этот ответ означает, что сервер не понимает запрос из-за неверного синтаксиса. HTTP/0.9 и выше
401 Unauthorized «Неавторизованно». Для получения запрашиваемого ответа нужна аутентификация. Статус похож на статус 403, но,в этом случае, аутентификация возможна. HTTP/0.9 и выше
402 Payment Required «Необходима оплата». Этот код ответа зарезервирован для будущего использования. Первоначальная цель для создания этого когда была в использовании его для цифровых платёжных систем(на данный момент не используется). HTTP/0.9 и 1.1
403 Forbidden «Запрещено». У клиента нет прав доступа к содержимому, поэтому сервер отказывается дать надлежащий ответ. HTTP/0.9 и выше
404 Not Found «Не найден». Сервер не может найти запрашиваемый ресурс. Код этого ответа, наверно, самый известный из-за частоты его появления в вебе. HTTP/0.9 и выше
405 Method Not Allowed «Метод не разрешён». Сервер знает о запрашиваемом методе, но он был деактивирован и не может быть использован. Два обязательных метода, GET и HEAD , никогда не должны быть деактивированы и не должны возвращать этот код ошибки. Только HTTP/1.1
406 Not Acceptable

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

Только HTTP/1.1
407 Proxy Authentication Required Этот код ответа аналогичен коду 401, только аутентификация требуется для прокси сервера. Только HTTP/1.1
408 Request Timeout Ответ с таким кодом может прийти, даже без предшествующего запроса. Он означает, что сервер хотел бы отключить это неиспользуемое соединение. Этот метод используется все чаще с тех пор, как некоторые браузеры, вроде Chrome и IE9, стали использовать HTTP механизмы предварительного соединения для ускорения сёрфинга (смотрите баг 634278, будущей реализации этого механизма в Firefox). Также учитывайте, что некоторые серверы прерывают соединения не отправляя подобных сообщений. Только HTTP/1.1
409 Conflict Только HTTP/1.1
411 Length Required Только HTTP/1.1
412 Precondition Failed Клиент указал в своих заголовках условия, которые сервер не может выполнить Только HTTP/1.1
413 Request Entity Too Large