Код
#Тесты

Тест: что ты знаешь про статусные коды HTTP?

Можно ли заварить кофе на HTTP, почему Twitter иногда просит успокоиться при обращении к API и при чём тут Рэй Брэдбери?

Иллюстрация: Оля Ежак для Skillbox Media

Статусные коды — это не только инструмент диагностики веб-страниц, но и куча забавных пасхалок. Пройдите тест, чтобы выяснить, насколько хорошо вы в них разбираетесь.
Начать тест
Начнём с базы: из чего состоит HTTP-ответ?
Верно! В статусе ответа указывается код. Например, код 200 означает, что всё прошло успешно. В заголовках размещается дополнительная информация, которая помогает браузеру корректно отобразить файл, — допустим, версия HTTP. А в тело ответа сервер кладёт сам запрашиваемый файл — например, HTML-страницу.
Не-а, вы спутали с HTTP-запросом. В HTTP-ответ входит три части: статус ответа, заголовки и тело ответа.

В статусе ответа указывается код. Например, код 200 означает, что всё прошло успешно. В заголовках размещается дополнительная информация, которая помогает браузеру корректно отобразить файл, — допустим, версия HTTP. А в тело ответа сервер кладёт сам запрашиваемый файл — например, HTML-страницу.
И только? Нет, В HTTP-ответ входит три части: статус ответа, заголовки и тело ответа.

В статусе ответа указывается код. Например, код 200 означает, что всё прошло успешно. В заголовках размещается дополнительная информация, которая помогает браузеру корректно отобразить файл, — допустим, версия HTTP. А в тело ответа сервер кладёт сам запрашиваемый файл — например, HTML-страницу.
Дальше
Проверить
Узнать результат
Знать все статусные коды не обязательно, но, думаем, вы в курсе, сколько классов (групп, типов) таких кодов существует. Итак, сколько?
Где-то недосчитались ещё двух классов.

Правильный ответ — пять классов:
  • информационный (1хх);
  • успешный (2хх);
  • перенаправление (3хх);
  • ошибка клиента (4хх);
  • ошибка сервера (5хх).

На класс указывает первая цифра кода (то есть сотни), а остальные две цифры описывают специфику кода.

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

Например 102 Processing указывает на первый класс ответа (информационный) и состояние — «идёт обработка».
Где-то недосчитались ещё одного класса.

Правильный ответ — пять классов:
  • информационный (1хх);
  • успешный (2хх);
  • перенаправление (3хх);
  • ошибка клиента (4хх);
  • ошибка сервера (5хх).

На класс указывает первая цифра кода (то есть сотни), а остальные две цифры описывают специфику кода.

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

Например 102 Processing указывает на первый класс ответа (информационный) и состояние — «идёт обработка».
Правильно! Вот они:
  • информационный (1хх);
  • успешный (2хх);
  • перенаправление (3хх);
  • ошибка клиента (4хх);
  • ошибка сервера (5хх).

На класс указывает первая цифра кода (то есть сотни), а остальные две цифры описывают специфику кода.

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

Например 102 Processing указывает на первый класс ответа (информационный) и состояние — «идёт обработка».
Дальше
Проверить
Узнать результат
Код статуса работает как обратная связь — он помогает узнать результат запроса и понять, какие действия нужно предпринять дальше. Но может ли сайт, сервис или платформа изобрести и использовать собственный, не входящий в общепринятую классификацию, код?
Действительно, может. Конечно, большинство стандартных кодов, таких как 404 или 502, регулируется документом RFC (Request for Comments), а введение новых кодов в этот документ согласовывается с Инженерным советом интернета (IETF). Но это касается интернета в целом. В частных случаях ничего не мешает создать свой код ответа HTTP.

Например, в Shopify вместо кода 429 Too Many Requests, который означает, что от клиента было получено слишком много запросов, может использоваться 430 Request Header Fields Too Large — но лишь в случаях, когда запрашивается слишком много URL-адресов.
А почему нет? Конечно, большинство стандартных кодов, таких как 404 или 502, регулируется документом RFC (Request for Comments), а введение новых кодов в этот документ согласовывается с Инженерным советом интернета (IETF). Но это касается интернета в целом. В частных случаях ничего не мешает создать свой код ответа HTTP.

