Unixでは、インターネットから文書をダウンロードしようとすると、文書を別の名前で保存するように求められ、文書形式(例:.pdf、.mp3 ...など)が提供されます。それでは、まだダウンロードしていないにもかかわらず、カーネルはファイル形式をどのように知ることができますか?
答え1
これはカーネルとは何の関係もありません。ファイルを提供するWebサーバーは、ブラウザにMIMEタイプが何であるか、オプションで使用するファイル名を伝えます。
独自のアバターを例にとると、以下は Gravatar Web サーバーから返されるヘッダーです。
$ curl -I https://www.gravatar.com/avatar/da4d09ebbb789ea0442c6cf98cca8649\?s\=32\&d\=identicon\&r\=PG\&f\=1
HTTP/2.0 200
server:nginx
date:Tue, 21 Feb 2017 17:04:38 GMT
content-type:image/png
content-length:914
last-modified:Wed, 11 Jan 1984 08:00:00 GMT
link:<https://www.gravatar.com/avatar/da4d09ebbb789ea0442c6cf98cca8649?s=32&d=identicon&r=PG&f=1>; rel="canonical"
access-control-allow-origin:*
x-nc:HIT lhr 1
accept-ranges:bytes
expires:Tue, 21 Feb 2017 17:09:38 GMT
cache-control:max-age=300
source-age:817
関連行は、content-type:image/png
そのファイルが適切なファイル名を構成するために使用されるPNGイメージであることをブラウザに通知します(URLの末尾にある合計を使用.png
)。ファイル名は、さまざまなヘッダー項目を使用して提供できます。
この情報は、ファイル自体の個々のバイトをダウンロードする前にHTTPヘッダーで確認できます。