LoginSignup
9
1

More than 5 years have passed since last update.

MIME TYPE application/octet-streamを返すときブラウザでは通信結果をダウンロードさせる

Posted at

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になった。

おわり

勉強になった。

9
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
1