コードSOD: 私は200歳じゃない ノート

コードSOD: 私は200歳じゃない

HTTPステータスコードは、使いやすさのために理論的なカテゴリに分類されています。100番台は情報、200番台は成功、300番台はリダイレクト、400番台はクライアントエラー、500番台はサーバーエラーです。しかし、実際の実装ではこれらの標準から逸脱することがよくあります。例えば、LinkedInは権限のないアクセスに対して非標準の999コードを使用しています。Shopifyは独自のカスタムコードを導入しており、Apacheは218コードさえ持っています。WebDAVは、新しいステータスコードとHTTPリクエスト動詞を追加することで、さらに複雑化させています。生成されたコードの一部は、ステータスコードを100で割った結果が2と等しくないかどうかをチェックすることでHTTPステータスコードを処理しようとします。このアプローチでは、200の範囲外のステータスコードはすべてエラーとして扱われます。著者は、特に100で割るという方法を批判しており、300番台のようなエラーではない応答まで誤って失敗としてフラグを立ててしまうと主張しています。例えば、キャッシュされたコンテンツがまだ有効であることを示す304(Not Modified)コードは、エラーとして誤認されてしまいます。この巧妙ではあるが欠陥のあるロジックは、不必要なリクエスト失敗につながり、堅牢なエラー処理よりも数学的なトリックを優先することを示しています。