Пример кода статуса в заголовке curl
Коды статусов не отображаются в тебе ответа. Они содержатся в хэдере, который может быть не видим по умолчанию.
Заголовок ответа выглядит следующим образом:
Коды состояния довольно тонкие, но когда разработчик работает с API, коды могут быть единственным «интерфейсом», который имеет разработчик. Если получится контролировать сообщения, которые видит разработчик, это будет большой победой юзабилити
Слишком часто коды состояния неинформативны, плохо написаны и сообщают мало или вообще никакой полезной информации пользователю для преодоления ошибки. По большому счету, коды состояния должны помогать пользователям в восстановлении после ошибок.
Можно посмотреть список общих кодов состояния REST API здесь и общий список кодов HTTP статусов здесь. Хотя, возможно, было бы полезно включить несколько стандартных кодов состояния, нет необходимости в полном документировании всех стандартных кодов состояния, особенно если они редко запускаются в API.
Где перечислять HTTP-ответ и коды ошибок
Практичнее, если API будут иметь одну страницу с ответами и кодами ошибок ко всему API. Отдельная страница с перечнем кодов состояния (вместо добавления кода состояния в каждую конечную точку) позволяет более детально описать каждый код без переполнения других частей документации. Такой подход уменьшает избыточность и ощущение информационной перегрузки.
С другой стороны, если какие-то коды состояния и ошибок больше подходят к определенным конечным точкам, чем другие, имеет смысл вывести такие коды состояния и ошибок на страницы с описаниями конечных точек.
Такая стратегия может заключаться в том, чтобы привлечь внимание к каким-либо особенно важным кодам состояния или ошибок для конкретной конечной точки, а затем перейти к централизованной странице «Коды ответов и состояний» для получения полной информации.
Где взять коды ошибок и статусы
Коды состояния и ошибок могут быть неочевидны в документации API. Вероятно, придется попросить разработчиков предоставить список всех кодов состояния и ошибок, которые уникальны для API. Иногда разработчики хардкодят коды состояния и ошибок непосредственно в программном коде, и у них нет простых способов передать полный список (что также затрудняет локализацию).
В результате может потребоваться танцы с бубнами, чтобы найти все коды. В частности, возможно придется сломать API, чтобы увидеть все возможные коды ошибок. Например, если превысить ограничение скорости для определенного запроса, API может вернуть специальную ошибку или код состояния. Такой пользовательский код обязательно нужно задокументировать. В разделе устранения неполадок в API можно специально разместить примеры получения кодов ошибок.
Как перечислять коды ошибок
Коды статусов и ошибок можно привести в виде списка определений или таблицы, например так:
| Status code | Значение |
|---|---|
| 200 | Успешный запрос и ответ |
| 400 | Неверно заданные параметры или другой неверный запрос |
Коды состояния и ошибок помогают в устранении неполадок
Коды состояния и ошибок особенно полезны при устранения неполадок. Таким образом, можно рассматривать коды ошибок как дополнение к разделу по устранению неполадок.
Каждая часть документации может быть полезна в разделе, посвященном устранению неполадок. В разделе, посвященном устранению неполадок, можно описать, что происходит, когда пользователи уходят с проторенной дорожки и спотыкаются в темном лесу. Коды состояния похожи на подсказки, которые помогут пользователям вернуться на правильный путь.
В разделе по устранению неполадок можно перечислить сообщения об ошибках, связанных со следующими ситуациями:
текст ошибки должен точно документироваться, чтобы она легко появлялась при поиске.
Примеры кодов статусов и ошибок
Ниже приведены несколько вариантов разделов с кодами статусов и ошибок.
Context. io
Clearbit не только документирует стандартные коды состояния, но также описывает уникальные параметры, возвращаемые их API. Большинство разработчиков, вероятно, знакомы с кодами 200, 400 и 500, поэтому эти коды не требуют много пояснений. Но если API имеет уникальные коды, описывать их нужно адекватно и подробно.
В Twitter не только описывается код и состояние, но также предоставляется полезная информация по устранению неполадок, потенциально помогая в устранении ошибок. Например, про ошибку 500 не просто сказано, что статус относится к неработающей службе, но и есть объяснение: «Обычно это временная ошибка, например, в ситуации высокой нагрузки или если у конечной точки временно возникают проблемы. Посетите форумы разработчиков на случай, если у других возникнут аналогичные проблемы, или повторите попытку позже».
Mailchimp
Mailchimp предоставляет удобочитаемые и понятные описания сообщений об ошибке. Например, в ошибке 403 вместо того, чтобы просто написать «Запрещено», Mailchimp объясняет причины, по которым можно получить ошибку запрещенного кода. У Mailchimp существует несколько типов ошибок 403. Запрос может быть запрещен из-за отключенной учетной записи пользователя или запроса, направленного не в тот центр обработки данных. В случае ошибки «WrongDataCenter» Mailchimp отмечает, что «она часто связана с неправильно настроенными библиотеками» и ссылается на дополнительную информацию о центрах обработки данных. Такой тип документации кода ошибки очень полезен для пользователей.
Flickr
В Flickr раздел «Коды ответов» встроен в описание каждой адресной темы API. Описания ошибок выглядят короткими. Хотя встраивание кодов ответов в каждую тему делает коды ошибок более заметными, в некоторых случаях такой подход менее полезен. Поскольку он встроен в каждую тему API, описания кодов ошибок должны быть краткими, иначе их содержимое будет перегружено информацией о запросе конечной точки.
Напротив, отдельная страница с перечнем кодов ошибок позволяет более подробно раскрывать каждый код, не вытесняя другую документацию. Отдельная страница также уменьшает избыточность и увеличивает объем информации.
?? Практическое занятие: Коды статусов и ошибок
В своем найденном опен-сорс проекте найдем информацию о кодах статусов и ошибок. Ответим на следующие вопросы:
Как проверить ответ сервера сайта. Ошибки 200, 301, 404, 302, 500, 503, 550
Приветствую, мои уважаемые читатели. Рад видеть снова на страницах своего блога. Сегодня поговорим про сервера и различные ошибки связанные с работой. Рассмотрим основные коды и разберем что они означают.
Каждый раз, когда пользователь посещает веб-страницу, браузер и сервер, на котором она расположена, обмениваются заголовками. Передается маленькое сообщение, включающее информационный код, а также данные по загрузке изображений и иной информации.
Ведущее число определяет статус и указывает общий смысл послания:
Как самостоятельно проверить ответ сервера сайта
Доступны методы на любой вкус, подбираются в соответствии с текущей задачей. Например, вебмастеру код ответа чаще нужен для проверки видимости поисковыми роботами, кодеру — для обработки скриптов.
<?php
$url = ‘https://www. site. ru’;
print_r(get_headers($url));
print_r(get_headers($url, 1));
?>

