什么构成有效的URI查询参数键?

时间:2014-12-01 18:29:07

标签: ruby validation uri

我正在查看Section 3.4 of RFC 3986试图了解构成有效URI查询参数键的内容,但我没有看到明确的答案。

我问的原因是因为我正在写Ruby class that composes a URI with query parameters。添加新参数时,我想验证密钥。根据经验,如果需要任何转义,密钥似乎无效。

我还应该说我打算验证密钥。我不确定如何验证这些数据,但我知道在所有情况下我都应该逃避这个值。

建议表示赞赏。建议如何通过Ruby Gem来验证验证的可能性。

2 个答案:

答案 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内容类型上搜索了一些好东西。