ユーザーの一部として@
シンボルを使用しても安全ですか?たとえば、可能なURLはhttp://example.com/@dave
です。
考えは、今日では、ユーザーは一般的に「@user」と呼ばれているので、なぜユーザーページを「@username」にしないのでしょうか?
percent-encode として@
の場合、HTTP URIパスで%40
文字を使用できます。
多くのブラウザでは、まだ@
として表示されますが、 URIをテキストドキュメントにコピーアンドペーストすると、%40
になります。
パーセントエンコーディングの代わりに、HTTP URIパスで@
を直接使用できます。
URIの path の構文を参照してください。関係のないさまざまな句は別として、パスはsegment
、segment-nz
、またはsegment-nz-nc
セットの文字で構成されます。 segment
およびsegment-nz
は、pchar
セットの文字で構成され、次のように定義されます。
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
ご覧のとおり、@
は明示的にリストされています。
segment-nz-nc
セットは、@
文字も明示的にリストします。
segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
したがって、このようなHTTP URIは完全に有効です。
http://example.com/@dave
ウィキペディアのページの例を次に示します。
http://en.wikipedia.org/wiki/%22@%22_%28album%29
ご覧のとおり、"
、(
、および)
文字はパーセントエンコードされていますが、@
および_
が直接使用されています。
URLで@記号を使用できますか? -はい、できます!
@文字、16進値40、10進値64は、URIの予約文字であることに注意してください。使用法は、mailto:
URIの電子メールアドレス、たとえばmailto:[email protected]
など、およびURIでユーザー名とパスワード情報を渡すことです(これは悪い考えですが、可能です):http://username:[email protected]
パスに@記号を含むURLが必要な場合は、「 RL-encoding 」でエンコードする必要があります。例:http://somewhere.foo/profile/username%40somewhere.foo
最新のブラウザはすべてこれを http://somewhere.foo/profile/[email protected] として表示し、@-signに入力されたものを%40
に変換するため、簡単につかいます。
多くのWebフレームワークは、URLエンコードされたURLとの間で自動的に、またはヘルパー機能を使用して変換するのにも役立ちます。
要約すると、はい、URLで@-symbolを使用できますが、エンコードできないことを確認する必要があります@-characterを使用します。
RFC では、次の文字:
! * '(); :@&= + $、/? %#[]
予約されている:
予約文字の目的は、URI内の他のデータと区別できる区切り文字のセットを提供することです。
したがって、これらの文字をエンコードせずに使用することは推奨されません。