Содержание

Код 200 на сайте — что это значит? 200 OK это ошибка?

Код 200 на сайте — что это значит? 200 OK это ошибка?

Код 200 относится к информационным ответам сервера и сообщает, что запрос был принят и успешно обработан.

Сам 200-й ответ не означает ошибку, но иногда может содержать в себе сообщение с проблемой.

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

В таком случае сервер вернет код ответа 200, свидетельствующий, что операция распознана и успешно обработана, но с сообщением о том, что для последнего изображения не хватило места на сервере. Проще всего проверить это можно в инструментах разработчика (F12, вкладка Networks) или специальных сервисах.

Разновидности кода 200

Существует несколько видов ответов. К ним относят:

  • Response 200 OK — стандартный ответ, означающий, что запрос успешно обработан.
    Этот ответ дают все страницы, доступные для просмотра и проиндексированные поисковыми роботами.
  • 201 — означает созданное что-либо новое в результате действий пользователя, например, страницу.
  • 202 — запрос был принят в обработку, но еще не выполнен до конца из-за каких-либо причин. Этот запрос при желании можно отклонить, если вы считаете, что обработка займет слишком много времени.
  • 203 — операция была выполнена успешно, но данные были получены не из заданного пользователем первоисточника, а из другого, например, бэкапа сервера. Этот код также может свидетельствовать о том, что информация могла уже устареть.
  • 204 — запрос был выполнен, но сервер не может отправить контент в ответ. Как правило, такой код ответа содержит только HTTP-заголовки.
  • 205 — запрос был успешно выполнен, но клиенту нужно обновить введенные данные. При этом обновлять сам документ не нужно, поскольку сервер не передает тело сообщения.
  • 206 — в ответе возвращается только тот контент, который необходимо получить пользователю. Этот код ответа получает пользователь, заходя, например, на кэшированную страницу.
  • 207 — используется сервером, который выполнил сразу несколько отдельных операций. Результаты появляются в мультистатусном XML-документе.
  • 226 — используется для принятых IM-заголовков. Свидетельствует о том, что операция была успешно выполнена.

Другие статьи

Оптимальный размер текста на странице сайта

Как формировать ТЗ на тексты

Что такое landing page?

Что такое rewriterule

Заказать звонок

Обязательное поле для заполнения

Обязательное поле для заполнения

Согласен на обработку моих персональных данных в соответствии с политикой конфиденциальности

Обязательное поле

Спасибо за обращение!
В ближайшее время мы с вами свяжемся.

Рады приветствовать вас на сайте
интернет-агентства discript!Пожалуйста, укажите цель посещения:

Ознакомиться с услугами компании

Узнать больше о компании discript

Оставить заявку на бесплатную консультацию

Воспользоваться бесплатными инструментами SEO-продвижения

Далее

Обязательное поле для заполнения

Обязательное поле для заполнения

Укажите предпочтительные каналы связи:

ТелефонWhatsAppTelegram

Согласен на обработку моих персональных данных в соответствии с политикой конфиденциальности

Обязательное поле

200 — это хорошо или это плохо? / Хабр

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

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

HTTP/1.1 200 OK
{
  "error": {
    code: 2019,
    message: "Validation failed: field 'size' is invalid: the value is not a number"
  }
}
Нормально ли возвращать такой код, если возникла ошибка?

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

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

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

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

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

{
  "sources": [
    {"image": "http://myserver.com/image1.jpg"},
    {"image": "http://myserver.com/image2.jpg"},
    {"video": "http://myserver.com/video.jpg"}
  ]
}
Предположим, по какой-то причине (например, кончилось место на сервере) видео загрузить не удалось. Что бы вы вернули в таком случае? 2xx или 4xx или 5xx? Сервер, отвечает примерно вот так:

HTTP/1.1 200 OK
{
  "results": [
    { "status": "ok", "id": 312 },
    { "status": "ok", "id": 313 },
    { "status": "fail", "error": "NO SPACE" }
  ]
}
Некоторые сервисы (и вполне известные) действуют также. Отвечают 200. А в ответе возвращают список команд, которые выполнить не получилось.

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

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

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

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

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

