178

のような URL はhttp://example.com/foo?bar有効ですか?

いずれかの方法で何か公式へのリンクを探しています。単純な「はい/いいえ」の答えや事例証拠だけでは十分ではありません。

4

9 に答える 9

131
  • URIRFCに有効
  • サーバー側のフレームワーク/コードに受け入れられる可能性が高い

URI RFCは、クエリ文字列の形式を義務付けていません。クエリ文字列には名前と値のペアが含まれることがよくありますが、必須ではありません(たとえば、別のURIが含まれることがよくあります)。

3.4。クエリ

クエリコンポーネントには非階層データが含まれており、パスコンポーネント(セクション3.3)のデータとともに、URIのスキームと命名機関(存在する場合)のスコープ内のリソースを識別するのに役立ちます。..。

...ただし、クエリコンポーネントは、「key = value」ペアの形式で識別情報を運ぶためによく使用され、頻繁に使用される1つの値は、別のURIへの参照です...

HTMLは、HTTP GETを介して送信されたフォームが、フォーム値を「?key1 = value1&key2 = value2 ...」(適切にエンコードされた)の名前と値のペアとしてエンコードする必要があることを確立します。クエリ文字列の解析は、サーバー側のコード(Javaサーブレットエンジンなど)次第です。

使用しているサーバー側フレームワークがある場合はそれを特定しませんが、サーバー側フレームワークは、クエリ文字列が常に名前と値のペアであると想定し、そうでないクエリ文字列でチョークする可能性があります。その形式で(例?bar)。クエリ文字列を解析する独自のカスタムコードの場合は、そのクエリ文字列形式を確実に処理する必要があります。フレームワークの場合は、ドキュメントを参照するか、単にテストして、その処理方法を確認する必要があります。

于 2010-12-29T20:53:52.980 に答える
112

それらは完全に有効です。彼らは、暴徒のメッセンジャーの後ろに静かに立っている大きな筋肉質の男と同等であると考えることができます. その男には名前がなく、言葉もありませんが、彼の単なる存在は情報を伝えます.

于 2010-12-29T20:15:11.537 に答える
10

「「http」スキームは、HTTPプロトコルを介してネットワークリソースを見つけるために使用されます。このセクションでは、httpURLのスキーム固有の構文とセマンティクスを定義します。」http://www.w3.org/Protocols/rfc2616/rfc2616.html

http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]] 

そうです、疑問符の後には何でも有効です。サーバーの解釈は異なる場合がありますが、逸話的に、一部の言語では、リストされている場合に真であるブール値としてそれを処理していることがわかります。

于 2010-12-29T20:06:25.423 に答える
9

はい、有効です。

パラメータが存在するかどうかを単に確認したい場合、これはそのための1つの方法です。

于 2010-12-29T20:05:31.160 に答える
3

これは有効です: WikipediaRFC 1738 (3.3. HTTP)RFC 3986 (3. Syntax Components)を参照してください。

于 2010-12-29T20:08:30.213 に答える
3

isindexnameHTML5 から廃止されたマジック

この非推奨の機能により、フォーム送信でそのような URL を生成できるようになり、HTML に対して有効であるというさらなる証拠が提供されます。例えば:

<form action="#isindex" class="border" id="isindex" method="get">
  <input type="text" name="isindex" value="bar"/>
  <button type="submit">Submit</button>
</form>

次のタイプの URL を生成します。

?bar

標準: https://www.w3.org/TR/html5/forms.html#naming-form-controls:-the-name-attribute

isindexただし、https ://stackoverflow.com/a/41689431/895245 に記載されているように非推奨です。

于 2016-06-01T21:22:27.470 に答える