Например, в Shopify вместо кода 429 Too Many Requests, который означает, что от клиента было получено слишком много запросов, может использоваться 430 Request Header Fields Too Large — но лишь в случаях, когда запрашивается слишком много URL-адресов.
Дальше
Проверить
Узнать результат
В первой версии API для поиска трендов в Twitter была прописана ошибка 420 Enhance Your Calm, которая указывала на то, что скорость приёма данных от клиента ограничена. Она не входила в список основных кодов RFC, поэтому в следующей версии API Twitter её заменили на стандартную, принятую RFC. На какую?
Верно! Описание ошибки вместо туманного «успокойтесь» стало прямо говорить о том, что пользователь отправил слишком много запросов за заданный промежуток времени.

По распространённой теории, описание ошибки 420 — это фраза из фильма «Разрушитель» с Сильвестром Сталлоне. Кстати, 420 Enhance Your Calm до сих пор используется в кодах ошибок API «Яндекс Маркета».
Не-а, правильный ответ — 429 Too Many Requests. Описание ошибки вместо туманного «успокойтесь» стало прямо говорить о том, что пользователь отправил слишком много запросов за заданный промежуток времени.

По распространённой теории, описание ошибки 420 — это фраза из фильма «Разрушитель» с Сильвестром Сталлоне. Кстати, 420 Enhance Your Calm до сих пор используется в кодах ошибок API «Яндекс Маркета».
Не-а, правильный ответ — 429 Too Many Requests. Описание ошибки вместо туманного «успокойтесь» стало прямо говорить о том, что пользователь отправил слишком много запросов за заданный промежуток времени.

По распространённой теории, описание ошибки 420 — это фраза из фильма «Разрушитель» с Сильвестром Сталлоне. Кстати, 420 Enhance Your Calm до сих пор используется в кодах ошибок API «Яндекс Маркета».
Дальше
Проверить
Узнать результат
В IETF тоже любят придумывать первоапрельские шутки и разыгрывать весь интернет. Так, в 1998 году в организации создали «протокол для управления гипертекстовым кофейником» (HTCPCP), по которому с помощью команд можно было заставить сервер варить напиток, добавлять в него молоко и «извлекать» его с сервера. Естественно, были и свои коды ошибок: одна из них стандартная — 406 Not Acceptable, а другая возникала в случае, когда сервер не мог приготовить кофе. Что это была за ошибка?
Не-а, правильный ответ — 418 I’m a teapot.

Шуточное описание ошибки 418 сообщает, что сервер не может приготовить кофе, потому что он чайник. Фраза в названии является отсылкой к навязчивой песне I’m a Little Teapot 1939 года.

Код ошибки стал мемом, и другие разработчики начали использовать его как пасхалку. В 2017 году председатель IETF призвал удалить намёки на 418 из Node.js, Go, Python, но общественность выступила резко против. Было запущено движение Save 418, которое транслировало простую мысль: шутки в коде показывают, что его всё ещё пишут люди.

Общественный резонанс был настолько сильным, что в итоге создатели языков не стали удалять упоминание этого кода ошибки, а сам IETF зарезервировал код 418 в RFC.

Зайти на чайник можно по этой ссылке.
Не-а, правильный ответ — 418 I'm a teapot.

Шуточное описание ошибки 418 сообщает, что сервер не может приготовить кофе, потому что он чайник. Фраза в названии является отсылкой к навязчивой песне I’m a Little Teapot 1939 года.

Код ошибки стал мемом, и другие разработчики начали использовать его как пасхалку. В 2017 году председатель IETF призвал удалить намёки на 418 из Node.js, Go, Python, но общественность выступила резко против. Было запущено движение Save 418, которое транслировало простую мысль: шутки в коде показывают, что его всё ещё пишут люди.

Общественный резонанс был настолько сильным, что в итоге создатели языков не стали удалять упоминание этого кода ошибки, а сам IETF зарезервировал код 418 в RFC.

