HTTP 要求 URI に「..」セグメントを含めることは許可されていますか?
RFC 2616 のセクション 5.1.2 によると、絶対 URI または絶対パスを参照できます (そのセクションの他のオプションは、この質問には関係ありません)。
絶対 URI と絶対パスの意味は、RFC 3986 で説明されています。RFC 3986 では、パスを正規化するアルゴリズムも説明されています (これには、単一および二重ドット要素の削除が含まれます)。
ただし、RFC 準拠のリクエスト URI に「..」セグメントを含めることができるかどうかの正確な仕様を見つけることができません。それらは絶対パス/URI で許可されており、サーバーはそのような URI を正規化する必要がありますか? それともクライアント次第?
"Location:" 応答ヘッダーに違いはありますか? 仕様によると、絶対URIのみを含めることができますが、「..」の部分は含まれますか? 参照されたリソースを要求する前に、クライアントもそれらを正規化する必要がありますか?
../foo
明確にするために、これらの状況では のような URI が違法であることは知っていますが、ではどうhttp://example.com/../foo
でしょうか? それは有効な絶対 URI ですか?
現在、クライアントをそのような URI にリダイレクトしていますが、それが仕様に準拠しているかどうかを知りたいです。