Код 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
Оставить заявку на бесплатную консультацию
Воспользоваться бесплатными инструментами 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" } ] }
Случай 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-адреса.
Попробуйте прямо сейчас! Успешные ответы- 201 Создано
- 202 Принято
- 203 Неавторитетная информация
- 204 Нет содержимого
- 205 Сброс содержимого
- 206 Частичное содержимое
- 207 Мультистатус
- 208 Уже сообщалось
- 218 Это нормально
- 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
для успешных запросов, которые создают новый ресурс на сервере.