构成有效的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
内容类型上找到了一些好东西。