Браузер
Проверить ответ сервера можно, используя встроенные инструменты разработчика. Например, в Chrome-инструментах это будет вкладка Network. При загрузке или перезагрузке в ней появится таблица с данными.

Нужные параметры выделены желтым маркером.
Сервисы
Их множество, они доступны онлайн, в большинстве можно посмотреть данные без регистрации.
Как правило, владельцев сайтов интересует видимость конкретным роботом. В этом случае уместно разобрать пример с использованием «Яндекса». Проверка доступна в вебмастерской при условии подтвержденных прав на сайт.

В поле URL вводится нужный адрес, выбирается робот и время.
Коды ошибок сервера: 200, 301, 404, 302, 500, 503, 550
200 — означает «Все отлично, я посылаю данные, которые вы просили». В зависимости от метода, начинка будет отличаться:
Ошибка 200 — неправильное утверждение, так как это число отдает корректно работающая страница.
301 — означает, что запрошенный ресурс навсегда перемещен (moved permanently), ему присвоен новый URI-адрес. Вариант применяется для коррекции пути посетителей, которые приходят по неправильной версии домена, например, набирают его с WWW. При включенном mod rewrite в htaccess дописывается:
RewriteEngine On
RewriteCond %
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
Обратная ситуация прописывается по аналогии. При использовании кода рекомендуется выполнить бэкап исходного файла, а после установки проверить ответ сервера.
При перемещении содержимого в пределах домена достаточно указать:
Redirect 301 /stariy adres https://site. ru/noviy adres
Заявленному статусу соответствует ошибка 301, когда старое местоположение по-прежнему актуально и сохранено для индексирования или при злоупотреблении редиректами.
Частый вопрос, возникающий при редиректе 301 : что произойдет с индексацией и входящим ссылочным? Переиндексация займет от одного дня до пары месяцев, разумно ее ускорить своими силами. После завершения процесса ссылочное и его вес перейдут на новый адрес без потерь. Способ актуален при смене домена, если жаль терять наработанные пузомерки сайта, находящегося под фильтрами.
302 — означает, что страница временно отсутствует, потому что размещена под другим адресом. Ответ сервера 302 кэшируется, если указан Cache-Control или в случае просроченного поля заголовка.
Временный адрес задается в поле Location, если ошибка 302 получена методом запроса, отличающегося от HEAD.
Внимание! При выполнении GET–запроса с разрешенным доступом без изменения структуры документа, ответ 302 не подходит, сервером должна выдаваться ошибка 304.
404 — неверный запрос на стороне клиента. Сервер не понял, что от него требуется, так как заявлен некорректный адрес или синтаксис. Встречается при проверке несуществующей страницы домена, при отсутствии данных, лишних символах в адресной строке и т. д.
500 — серверная ошибка, выполнить запрос невозможно. За исключением случаев, когда при ответе на запрос в HEAD включается объект, который содержит пояснение ошибочной ситуации. Ошибка 500 свидетельствует о столкновении с непредвиденным условием.
503 — невозможно обработать запрос. Это происходит, когда сервер перегружен, или в процессе обслуживания. Смысл в том, что это временное состояние. Если известно, сколько понадобится времени для исправления ситуации (длина задержки), в заголовке указывается параметр Retry-After. Буквальный перевод с английского — «попробуйте позже». Если Retry-After не указан, клиент обрабатывает ответ по аналогии с 500.
550 — относится не к HTTP, а к протоколу SMTP. Означает, что сервер SMTP не может доставить отправленное письмо пользователю, потому что его почтовый ящик не существует, либо клиент вошел неправильно, или учетная запись была отключена и заменена на новую. Среди SMTP-сообщений ошибка 550 считается наиболее распространенной. Дополняется информацией о том, что требуемое действие не выполнено: например, недоступен почтовый ящик, или содержит указания, относящиеся к спаму.
Любой код стоит воспринимать, как лаконичное информационное сообщение. Если вы — вебмастер, столкнувшийся с error 4XX или 5XX на своем ресурсе, не паникуйте. Внимательно прочтите дополнительное описание, если оно вывелось на экран. В случаях, когда описание отсутствует, рекомендуется просмотреть серверный error. log — там доступна подробная информация о причинах произошедшего.
https://starkovden. github. io/status-error-codes. html
https://firelinks. ru/sozdanie-saita/366-kak-proverit-otvet-servera. html