7

http://asdf.com/something.do?param1=true?param2=false形式的网址是否有效?

我不认为是第二个?在有效的 url 中是允许的,它应该是一个 & 符号,但我在 http 1.1 rfc 中找不到任何关于这个的东西。有任何想法吗?

4

4 回答 4

7

使用无效?再次。? 应该指明参数列表的开始。& 应该分隔参数。

来自RFC 3986

URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

来自RFC 1738

HTTP URL 采用以下形式:

http:// <host> : <port> / <path> ? <searchpart>

其中<host><port>在第 3.1 节中描述。如果:<port> 省略,则端口默认为 80。不允许使用用户名或密码。 <path>是一个 HTTP 选择器,<searchpart>是一个查询字符串。<path>是可选的,和<searchpart>它前面的“?”一样。如果两者<path>都不<searchpart>存在,“/”也可以省略。

<path>and<searchpart>组件中,“/”、“;”、“?” 被保留。在 HTTP 中可以使用“/”字符来指定层次结构。

此处描述了搜索部分/查询部分

于 2009-03-04T20:22:53.217 回答
5

使用 & 表示第二个和第三个

http://asdf.com/something.do?param1=true¶m2=false

于 2009-03-04T20:22:23.187 回答
1

应用程序/x-www-form-urlencoded

这是默认的内容类型。使用此内容类型提交的表单必须编码如下:

  1. 控件名称和值被转义。空格字符被替换为+,然后保留字符被转义,如 [RFC1738] 第 2.2 节所述:非字母数字字符被替换为%HH、一个百分号和两个表示字符 ASCII 代码的十六进制数字。换行符表示为“CR LF”对(即%0D%0A)。
  2. 控件名称/值按照它们在文档中出现的顺序列出。名称与值之间由 分隔=,名称/值对之间由 分隔&

应用程序/x-www-form-urlencoded

于 2009-03-04T20:26:43.720 回答
0

如前所述,再次使用它是无效的。但是,如果您有 ? 字符作为参数值的一部分,您可以将其编码为 %63(就像被编码为 %20 的空格字符一样)。

于 2009-03-04T20:42:33.090 回答