web-dev-qa-db-ja.com

URLで使用しても安全な特殊文字はどれですか?

URLで使用しても安全な特殊文字はどれですか?

13
YOU

安全な文字は、a-z、A-Z、0-9、および_-(ア​​ンダースコアとマイナス)です。これらは、パラメータに使用される予約文字に加えてです。

他のキャラクターはある程度の問題を引き起こすでしょう。例:1つのパラメーターが配列?param=array[content]の場合、つまり、角かっこでエンコードされたURLが表示されます。

しかし、問題は見苦しいだけでなく、より安全な文字の横にjpgの文字があるとしましょう。多くの場合、ブラウザは404を取得してダウンロードできません。これは古いブラウザと一部のモバイルブラウザの問題です。

これをテストするには?

  • 多くの訪問者がいる公開ページに名前でテストしたい文字を含むimages/js/cssの束を入れます
  • 404ページがヒットするたびにメールを送信する

私は14000通のメールが入った受信トレイを持っています。

10

次の文字は、URLのパスコンポーネントで特別な意味を持ちます(パスコンポーネントは「?」の前にあるすべてのものです)。

  ";" | "/" | "?"

これらに加えて、次の文字はURLのクエリ部分で特別な意味を持ちます(「?」の後のすべて)。したがって、「?」の後にある場合あなたはそれらをエスケープする必要があります:

  ":" | "@" | "&" | "=" | "+" | "$" | ","

より詳細な説明については、 RFC を参照してください。

11
Thomas Bonini

ここでの答えは良いですが、言及する価値があると思うもう1つの例外があります-英語以外の文字。 このSFの質問 を参照すると、ñ(Españolのような)のような文字は、DNSで正しくエンコードされていれば、完全に合法です。

DNS内で Punycode を使用して最新のブラウザで解決する必要があります(españolのエントリはxn--espaol-zwaです)が、これらはドメイン名で使用しても安全です。英語を話さない人でも簡単に入力できます。

3
Mark Henderson