2012-05-23 30 views
6

私が知る限り、HTTPプロトコルでバイナリファイルを転送することは可能です。しかし、HTTPは、テキストベースのプロトコルで、次のように一般的なHTTP応答フレームが見えます:HTTPによるファイル転送

HTTP/1.1 200 OK 
Date: Wed, 23 May 2012 22:38:34 GMT 
Content-Length: 438 
Content-Type: text/html; charset=UTF-8 

Here goes content 

もしそうなら、どのようにバイナリファイルは、このフレームでエンコードされなければなりませんか? Content-Typeとは何ですか?コンテンツはbase64でエンコードされていますか?POP3プロトコルの添付ファイルと同じですか?

答えて

9

ヘッダーフィールドはテキストベースですが、実際のペイロードはバイナリです。あなたはあなたが望むものを転送することができます。

いいえ、Content-Typeとは関係ありません。これは受信者がデータをどのように処理するかを知るためのラベルです。プロトコル自体の形式には影響しません。

0

バイナリファイルは通常、アプリケーション/オクテットストリームのMIMEタイプとともに転送されます(もちろん、別のより特定のMIMEタイプと一致しない限り)。送信の場合は、rawデータを使用します。base64は必要ありません。

+0

これはテキストベースのプロトコルですが、改行文字のエンコードとバイト順序はどうですか? –

関連する問題