The Daily WTF на русском
Подписаться
CodeSOD: Я не 200
Коды состояния HTTP имеют теоретические категории для удобства использования: 100-е — для информационных, 200-е — для успешных, 300-е — для перенаправлений, 400-е — для ошибок клиента и 500-е — для ошибок сервера. Однако реальные реализации часто отклоняются от этих стандартов. Например, LinkedIn использует нестандартный код 999 для несанкционированного доступа. Shopify представил свои собственные пользовательские коды, а Apache даже имеет код 218. WebDAV еще больше усложняет ситуацию, добавляя новые коды состояния и глаголы запросов HTTP.Сгенерированный фрагмент кода пытается обрабатывать коды состояния HTTP, проверяя, не равно ли деление кода состояния на 100 двойке. Этот подход рассматривает любой код состояния вне диапазона 200 как ошибку. Автор критикует этот метод, особенно деление на 100, утверждая, что он ошибочно помечает не ошибочные ответы, такие как 300-е, как сбои. Например, код 304 (Не изменено), который указывает на то, что кешированное содержимое все еще действительно, будет ошибочно идентифицирован как ошибка. Эта хитрая, но ошибочная логика привела к ненужным неудачным запросам, демонстрируя предпочтение математическим уловкам перед надежной обработкой ошибок.