« 携帯サイトをキャッシュする | メイン | サーバーサイドJavaを始めるために »

Content-Typeヘッダフィールドは必須か?

Content-Typeヘッダフィールドは必須か?

Webプログラミングをする場合には、必ずと言っていいほど意識しなければならないメディアタイプや文字コードではあるが、Content-Typeヘッダフィールドを制御しない場合には、MIMEタイプをWebサーバーで判断し、text/plainやtext/htmlの場合においてはデフォルト文字コード設定(ApacheでいうところのAddDefaultCharsetディレクティブ)によって出力がされる。

ただ、今日見たWebアプリケーションプログラムは、LocationヘッダフィールドによりリダイレクトしているページにおいてContent-Typeヘッダフィールドの出力なしにボディーにデータが書き込みされていたので、RFCに違反しているのかどうか調べてみた。

対応するRFCは2068(ハイパテキスト転送プロトコル HTTP/1.1)になる。
該当する項目は、7.2.1 型にある

実体本体を含むどんなHTTP/1.1メッセージも,その実体のメディア型を定義するContent-Typeヘッダフィールドを含むことが望ましい。

であり、強制されるものではないようである。したがって、受け手(ブラウザ)はContent-Typeヘッダフィールドがない場合でもメディア型を推定しようとしてよいのである。しかし、こちらも推定しなければならないわけではないので、結果的には正しく通信できない恐れがあるということを示しているようだ。

やはりContent-Typeヘッダフィールドは通信トラブルを避けるためにも「ほぼ」必須のヘッダフィールドであるといえる。



トラックバック

トラックバックは本サイトの紹介(リンクがあれば可)があるものに限り受付いたします。このエントリーのトラックバックURLは以下のとおりです。

http://blog.development-network.net/mt/mt-tb.cgi/979

コメントを投稿