コンテンツ ネゴシエーション (および異なるコンテンツ/ヘッダーを異なるユーザー エージェントに提供すること) に関する 1 つの問題は、プロキシ サーバーです。以下を考慮します。私は Netscape の 4 日間にこれに遭遇し、それ以来、サーバー側のスニッフィングをためらっていました。
ユーザー A が Firefox でページをダウンロードし、XHTML/XML コンテンツ タイプを取得します。ユーザーの ISP にはユーザーとサイトの間にプロキシ サーバーがあるため、このページはキャッシュされます。
同じ ISP であるユーザー B が、Internet Explorer を使用してページを要求します。リクエストが最初にプロキシにヒットすると、プロキシは「ねえ、そのページがあります。ここにあります。application/xhtml+xmlとして」と言います。ユーザー B はファイルをダウンロードするように求められます (IE は application/xhtml+xml.xml として送信されたものをすべてダウンロードするため)。
この特定の問題は、この456 Berea Streetの記事で説明されているように、 Vary ヘッダーを使用して回避できます。また、これらの自動検出に関して、プロキシ サーバーが少し賢くなったと思います。
ここで、HTML/XHTML である CF が忍び込み始めます。コンテンツ ネゴシエーションを使用して、application/xhtml+xml をユーザー エージェントの 1 つのセットに提供し、text/html を別のユーザー エージェントのセットに提供する場合、依存していることになります。サーバーとユーザーの間のすべてのプロキシが適切に動作するようにします。
世界中のすべてのプロキシ サーバーが Vary ヘッダーを認識できるほどスマートであったとしても (そうではありません)、世界中のコンピューター用務員と戦わなければなりません。世界には、頭が良く、才能があり、献身的な IT プロフェッショナルがたくさんいます。インストーラー アプリケーションをダブルクリックして、「インターネット」がメニューの青い E だと思って日々を過ごしているあまり賢くない人が増えています。誤って構成されたプロキシは、ページとヘッダーを不適切にキャッシュする可能性があり、運が悪い.