200 ок что значит
Перейти к содержимому

200 ок что значит

  • автор:

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 OK

Код ответа об успешном статусе «The HTTP 200 OK» указывает, что запрос выполнен успешно. Ответ 200 может кешироваться по умолчанию.

Значение успеха зависит от метода HTTP-запроса:

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

Успешный результат PUT или DELETE часто не 200 OK, 204 No Content ( или 201 Created, когда ресурс загружается в первый раз).

Изучаем коды ошибок HTTP

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

Коды ошибок HTTP -основные типы

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

  • 100-199: информационный статус;
  • 200-299: статус успешного запроса;
  • 300-399: статус редиректа;
  • 400-499: ошибки клиента;
  • 500-599: ошибки сервера.

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

HTTP 200 «OK»

HTTP 200

HTTP код ответа 200 возникает, когда сервер успешно обработал запрос и передал контент обратно в браузер. Большинство HTTP-запросов завершается этим статусом. Пользователи редко видят этот код на экране, поскольку браузеры обычно отображают коды HTTP , если возникает какая-либо проблема.

Ошибка HTTP 404 «Не найдено»

Ошибка HTTP 404 «Не найдено»

Сервер не смог найти запрошенную страницу, файл или другой ресурс. Ошибка HTTP 404 указывает на то, что сетевое соединение между клиентом и сервером было успешно выполнено. Возникает, когда пользователь ввел в браузере неправильный URI , или администратор сервера удалил файл, не настроив редирект на новое местоположение. Чтобы устранить эту проблему, пользователи должны набрать правильный URL-адрес .

Ошибка HTTP 500 «Внутренняя ошибка сервера»

Ошибка HTTP 500 «Внутренняя ошибка сервера»

Сервер получил от клиента действительный запрос, но не смог обработать его. Ошибка HTTP 500 возникает, когда сервер сталкивается с каким-либо техническим сбоем. Например, нехваткой памяти или дискового пространства. Администратор сервера должен исправить эту проблему.

Ошибка HTTP 503 «Служба недоступна»

Ошибка HTTP 503 «Служба недоступна»

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

HTTP 301 «Перемещен навсегда»

HTTP 301 «Перемещен навсегда»

Указанный клиентом URI был перемещен в другое место с помощью HTTP-редиректа , который позволяет клиенту получить ресурс с нового местоположения. Браузеры автоматически следуют HTTP-редиректу 301 без необходимости вмешательства со стороны пользователя.

HTTP code 302 «Найдено» или «Перемещено временно»

HTTP code 302 «Найдено» или «Перемещено временно»

Код ошибки 302 предназначен для случаев, когда ресурс перемещен временно, а не постоянно. Администратор сервера должен использовать HTTP status code 302 только в течение коротких периодов обновления ( изменения ) контента. Браузеры автоматически выполняют редирект 302 , как и для кода 301 . В версии HTTP 1.1 для указания временных редиректов был добавлен новый код 307 .

HTTP 400 «Неверный запрос»

HTTP 400 «Неверный запрос»

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

HTTP Error 401 «Не авторизованный»

HTTP Error 401 «Не авторизованный»

HTTP Error 401 возникает, когда клиенты запрашивают защищенный ресурс на сервере, но не аутентифицированы для доступа. Чтобы исправить ее, клиент должен войти на сервер с использованием логина и пароля.

HTTP 100 «Продолжить»

HTTP 100 «Продолжить»

Добавленный в версию 1.1 протокола код HTTP ответа 100 был разработан для более эффективного использования пропускной способности сети. Он позволяет серверам подтверждать готовность принимать большие запросы. Протокол Continue позволяет клиенту HTTP 1.1 отправлять небольшое специально сконфигурированное сообщение, запрашивающее ответ сервера с кодом 100 , а затем дожидаться ответа до отправки запроса на дальнейшие действия. Клиенты и серверы HTTP 1.0 не используют этот код.

HTTP 204 «Отсутствует контент»

HTTP 204 «Отсутствует контент»

Сервер отправил ответ на запрос клиента, который содержит только информацию заголовка ( то есть не содержит тела сообщения ). Клиенты могут использовать HTTP код 204 для более эффективной обработки ответов сервера, избегая, например, ненужного обновления страниц.

HTTP 502 «Неверный шлюз»

HTTP 502 «Неверный шлюз»

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

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

Вадим Дворников автор-переводчик статьи « HTTP Error and Status Codes Explained »

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

Ваш адрес email не будет опубликован.