1. ホーム
  2. url

[解決済み] クエリ文字列の前にあるスラッシュを飛ばしても良いですか?

2023-04-07 19:11:21

質問

クエリ文字列を追加するとき、常に末尾のスラッシュをスキップしても大丈夫ですか?

つまり

http://example.com?querystring

の代わりに

http://example.com/?querystring

? 私が利用したすべてのウェブホストはこれをサポートしていますが、すべてのサーバー環境がこの方式をサポートすると考えてもよいのでしょうか?標準的なものなのでしょうか?

どのように解決するのですか?

いいえ、スラッシュをスキップするのは正しくありません。 それは はモダンブラウザで動作するかもしれません: しかし、それはそれが正しいとは限りません。

参照 RFC1738 - URL RFC2396 - URI .

RFC1738による形式(ここではスキーマ形式は除外しています)。

//<user>:<password>@<host>:<port>/<url-path>

そして、さらにこう記されています。

<ブロッククオート

...ホスト(またはポート)とURLパスの間の"/"は、URLパスの一部ではありません。

この場合、"?" は url-path の一部です。

<ブロッククオート <ブロッククオート

...使用されているスキームに依存し、それが解釈される方法にも依存します。

また、仕様上、以下のようにすることは完全に有効であることに注意してください。 を省略することができます。 "/url-path" -- この場合、"/" は明示的に含まれていることに注意してください。

したがって、"foo.com?bar" は、url-path の前に "/" がないため無効となります。