— Ладно…

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

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

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

200 OK — Объяснение кода состояния HTTP

Код состояния ответа HTTP 200 OK возвращается сервером, чтобы указать на успех. Значение успеха и текст сопутствующего сообщения зависят от отправленного HTTP-запроса.

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

Содержание

  • Применение
    • GET
    • HEAD
    • POST
    • PUT
    • TRACE
    • DELETE
    • OPTIONS
  • 9 0011 Кодовые ссылки
  • Вывод
  • См. также

Использование

HTTP-ответ 200 OK всегда имеет тело сообщения, хотя сервер может дополнительно указать, что оно имеет нулевую длину. В зависимости от сервера это ожидаемое поведение при отправке HTTP-запроса PUT, DELETE или OPTIONS.

В случаях, когда сервер не хочет включать пустое тело сообщения, будет возвращен код состояния ответа 204 No Content. В особом случае HTTP-запроса, такого как метод POST, создающий контент, будет возвращен код состояния ответа 201 Created.

GET

Ответ HTTP GET будет содержать тело сообщения запрошенного ресурса.

Ответ

 HTTP/1.1 200 ОК
Тип содержимого: приложение/pdf
Длина контента: 10000
<тело сообщения будет содержать запрошенный PDF-документ>
 

HEAD

Ответ HTTP HEAD будет содержать заголовки HTTP, но не будет тела сообщения.

Ответ

 HTTP/1.1 200 ОК
Тип содержимого: текст/html; кодировка = UTF-8
 

POST

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

Ответ

 HTTP/1.1 200 ОК
Тип содержимого: приложение/json
Длина контента: 19{"успех":"правда"}
 

PUT

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

Ответ

 HTTP/1.1 200 ОК
Тип содержимого: текст/html; кодировка = UTF-8
Длина содержимого: 102

  <голова>
    Успех
  
  <тело>

Спасибо!

TRACE

Ответ HTTP TRACE будет содержать тело сообщения с сообщением HTTP-запроса, полученным сервером.

DELETE

Ответ HTTP DELETE будет включать индикацию состояния выполнения.

Ответ

 HTTP/1.1 200 ОК
Тип содержимого: приложение/json
Длина контента: 19
{«удалено»: «правда»}
 

OPTIONS

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

Ответ

 HTTP/1.1 200 ОК
Разрешить: ПОЛУЧИТЬ, ГОЛОВА, ПОЛОЖИТЬ, ВАРИАНТЫ
Content-Type: text/plain;charset=UTF-8
 

Ссылки на код

.NET

 HttpStatusCode.OK
 

Ржавчина

 http::StatusCode::OK
 

Рельсы

 :ok
 

Перейти

 http.StatusOK
 

Symfony

 Ответ::HTTP_OK
 

Python3.5+

 http.HTTPStatus.OK
 

Java

 java.net.HttpURLConnection.HTTP_OK
 

Apache HttpComponents Core

 org.apache.hc.core5.http.HttpStatus.SC_OK
 

Угловой

 @angular/common/http/HttpStatusCode.Ok
 

Вывод

Код состояния ответа HTTP 200 OK указывает, что запрос HTTP был успешным. В зависимости от HTTP-запроса детали и/или ресурсы будут включены в тело сообщения.

См. также

  • 204 Нет содержимого
  • RFC 7231

Последнее обновление: 29 июня 2022 г. HTTP-ответы, цепочки перенаправлений и коды состояния одного или нескольких URL-адреса.

Попробуйте прямо сейчас! Успешные ответы

  1. 201 Создано
  2. 202 Принято
  3. 203 Неавторитетная информация
  4. 204 Нет содержимого
  5. 205 Сброс содержимого
  6. 206 Частичное содержимое
  7. 207 Мультистатус
  8. 208 Уже сообщалось
  9. 218 Это нормально
  10. 226 Используемые мгновенные сообщения

Код состояния HTTP расшифрован: Руководство по пониманию 20 0, 201, 202 и 204 | by MelkorNemesis

