バイナリファイルダウンロードのContent-Type
application/octet-streamを使用した汎用バイナリデータのContent-Typeヘッダーを設定します。使用する場面とContent-Dispositionとの組み合わせを解説します。
File Uploads
詳細な説明
application/octet-stream
application/octet-streamは汎用バイナリデータのContent-Typeです。ボディに特定の構造を暗示しない任意のバイナリデータが含まれていることをクライアントに伝えます。
ヘッダー値
Content-Type: application/octet-stream
使用する場面
application/octet-streamを使用する場面:
- ファイルタイプが不明、または登録されたMIMEタイプがない場合
- ダウンロードを強制したい場合(Content-Dispositionと組み合わせ)
- リクエストボディで生のバイナリデータを送信する場合
- 未指定のフォーマットのバイナリデータをストリーミングする場合
Content-Dispositionとの組み合わせ
ブラウザでファイルダウンロードをトリガーするには、Content-Dispositionヘッダーと組み合わせます:
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="backup-2025-01-15.bin"
可能な場合は特定のタイプを優先
実際のファイルタイプがわかっている場合は、特定のContent-Typeを代わりに使用してください:
| ファイルタイプ | 推奨Content-Type |
|---|---|
application/pdf |
|
| ZIP | application/zip |
| PNG | image/png |
| MP4 | video/mp4 |
| WASM | application/wasm |
特定のタイプを使用することで、ブラウザやクライアントがファイルを適切に処理できます(インライン表示、正しいアプリの関連付けなど)。
curlの例
# バイナリデータの送信
curl -X PUT \
-H "Content-Type: application/octet-stream" \
--data-binary @firmware.bin \
https://api.example.com/upload/firmware
ユースケース
ファームウェアアップロード、汎用ファイルダウンロード、バイナリデータストリーミング、特定のファイルタイプが不明なシナリオに使用します。サーバーがMIMEタイプを判別できない場合のフォールバックとしても使用されます。