URLにスペースを含めることはできますか? 質問する

URLにスペースを含めることはできますか? 質問する

URI(特にHTTP URL)には1つ以上のスペース文字を含めることができますか?URLがしなければならないエンコードされるのは、+単に一般的に従う慣例なのでしょうか、それとも正当な代替手段なのでしょうか?

特に、スペースを含むURLはしなければならないエンコードされますか?

質問の動機:Web サイトのベータ テスト中に、一部の URL にスペースが含まれていることに気付きました。Firefox は適切に処理しているようで、驚きました。しかし、開発者に RFC を示して、それらの URL を修正する必要性を感じてもらいたいと思いました。

ベストアンサー1

に従ってRFC 1738:

安全ではありません:

キャラクターが安全でない理由はいくつかあります。スペース文字は、URL が転記またはタイプセットされたり、ワードプロセッサ プログラムで処理されたりするときに、重要なスペースが消えたり、重要でないスペースが導入されたりする可能性があるため、安全ではありません。文字 および は"<"">"フリー テキスト内の URL を囲む区切り文字として使用されるため安全ではありません。引用符 ( """) は、一部のシステムで URL を区切るために使用されます。 文字 は"#"安全ではなく、常にエンコードする必要があります。これは、この文字が World Wide Web や他のシステムで、URL と、それに続くフラグメント/アンカー識別子を区切るために使用されるためです。 文字 は、他の文字のエンコードに使用されるため安全ではありません。その他の文字は、ゲートウェイやその他のトランスポート エージェントがこのような文字を変更することが"%"あるため安全ではありません。これらの文字は"{"、、、、、、、、、、、およびです。"}""|""\""^""~""[""]""`"

安全でない文字はすべてURL内で常にエンコードされる必要がありますたとえば、"#"通常はフラグメント識別子やアンカー識別子を扱わないシステムでも、文字は URL 内でエンコードされる必要があります。そうすることで、フラグメント識別子やアンカー識別子を使用する別のシステムに URL をコピーした場合でも、URL エンコードを変更する必要がなくなります。

おすすめ記事