相対位置ヘッダーを使用した場合の結果は何ですか?


17

仕様によるとリダイレクトで使用されるLocationヘッダーにはサーバー名が必要です

HTTP/1.1 301 Moved Permanently
...
Location: http://example.com/foo/baz/bar

ただし、2012年には、ほとんどのWebブラウザーは相対パスを認識し、元のサーバー名を使用して新しい場所にリダイレクトします

HTTP/1.1 301 Moved Permanently
...
Location: /foo/baz/bar

Locationヘッダーで相対URLを使用すると、否定的/驚くべき結果がありますか?私が特に懸念しているのは、Google /検索エンジンがこれをどのように解釈するかですが、他に何か考えていないことがあれば、それを聞きたいです。


その要件を取得している正確なビットを引用できますか?挑戦的ではありませんが、私はただそれをすぐに見ず、RFC全体を読んでそれを見つける気にならないだけです。また、HTTP 1.0仕様を引用していますが、例ではHTTP 1.1ヘッダーを使用しています。(許可されるコンテンツは変更される場合と変更されない場合があります。)
Su

10.11セクション。tools.ietf.org/html/rfc1945#page-44 1.1仕様には、これを「修正」するものは何もありません。
アランストーム

回答:


15

HTTP / 1.1標準の現在のバージョンであるRFC 2616によると、Locationヘッダーの値は絶対URIでなければなりません

ただし、最終的にRFC 2616を置き換えるためにHTTPbisワーキンググループによって準備されたドラフト標準では、これは相対URIも許可するように変更されまし

「[RFC 2616]のLocationヘッダーの定義は、少なくともWebブラウザーがWeb上のコンテンツと相互運用するためにそれらを処理する方法のさまざまな点で異なります。」

実際には、ほとんどすべての主要なブラウザーと検索エンジンは、相対URLへのHTTPリダイレクトを理解して受け入れます。ただし、いつかHTTPbisドラフトが公式の標準になり、広く採用されるまで、レターに対する現在の標準を実装し、絶対URLのみを受け入れる新しいユーザーエージェントが常に存在します。したがって、現時点では、ポステルの法則で示唆されているように、ヘッダーで絶対URLのみを使用することが安全です。Location

「あなたが送るものには保守的で、あなたが受け入れるものには寛大になりなさい。」


3
RFC 2616は7231で廃止され、Locationヘッダーの相対URLが許可されます。手紙に標準を実装するユーザエージェントは、したがって、今、相対URLを受け入れます
ZoFreX

6

HTTP 1.1 RFC http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30のセクション14.30に大きな違いはありません。これに関する実際の実際的な制限が表示されることはわかりません。

この問題についての警告さえ見たのは、Lynxでテストしたときに場所が絶対ではなかったときだけです。「場所の値は絶対ではありません」という警告が表示されます。新しい場所に。Lynx 2.8.7をテストしましたが、設定の問題かもしれませんが、それはもうしません。

今、あなたは言う:

私が特に懸念しているのは、Google /検索エンジンがこれをどのように解釈するかですが、他に何か考えていないことがあれば、それを聞きたいです。

これはテストに値すると信じています。URLを設定し、それをサイトのxml sitemapに配置し、そのURLを説明どおりにリダイレクトします。すべきことは、Google Webmaster Toolsを使用して確認し、マイナスの結果があるかどうかを確認することだと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.