2009-08-24 9 views
0

返されたデータに複数の有効なMIMEタイプが含まれている可能性のあるリクエストについて、HTTP Content Negotiationで何をすべきかと思いました。例えばCanonicalと要求されたタイプのコンテンツネゴシエーション

私は以下の可能性のMIMEタイプを持っているいくつかの任意のデータを持っていると言う場合:

text/data,application/x-data,application/data+xml 

は私のWebアプリケーションからこの形式のデータを要求するクライアント・アプリケーションは、合理的にはできるだけ複数のMIMEタイプがあることを考えます彼らの要求のAcceptヘッダーで使用するMIMEタイプのどれに関係なく、その種のデータを受け取ることを期待します。しかし、一般的には、このデータのカノニカルタイプがどのタイプであるかについてコンセンサスがあります(つまり、IETFに登録された適切なMIMEタイプと、事前登録タイプまたは事前標準化タイプがあります)。

私の質問は、これらの要求に返信すると、返されたContent-Typeヘッダーを標準型または要求された型に設定する必要がありますか?どちらが良い練習ですか?

正規のタイプを常に返す必要がありますか?更新されていない古い/不適切に書かれたアプリケーションとの互換性を保証するために、要求されたタイプをエコーバックする必要がありますか?現在のところ、標準的な型が返されています。これは、これがより良いアプローチであると思われ、私が扱うデータ型でほとんどの人がやっていることです。

これはやや主観的であるあなたは、それは私が知っていると私はそれが

答えて

0

ユーザエージェント(クライアントアプリケーション)が、リソースを要求すると変更することを検討します代わりに、質問のコミュニティのwikiされるべきだと思うので、もし彼らその1つの要求されたリソースのいくつかの異なるMIMEタイプを検出します。これは互換性の理由から、ユーザーエージェントが受け入れ可能なものをWebサーバーに知らせるために発生します。サーバーの仕事は、リソースのMIMEタイプが実際にどのようなものかを判断することです。

適切な応答を見つけるためにサーバー側でいくつかの決定を下すことに傷つくことはありません。たとえば、すべてのHTMLページをXMLとして提供したいが、メジャーなユーザーエージェントが必要なMIMEタイプをサポートしていない場合は、PHPやASPなどの支援技術を使用して動的応答を提供することができます。この例の場合、正解として正しいMIMEタイプを設定し、ユーザーエージェントが標準をサポートしていない場合は、サポートする別のものを提供してください。そうでなければ誰でも標準を取得します。

+0

私の場合、MIMEタイプはすべて同じデータフォーマットの有効なタイプです(返されるデータはタイプに関係なく同じです)。したがって、適切なレスポンスを生成することはできませんが、どのMIMEタイプをContent-Type header – RobV

+0

その場合、最も広くサポートされていると思われるものを選択し、最も適切なものを選択します。 –

関連する問題