1. ホーム
  2. html

[解決済み] URLにスペースを入れてもいいのでしょうか?

2022-05-15 01:02:03

質問

URI (具体的には HTTP URL) には、1 つ以上の空白文字を含めることができますか?もし URL が がエンコードされている場合 + は一般的に守られている慣習なのでしょうか、それとも正当な代替案なのでしょうか?

特に、誰かが RFC を指し示し、URL にスペース がエンコードされていることを示す RFC をどなたか教えてください。

質問の動機。 ある Web サイトをベータテストしているとき、いくつかの URL がスペースで構築されていることに気づきました。Firefox は正しいことをするようで、私を驚かせました。しかし、私は、開発者がこれらの URL を修正する必要性を感じるように、RFC を指し示すことができるようになりたいと思いました。

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

以下の通りです。 RFC 1738 :

<ブロッククオート

安全でない。

文字は様々な理由で安全でなくなることがあります。 スペース 文字が安全でないのは、重要なスペースが消えたり 重要でないスペースが入る可能性があるからです。 タイプセットされたり、ワープロソフトで処理されたりしたときに、重要なスペースが消えたり、重要でないスペースが入ったりする可能性があるためです。 文字 "<"">" が安全でないのは、これらが自由形式の URL の区切り文字として使われているからです。 自由形式のテキストで URL を囲むデリミタとして使われるため、安全ではありません。 """ ) は は、URL の区切りとして使われます。 文字 "#" は安全ではありません。 World Wide Web やその他のシステムで使用されているため、常にエンコードしておく必要があります。 というのは、WWWや他のシステムで、URLの後に続くかもしれないフラグメント/アンカー識別子からURLを区切るために使われるからです。 を区切るために使われるからです。 文字 "%" は安全ではありません。 他の文字のエンコーディングに使用されるため、安全ではありません。 他の文字が安全でないのは ゲートウェイや他のトランスポートエージェントは、時々そのような文字を修正することが知られているからです。 他の文字が安全でないのは、ゲートウェイや他のトランスポートエージェントがそのような文字を修正することがあるからです。これらの文字は "{" , "}" , "|" , "\" , "^" , "~" , "[" , "]" そして "`" .

安全でない文字はすべて、常に URL 内でエンコードする必要があります。 . 例えば 例えば、文字 "#" は URL 内でエンコードされなければなりません。 通常フラグメントやアンカーを扱わないシステムであっても を使用する別のシステムにURLをコピーする場合、URLのエンコードを変更する必要がないようにするためです。 URL がそれらを使用する別のシステムにコピーされた場合でも、URL のエンコーディングを変更する必要がないからです。