MIMEタイプとは
返却するコンテンツの種類を表す識別子。
これによってブラウザはファイルを受け取ったときの挙動が決まる。
nginxでの設定例
nginx.confのhttpディレクトリでは以下のような指定がされてある。
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
}
/etc/nginx/mime.types
には拡張子ごとに設定するMIMEタイプが定義されている。
octet-streamを返すケース
どれにもマッチしなかった場合、application/octet-stream
となる。
curlでみるとこういう値が表示されている。
< HTTP/2 200
< server: nginx
< date: Wed, 12 Dec 2018 14:00:34 GMT
< content-type: application/octet-stream
< content-length: 303
ブラウザでアクセスすると、結果がダウンロードさせられてしまう。
RFCを見てみると、octet-streamは任意のバイナリコードを意味し、ブラウザでは実行したりせず、単にダウンロードする挙動をとる。
ちなみに適当にドキュメントルートを指定して、index.htmlを返すようにすると、ちゃんとcontents typeはtext/htmlになった。
おわり
勉強になった。