1

私が理解している限り、URLは次のフィールドで構成されています。

  • プロトコル(http、https、ftpなど)
  • ユーザー名
  • ユーザーのパスワード
  • ホストアドレス(IPアドレスまたはDNS FQDN)
  • ポート(暗示することができます)
  • サーバードキュメントルート内のドキュメントへのパス
  • 引数と値のセット
  • ドキュメント部分(#)

なので

protocol:// user:password @ host:port / path / document?arg1 = val1&arg2 = val2#part

しかし、パス部分で「http://」を使用した例に出会ったばかりです。ターゲットURLを(完全な形式で、 「http://」)を独自に使用します。標準の観点からは問題ないと見なされますか?何も壊れませんか?通常、有効なURL内の「//」ダブルスラッシュ、コロン、または「#」に出会うことは期待していませんが、上記の例の場所にあります。

4

1 に答える 1

1

いいえ、標準の観点からは問題ありません。

RFC-2396のセクション3.3パスコンポーネントにより、パスに次の文字を含めることはできません-"/", ";", "=", and "?"

通常、ブラウザはhttpリクエストを行う前に、このような不正な形式のURIをエンコードします。これが、実際に機能する理由です。

于 2012-08-27T13:28:42.233 に答える