URLに関する質問があります。
RFC 3986 を読みましたが、まだ1つのURLについて質問があります。
URIに機関コンポーネントが含まれる場合、パスコンポーネント
空にするか、スラッシュ( "/")文字で始める必要があります。 URIに権限コンポーネントが含まれていない場合、パスを開始できません
2つのスラッシュ文字( "//")。さらに、URI参照
(セクション4.1)は相対パス参照の場合があります。その場合、
最初のパスセグメントにコロン( ":")文字を含めることはできません。 ABNF
[。 URIサブストリングを説明するために、一般的な用語「パスコンポーネント」を使用します
これらのルールのいずれかとパーサーによって照合されます。
そんなこと知ってる //server.com:80/path/info
は有効です(スキーマ相対URLです)
http://server.com:80/path//info
は有効です。
しかし、次のものが有効かどうかはわかりません。
http://server.com:80//path/info
私の質問の背後にある問題は、Cookieがhttp://server.com:80//path/info
、URIによって作成された場合http://server.com:80/path/info
に制限あり/path
複数のスラッシュを含むURL、それは何かを壊しますか? 、 RLにダブルスラッシュを使用することの欠点はありますか? 、 ダブルスラッシュの意味in URLs? and RFC 3986-Uniform Resource Identifier(URI):Generic Syntax .
コンセンサス:ブラウザはリクエストをそのまま実行し、リクエストを変更しません。 /
文字はパス区切り文字ですが、パスセグメントは次のように定義されます:
path-abempty = *( "/" segment )
segment = *pchar
http://example.com/
の直後のスラッシュは、無限に別のスラッシュが直接続くことを意味します。サーバーはそれを無視するかもしれませんが、あなたが理解したように、ブラウザは無視しません。
表現:
URIに権限コンポーネントが含まれていない場合、パスを2つのスラッシュ文字(「//」)で始めることはできません。
protocol-relative URLs を許可しますが、その場合、権限(例ではserver.com:80
)が存在しない可能性があることを具体的に示します。
だから、はい、それは有効です、いいえ、それを使用しないでください。