イントロダクション
最近は、ブラウザ内で PDF ファイルが表示できるようになりました。私がメインで使用している Google Chrome では、組み込みの PDF ビューアがデフォルトで有効になっています。
PDF ビューア - Chrome ヘルプ
https://support.google.com/chrome/answer/1060734?hl=ja
https://support.google.com/chrome/answer/1060734?hl=ja
ブラウザでPDFファイルを表示したときに表示されることのある、HTTPステータスコード206 - ファイルを分割ダウンロードしていた!
さて、先日、Chrome のブラウザ内で PDF を表示した時に、何気なく Chrome のデベロッパーツールの[Network]タブを開いていました。すると、その開いている pdf ファイルに対して、何度も http のリクエストが行われている様子が見えました。
最初のリクエスト以外は、HTTPのステータスコードは 206 を示しています。
私にとって、HTTPのステータスコード 206 は見慣れないステータスコードでした。
そこで、HTTPのステータスコード 206 について調べてみました。
RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1
http://tools.ietf.org/html/rfc2616#page-60
http://tools.ietf.org/html/rfc2616#page-60
[Studying HTTP] HTTP Status Code
http://www.eonet.ne.jp/~h-hash/status_code.html#Successful
http://www.eonet.ne.jp/~h-hash/status_code.html#Successful
つまり、PDF ファイルをインターネット上の Web サーバからダウンロードした時に、HTTPのステータスコード 206 が何度も現れるということは、PDF ファイルの内容を一度に取得しているわけではなく、PDF ファイルをあるデータ範囲で分割してダウンロードしているということですね。
まとめ
HTTP では、一つのファイルを分割してダウンロードすることができます。そして、分割ダウンロードの各要求が成功すると、HTTP のステータスコードとして、206 が Web サーバから返されることになるわけですね。
この仕組みを知っていると、インターネット上の Web サーバにある巨大なファイルをダウンロードするときに、サーバとクライアント双方によって幸せになれそうな通信の仕方を考えることが出来そうです。
コメントを投稿
コメント投稿機能について