Зайти на чайник можно по этой ссылке.
Верно! Шуточная ошибка «Я — чайник» сообщает, что сервер не может приготовить кофе, потому что он — чайник. Фраза в названии ошибки является отсылкой к навязчивой песне I’m a Little Teapot 1939 года.

Код ошибки стал мемом, и другие разработчики начали использовать его как пасхалку. В 2017 году председатель IETF призвал удалить намёки на 418 из Node.js, Go, Python, но общественность выступила резко против. Было запущено движение Save 418, которое транслировало простую мысль: шутки в коде показывают, что его всё ещё пишут люди.

Общественный резонанс был настолько сильным, что в итоге создатели языков не стали удалять упоминание этого кода ошибки, а сам IETF зарезервировал код 418 в RFC.

Зайти на чайник можно по этой ссылке.
Дальше
Проверить
Узнать результат
Одна из ошибок имеет код 451 и является отсылкой к роману Рэя Брэдбери «451 градус по Фаренгейту». Что она означает?
Верно! Полное название ошибки — 451 Unavailable For Legal Reasons. Она была добавлена в стандарт в 2015 году и означает, что доступ к ресурсу закрыт по юридическим причинам — по требованию органов власти и правообладателей. Отсылка к роману Брэдбери почти прямая: в мире антиутопии были запрещены книги, а тут речь о запрете сайта. По сути, код 451 — это уточнение кода 403.
Думаем, в этом случае ответа от сервера вообще не будет 😀

Полное название название ошибки — 451 Unavailable For Legal Reasons. Она была добавлена в стандарт в 2015 году и означает, что доступ к ресурсу закрыт по юридическим причинам — по требованию органов власти и правообладателей. Отсылка к роману Брэдбери почти прямая: в мире антиутопии были запрещены книги, а тут речь о запрете сайта. По сути, код 451 — это уточнение кода 403.
Не-а. Полное название название ошибки — 451 Unavailable For Legal Reasons. Она была добавлена в стандарт в 2015 году и означает, что доступ к ресурсу закрыт по юридическим причинам — по требованию органов власти и правообладателей. Отсылка к роману Брэдбери почти прямая: в мире антиутопии были запрещены книги, а тут речь о запрете сайта. По сути, код 451 — это уточнение кода 403.
Дальше
Проверить
Узнать результат
Какая ошибка наиболее часто встречается на страницах в интернете? Подсказка: страницу с этим кодом часто стараются обыграть как-нибудь креативно.
Не-а, ошибка 508 Loop Detected встречается нечасто — она показывает, что операция отменена, потому что сервер обнаружил бесконечный цикл.

Правильный ответ — ошибка 404 Not Found. Она встречается наиболее часто, потому что возникает из-за неправильно введённого веб-адреса или битой ссылки. Веб-мастера часто особым образом оформляют эту страницу и как минимум добавляют на неё ссылку на основной сайт, чтобы пользователь не покинул ресурс.
Не-а, 449 Retry With ошибка редкая — используется в основном Microsoft в расширении WebDAV.

Правильный ответ — ошибка 404 Not Found. Она встречается наиболее часто, потому что возникает из-за неправильно введённого веб-адреса или битой ссылки. Веб-мастера часто особым образом оформляют эту страницу и как минимум добавляют на неё ссылку на основной сайт, чтобы пользователь не покинул ресурс.
Верно! Ошибка 404 Not Found встречается наиболее часто, потому что возникает из-за неправильно введённого веб-адреса или битой ссылки. Веб-мастера часто особым образом оформляют эту страницу и как минимум добавляют на неё ссылку на основной сайт, чтобы пользователь не покидал ресурс.
Дальше
Проверить
Узнать результат
Коды ответов, которые начинаются с цифры 5, определяются как ошибки на стороне сервера. Во всей этой системе кодов есть один код, который используется в случае, когда проблема не установлена, — эта ошибка считается самой неприятной, потому что причина «поломки» неясна. Что это за код?
Верно! Код 500 присваивается любой внутренней ошибке, которую система не смогла нормально классифицировать. Фактически эта ошибка говорит: какая-то беда с сервером, но в чём именно проблема — вообще непонятно.
Не-а. Это нестандартный код, который используется в Cloudflare, — он означает, что сервер CDN не смог обработать ошибку веб-сервера.

