2015-09-16 5 views
11

相対リダイレクト(つまり、HTTP Location:ヘッダーの相対URL)は、もともとRFC 2616, section 14.30に基づいてサポートされていませんでした。しかし、これは「仕様のバグ」として記述され、後でRFC 7231, section 7.1.2に変更されました。したがって、相対リダイレクトは現在「正式にサポートされています」。相対リダイレクトをサポートしていないHTTPクライアントの既知のケースはありますか?

私の質問は:HTTPクライアント(ブラウザ、ツール、ライブラリ...)ないは相対的なリダイレクトをサポートする任意の既知の例はありますか?

アップデート:また 、有効な回答は、バージョン番号の範囲と一緒に、相対的なリダイレクトを受け入れることが知られているHTTPクライアントの完全なリストを提供することができます。

+3

私は現在、相対リダイレクトをサポートしていないhttpクライアントを作成したいと考えています。 :-) – Nathan

+0

これは良いことです:-) – Grodriguez

+0

誰もが網羅的なリストを提供できるとは思わない... – MrTux

答えて

3

私はいくつかの調査をしていましたが、実際にはほとんどのブラウザ(およびGoogle検索のボット)がその機能をサポートしているようです。私は決定的なリストを得ることができませんでした。最終的には10000個のHTTPクライアントが存在し、それぞれに独自の方法でヘッダーフィールドを処理します(一部は完全に無視することもあります)。

RFC 7231がかなり新しくなった(2014)ので、私の推薦はそれにはカウントしないことです。 Postel's lawの後に(「あなたが送るものを保守して、あなたが受け入れるもので自由になりなさい」)明確な基準を守ることは常に良い考えであり、リダイレクトにドメインを追加することはあまり問題ではないと思います。

+0

簡単です。例えば使用される場合。 apache httpdを使用すると、Locationヘッダーが自動的に書き換えられる可能性があります。 – MrTux

+1

私は間違いなく10000クライアントのリストを必要としませんが、おそらく最もよく使われるリストが役立ちます。 Postelについて:RFC 7321は、実際には編集者が「RFC 2616」仕様のバグであると考えられていたものを修正し、これは常にすべての主要なブラウザでサポートされていたと主張していました。 Re。 「リダイレクトにドメインを追加することはあまり問題にはなりません」:それは異なります。私のユースケース(複雑なプロキシシナリオ)では、サーバでも、元のドメインを知らない**や**(より重要)プロトコル(だけでなく、HTTPSトンネルとして代理行為)。 – Grodriguez

0

「HTTPプロトコルに従って、Locationヘッダが 絶対URIを含んでいなければならない。 同じサイト内のあるページから別のページにリダイレクトする場合、[5]は、相対URIを使用する一般的な間違いです。結果として、 ほとんどのブラウザはLocationヘッダーの相対URIを許容しますが、一部の ブラウザはエンドユーザーに警告を表示します。

から:http://en.wikipedia.org/wiki/URL_redirection#Using_server-side_scripting_for_redirection


個人的に私は、長年にわたって相対リダイレクトを使用してきたし、彼らは私がテストしたすべての単一のデスクトップ/モバイルブラウザと検索ボットでは動作し、話します。 ウェブマスターダッシュボードのfetch as googleツールを使用して、たとえばGoogle botをテストできます。

これはおそらく範囲外ですが、googleもJavaScriptのリダイレクト(window.location)に従っています。

+0

ウィキペディアは信頼できるリファレンスではありません。 RFCはそうです。質問で指摘されているように、RFC 7231を参照してください。 – Grodriguez

+1

ウィキペディアの記事はRFC HTTPプロトコルを引用しました。それはRFC 2616引用した場合 –

+1

、それはあなたが私の質問のリンクをたどっていた場合、あなたが知っているだろうとして、廃止されたRFCを引用しました。私は、ウィキペディアのどのバージョンを知らないところで、あなたが見ていたが、あなたが実際にリンクされているセクションは言う:「HTTP/1.1は、相対URI参照または絶対URI参照のいずれかが可能になります」 RFC 7231を引用しています(このテキストは2014年7月以降に編集されていません)。 – Grodriguez

関連する問題