理系学生日記

おまえはいつまで学生気分なのか

HTTPヘッダで大文字小文字は区別すべきか問題

HTTP ヘッダを使った処理を書いていて、これは case-sensitive に処理すべきか case-insensitive に処理すべきかが不明ということがあった。例えば API サーバの処理がその HTTP ヘッダの内容に依存する場合において、HTTP ヘッダの大文字小文字を区別すべきか否か、という話です。 どんな風に処理を記述するにせよ、何かしら頼るべきもがなければならない、HTTP の文脈であればそれは RFC であろうということで、RFC 7230 を見ると、いきなりそのものズバリなものがあった。

3.2. Header Fields

Each header field consists of a case-insensitive field name followed by a colon (":"), optional leading whitespace, the field value, and optional trailing whitespace.

というわけで、HTTP ヘッダは case-insensitive 。大文字と小文字の違いなんてのは大らかな心で許容すべき。