http://asdf.com/something.do?param1=true?param2=false形式的网址是否有效?
我不认为是第二个?在有效的 url 中是允许的,它应该是一个 & 符号,但我在 http 1.1 rfc 中找不到任何关于这个的东西。有任何想法吗?
http://asdf.com/something.do?param1=true?param2=false形式的网址是否有效?
我不认为是第二个?在有效的 url 中是允许的,它应该是一个 & 符号,但我在 http 1.1 rfc 中找不到任何关于这个的东西。有任何想法吗?
使用无效?再次。? 应该指明参数列表的开始。& 应该分隔参数。
来自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 中可以使用“/”字符来指定层次结构。
此处描述了搜索部分/查询部分。
使用 & 表示第二个和第三个
应用程序/x-www-form-urlencoded
这是默认的内容类型。使用此内容类型提交的表单必须编码如下:
- 控件名称和值被转义。空格字符被替换为
+
,然后保留字符被转义,如 [RFC1738] 第 2.2 节所述:非字母数字字符被替换为%HH
、一个百分号和两个表示字符 ASCII 代码的十六进制数字。换行符表示为“CR LF”对(即%0D%0A
)。- 控件名称/值按照它们在文档中出现的顺序列出。名称与值之间由 分隔
=
,名称/值对之间由 分隔&
。
如前所述,再次使用它是无效的。但是,如果您有 ? 字符作为参数值的一部分,您可以将其编码为 %63(就像被编码为 %20 的空格字符一样)。