web-dev-qa-db-ja.com

有効なURLクエリ文字列とは何ですか?

URLクエリ文字列で使用できる文字は何ですか?

クエリ文字列は特定の形式に従う必要がありますか?

11
Aran Mulholland

あたり http://tools.ietf.org/html/rfc3986

セクション2.2予約文字には、次の文字がリストされています。

予約済み= gen-delims/sub-delims

gen-delims =“:” /“ /” /“?” /“#” /“ [” /“]” /“ @”

サブデリム=「!」 /“ $” /“&” /“ ’” /“(” /“)” /“ *” /“ +” /“、” /“;” /“ =”

仕様はそれから言う:

URIコンポーネントのデータが区切り文字としての予約文字の目的と競合する場合は、URIを形成する前に、競合するデータをパーセントエンコードする必要があります。

次に、セクション2.3予約されていない文字に、以下がリストされています。

unreserved = ALPHA/DIGIT /“-” /“。” /「_」/「〜」

11
Steven

ウィキペディアにはあなたの答えがあります: http://en.wikipedia.org/wiki/Query_string

"URLエンコード:一部の文字はURLの一部にすることができず(たとえば、スペース)、その他の一部の文字はURLで特別な意味を持ちます:forたとえば、文字#を使用して、ドキュメントのサブセクション(またはフラグメント)をさらに指定できます。文字=は、名前と値を区切るために使用されます。これらの制約を満たすために、クエリ文字列を変換する必要がある場合があります。 URLエンコードと呼ばれるスキーマを使用して行われます。

特に、クエリ文字列のエンコードには次のルールが使用されます。

  • 文字(A-Zおよびa-z)、数字(0-9)、および文字 '。'、 '-'、 '〜'、および '_'はそのまま残されます
  • スペースは「+」または%20 [要出典]としてエンコードされます
  • 他のすべての文字は%FF 16進表現としてエンコードされ、非ASCII文字は最初にUTF-8(または他の指定されたエンコード)としてエンコードされます。

チルダ( "〜")文字に対応するオクテットは、古いURI処理の実装では "%7E"としてエンコードされることがよくあります。 「%7E」は、解釈を変更せずに「〜」に置き換えることができます。 SPACEを「+」としてエンコードし、「現状のまま」の文字を選択すると、このエンコードはRFC1738と区別されます。」

形式に関しては、クエリ文字列は名前と値のペアです。 ?クエリ文字列をURLから分離します。名前と値の各ペアはアンパサンド(&)で区切られ、名前(キー)と値は等号(=)で区切られます。例えば。 http://domain.com?key=value&secondkey=secondvalue

私が提供したウィキペディアリファレンスのStructureの下:

  • 疑問符は区切り文字として使用され、クエリ文字列の一部ではありません。
  • クエリ文字列は、一連のフィールドと値のペアで構成されます
  • 各ペア内で、フィールド名と値は等号「=」で区切られます。
  • 一連のペアは、アンパサンド「&」(またはHTMLに埋め込まれ、...によって生成されないURLの場合はセミコロン「;」)で区切られます。以下を参照してください。
  • W3Cは、すべてのWebサーバーがアンパサンド区切り文字[6]に加えてセミコロン区切り文字をサポートし、アンパサンドをエンティティエスケープすることなくHTMLドキュメント内のURLでapplication/x-www-form-urlencodedクエリ文字列を使用できるようにすることをお勧めします。
11
Clarice Bouwer

このリンクには、必要な答えとフォーマットされた値があります。

https://perishablepress.com/url-character-codes/

あなたの便宜のために、これはリストです:

<     %3C
>     %3E
#     %23
%     %25
{     %7B
}     %7D
|     %7C
\     %5C
^     %5E
~     %7E
[     %5B
]     %5D
`     %60
;     %3B
/     %2F
?     %3F
:     %3A
@     %40
=     %3D
&     %26
$     %24
+     %2B
"     %22
space     %20
1
Silvester Tony