URLで安全に使用できる特殊文字はどれですか?


13

URLで安全に使用できる特殊文字はどれですか?


2
URLで使用するのに安全でない特殊文字を尋ねる方がはるかに迅速かつ簡単です(以下のAndreas Boniniの回答による)。
マークハットン

2
安全でないものを尋ねるのは答えるのが難しいです:非ASCII文字はすべてパーセントエンコードする必要があります。
ネオ

2
@neo:いいえ、そうではありません:O
トーマスボニーニ

回答:


10

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

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

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

これをテストするには?

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

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


5
まあ、「安全なキャラクター」の代わりに「非常に安全なキャラクター」と言います-仕様ではもっと多くのことができますが、ここでは保守的である方が良いことに同意します。
ジェフアトウッド

2
期間の何が問題になっていますか?
シロナガスクジラ

11

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

  ";" | "/" | "?"

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

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

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


3
もちろん、わかりやすくするために、この答えは質問の反対です。質問では、安全でないキャラクターではなく、安全なキャラクターを尋ねます。元の質問にしっかりと答えるのは難しいので、おそらく質問を編集して、他の方法で質問に答えて、この答えに一致させる必要があります。
マークハットン

3

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.