构成有效的URI查询参数密钥的是什么?

我正在查看RFC 3986的第3.4节,试图了解什么构成了有效的URI查询参数密钥,但我没有看到明确的答案。

我问的原因是因为我正在编写一个Ruby类,它构成了一个包含查询参数的URI。 当添加新参数时,我想验证密钥。 根据经验,如果它需要任何转义,似乎关键将是无效的。

我也应该说我打算验证关键。 我不确定如何验证这些数据,但我知道在任何情况下我都应该逃避这个价值。

建议表示赞赏。 在通过说Ruby Gem验证可能已经成为可能的情况下提供建议也是一个优点。


我很可能是错的,但是这个规范似乎是说任何跟随'?'的东西。 或'#'只要有效。 我想知道你是否应该更多地关注'application / x-www-form-urlencoded'的规范(即我们都习惯的键/值对)?

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1

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

控制名称和值被转义。 空格字符由+', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by替换+', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by %HH',百分号和两个十六进制数字代替字符的ASCII代码。 换行符表示为“CR LF”对(即'%0D%0A')。

控件名称/值按它们在文档中出现的顺序列出。 名称与值分隔=' and name/value pairs are separated from each other by=' and name/value pairs are separated from each other by


我不认为key=value是RFC的一部分,这是一个已经出现的约定。 维基百科建议这是'W3C推荐'。

似乎在application/x-www-form-urlencoded内容类型上找到了一些好东西。

  • http://www.w3.org/TR/REC-html40/interact/forms.html#form-data-set
  • 链接地址: http://www.djcxy.com/p/17589.html

    上一篇: What constitutes a valid URI query parameter key?

    下一篇: HTTP query and URI encoding doubts