Вас смущают различия между кодами состояния HTTP 200, 201, 202 и 204? Ты не один! Эти коды могут показаться похожими, но на самом деле они указывают на совершенно разные вещи для веб-серверов и клиентов. В этой статье мы разберем нюансы каждого кода и дадим вам несколько рекомендаций, когда их использовать.

4 min read

·

29 декабря 2022 г.

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

Существует множество различных кодов состояния HTTP, каждый из которых имеет свое особое значение. В этой статье мы сосредоточимся на четырех кодах, которые часто используются в веб-разработке: 200 , 201 , 202 и 204 .

Код состояния HTTP 200 является наиболее распространенным кодом состояния и указывает на то, что запрос был выполнен успешно. Когда клиент отправляет запрос на сервер, сервер отвечает кодом состояния, чтобы сообщить клиенту, был ли запрос успешным или нет. Код состояния 200 означает, что запрос был выполнен успешно и что сервер смог его выполнить.

Например, если клиент отправляет GET запрос к серверу для получения сведений о пользователе, сервер может ответить кодом состояния 200 и сведениями о пользователе в формате JSON. Это сообщает клиенту, что запрос был успешным.

Запрос

 GET /users/123 HTTP/1.1 
Хост: example.com

Ответ

 HTTP/1.1 200 OK 
Content-Type: application/json

{
"id": 123,
"имя" : "Джон Смит",
"электронная почта": "[email protected]"
}

Код состояния HTTP 201 используется для указания того, что запрос был выполнен и в результате был создан новый ресурс. Этот код обычно используется в ответ на запрос POST , который создает новый ресурс на сервере.

Например, если клиент отправляет запрос POST для создания новой учетной записи пользователя на сервере, сервер может ответить кодом состояния 201 и информацией о новой учетной записи пользователя. Это сообщает клиенту, что запрос был выполнен успешно и что новый ресурс создан.

Запрос

 POST /users HTTP/1.1 
Хост: example.com
Тип содержимого: application/json

{
"name": "Jane Doe",
"email": "jane@example. com"
}

Ответ

 HTTP/1.1 201 Created 
Content-Type: application/json
Location: /users/124

{
"id": 124,
"name": "Jane Doe",
"email" : "[email protected]"
}

Код состояния HTTP 202 используется для указания того, что запрос принят для обработки, но обработка еще не завершена. Этот код часто используется, когда сервер обрабатывает запрос асинхронно и не получает немедленного ответа.

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

Запрос

 POST /reports/generate HTTP/1.1 
Хост: example.com
Тип содержимого: application/json

{
"start_date": "2022-01-01",
"end_date": "2022- 01-31"
}

Ответ

 HTTP/1. 1 202 Принято 
Тип содержимого: application/json
Расположение: /reports/123

{
"id": 123,
"status": "processing"
}

Заголовок Location используется для предоставления URL-адреса, который клиент может использовать для проверки состояния запрошенной асинхронной задачи. Значение заголовка Location ( /reports/123 ) является просто уникальным идентификатором задачи и не обязательно должно соответствовать определенному ресурсу на сервере.

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

Важно отметить, что заголовок Location является необязательным в ответе с кодом состояния 202 . Сервер не обязан предоставлять заголовок Location, но он может быть полезен в тех случаях, когда клиенту необходимо отслеживать ход выполнения задачи.

Код состояния HTTP 204 используется для обозначения того, что запрос был выполнен успешно, но нет содержимого для отправки обратно клиенту. Этот код часто используется в ответ на запрос DELETE , когда сервер успешно удаляет ресурс, но нет содержимого для возврата клиенту.

Например, если клиент отправляет запрос DELETE на удаление учетной записи пользователя на сервере, сервер может ответить кодом состояния 204 , чтобы указать, что запрос был выполнен успешно и ресурс был удален.

Запрос

 УДАЛИТЬ /users/123 HTTP/1.1 
Хост: example.com

Ответ

 HTTP/1.1 204 Нет содержимого 

Вот несколько рекомендаций по использованию каждого из этих кодов состояния HTTP:

  • Используйте код состояния HTTP 200 для успешных запросов, которые извлекают или обновляют ресурс.
  • Используйте код состояния HTTP 201 для успешных запросов, которые создают новый ресурс на сервере.