Правильный ответ — 500 Internal Server Error. Этот код присваивается любой внутренней ошибке, которую система не смогла нормально классифицировать. Фактически эта ошибка говорит: какая-то беда с сервером, но в чём именно проблема — вообще непонятно.
Не-а. Этот код конкретизирован: он означает, что на сервере отсутствует расширение, которое желает использовать клиент.

Код 500 Internal Server Error присваивается любой внутренней ошибке, которую система не смогла нормально классифицировать. Фактически эта ошибка говорит: какая-то беда с сервером, но в чём именно проблема — вообще непонятно.
Дальше
Проверить
Узнать результат
В RFC-документе есть один код ошибки, который зарезервирован на будущее, но так и не стал стандартом. В итоге его используют в самых разных значениях. Что это за код?
Не-а, этот код указывает на ошибку авторизации и является стандартным.

Правильный ответ — 402 Payment Required. Ошибка 402 зарезервирована на будущее и не является стандартом, поэтому её используют в разных контекстах. Изначально она задумывалась как указание на отсутствие оплаты: клиенту необходимо оплатить доступ, чтобы выполнить запрос.
Не-а, это ошибка стандартная и конкретная — она сообщает, что время ожидания сервера истекло.

Правильный ответ — 402 Payment Required. Ошибка 402 зарезервирована на будущее и не является стандартом, поэтому её используют в разных контекстах. Изначально она задумывалась как указание на отсутствие оплаты: клиенту необходимо оплатить доступ, чтобы выполнить запрос.
Верно! Ошибка 402 зарезервирована на будущее и не является стандартом, поэтому её используют в самых разных контекстах. Изначально она задумывалась как указание на отсутствие оплаты: клиенту необходимо оплатить доступ, чтобы выполнить запрос.
Дальше
Проверить
Узнать результат
В каком сериале нумерацию классов HTTP-ответов использовали в названиях серий?
Верно! В названиях десяти серий четвёртого сезона использованы коды ошибок. Например, первая серия называется 401 Unauthorized, вторая — 402 Payment Required и так далее.
Не-а, правильный ответ — «Мистер Робот». В названиях десяти серий четвёртого сезона использованы коды ошибок. Например, первая серия называется 401 Unauthorized, вторая — 402 Payment Required и так далее.
Не-а, правильный ответ — «Мистер Робот». В названиях десяти серий четвёртого сезона использованы коды ошибок. Например, первая серия называется 401 Unauthorized, вторая — 402 Payment Required и так далее.
Дальше
Проверить
Узнать результат

Обновить страницу — ваш любимый метод устранения любой ошибки в интернете. В 90% случаев он сработает (если вы не администратор сервера, конечно). Рекомендуем присмотреться к нашему курсу «Профессия Инженер по тестированию» — вы научитесь находить ошибки и создавать условия для их устранения.

Пройти ещё раз

Эксперт по статусным ответам. Чтобы понять, почему сайт не открылся, вам не придётся гуглить — большинство ответов уже находится у вас в голове. Рекомендуем присмотреться к нашему курсу «Профессия Инженер по тестированию» — вы научитесь находить ошибки и создавать условия для их устранения.

Пройти ещё раз

Исследователь статусных ответов. Вы не только знаете практически все коды, но ещё и неплохо разбираетесь в их контексте. Рекомендуем присмотреться к нашему курсу «Профессия Инженер по тестированию» — вы научитесь находить ошибки и создавать условия для их устранения.

Пройти ещё раз

Легенда! Вы настолько свободно читаете HTTP-коды, что можете делать это с закрытыми глазами (прямо как в «Матрице»). Видимо, вы администрируете серверы, любите читать об IT или просто возглавляете комитет по разработке соответствующего RFC. Рекомендуем присмотреться к нашему курсу «Профессия Инженер по тестированию» — вы научитесь находить ошибки и создавать условия для их устранения.

Пройти ещё раз
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована