2012-05-08 7 views
2

W3C Schoolsは、 "type属性がリンクされたドキュメントのMIMEタイプを指定する"とし、<a href="http://www.w3schools.com" type="text/html">W3Schools</a>を例として提供します。 text/htmlapplication/zipに変更すると、acceptヘッダーフィールドはでなく、が変更されました。htmlのタグaのtype属性はどのように実装されていますか?

explanation in the specificationには、属性が「純粋に助言」であることも記載されています。つまり、ブラウザは単にそれを無視できますか?

属性が「受け入れ」ヘッダーフィールドに反映されることが予想されます。

+0

@robertc - Webページはリンクの最後に利用可能なリソースを知っていると思いますので、受け入れヘッダーはブラウザでサポートされているリソースタイプとリンクで指定されたタイプの交差点になる可能性があります。交差点が空の場合、ページはアンカーをリンクとして表示することさえできません。それ以外の場合は、変更された受け入れヘッダーをコンテンツネゴシエーションの目的でサーバーで使用できます。ブラウザはこれをしませんが、理論的にはそれが役に立つ方法です。 – Alohci

+0

URL www.example.org/data。 HTMLが要求されると、HTMLページが表示されます。 ZIPが要求された場合、そのデータは圧縮ZIPとして表される必要があります。 HTMLページにはZIP表現へのリンクが含まれています(type = "application/zip")。別のURL(「?zip」など)を指さずに、JavaScriptを使用することもできないようです(http://stackoverflow.com/questions/7464665/ajax-response-content-disposition-attachmentを参照)。 ) – koppor

+0

@kopporは、完全に同意します。 'Accept'ヘッダ値にメディアタイプが含まれていないのはなぜか分かりません。クライアントが何を受け入れるかを言うことができなければ、サーバがクライアントに何かを与えることは非常に困難です! –

答えて

3

type属性は、リンクされたリソースのMIMEタイプを示します。純粋に助言です。値は有効なMIMEタイプでなければなりません。ユーザエージェントは、リソースをフェッチする際に、リソースへのリンクに含まれるメタデータを使用してそのタイプを判断してはならない。それが言うように

は、それは純粋に助言だとユーザーエージェントは、それが権威考慮していなければなりません。言い換えれば、正しいことを保証するものではなく、ちょうどヒントです。私はリンクが非常に迅速に古くなる可能性があるので、これは純粋に実用性に基づいていると思います。リンクはリンク先のリソースの内容を指示することはできません。ユーザーエージェントには、属性を使用してを指定する必要はありません。例えば、ユーザーエージェントが、リンクが(おそらく)PDFファイルにつながることをユーザーに視覚的に指摘するために使用できます。私は今のところユーザーエージェントを認識していません。属性には他に指定された用途がないため、Acceptヘッダーも変更しないでください。

4

仕様には、リンクの後にtype属性に一致するようにUAがAcceptヘッダーを変更する必要があるとは何も記載されていません。言い換えれば、UAは回収されるリソースのタイプを決定するためにtypeに依存してはならないということだけです。

2

type属性は、スクリプトとHTML5オーディオ/ビデオで非常に重要です。 HTML5 JavaScript APIを使用してオーディオ/ビデオにアクセスしている場合(たとえば、ユーザーがゲームをしたときにオーディオを開始する場合)、ブラウザがオーディオ/ビデオのソースとして指定されたファイルを再生できない場合、ビデオノード。

JavaScriptを使用すると、アクセスしようとする前にブラウザでメディアを再生できるかどうかを確認できますが、MIMEタイプだけでなくメディアファイルで使用されているコーデックも認識する必要がありますファイルの拡張子に基づいて推測されます。

これは、type属性が再生される場所であり、JavaScriptはtype属性からその情報を取得し、その種類のメディアを再生できる場合はブラウザに問い合わせます。

メディアの再生中にサーバーから送信されたMIMEタイプはまだ正しい必要がありますが、タイプ属性を持つサーバー上の不適切なMIMEタイプを、HTML5メディアかその他のタグであるかに応じて補正することはできません属性が使用される場所。

関連する問題