我正在查看Section 3.4 of RFC 3986试图了解构成有效URI查询参数键的内容,但我没有看到明确的答案。
我问的原因是因为我正在写Ruby class that composes a URI with query parameters。添加新参数时,我想验证密钥。根据经验,如果需要任何转义,密钥似乎无效。
我还应该说我打算验证密钥。我不确定如何验证这些数据,但我知道在所有情况下我都应该逃避这个值。
建议表示赞赏。建议如何通过Ruby Gem来验证验证的可能性。
答案 0 :(得分:3)
我很可能是错的,但那个规格似乎在说'?'或者'#'有效期限。我想知道你是否应该更多关注'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
%HH'替换,百分号和两个十六进制数字表示字符的ASCII代码。换行符表示为“CR LF”对(即,'%0D%0A')。控件名称/值按它们在文档中出现的顺序列出。该名称与值
分开=' and name/value pairs are separated from each other by
&'。
答案 1 :(得分:1)
我不相信key=value
是RFC的一部分,它已经成为一种惯例。 Wikipedia suggests这是“W3C推荐”。
似乎在application/x-www-form-urlencoded
内容类型上搜索了一些好东西。