web-dev-qa-db-ja.com

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

仕様 によると、リダイレクトで使用されるロケーションヘッダー 必須 サーバー名

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 /検索エンジンがこれをどのように解釈するかですが、他に何かがあれば私は考えていません。それを聞きたいです。

17
Alan Storm

HTTP/1.1標準の現在のバージョン、RFC 2616によると、Locationヘッダーの値 絶対URIである必要があります

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

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

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

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

15
Ilmari Karonen

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

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

今、あなたは言う:

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

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

6
artlung