ch.*_*ida 62 url uri http request.querystring query-string
假设我有这样的网址:
http://www.example.com?key=123&KEY=198
Run Code Online (Sandbox Code Playgroud)
那将是什么结果
request.querystring("key")
and
request.querystring("KEY")
Run Code Online (Sandbox Code Playgroud)
我有点困惑.
gbj*_*anb 61
URI的RFC说:
6.2.2.1.案例规范化
当URI使用通用语法的组件时,组件语法等价规则始终适用; 即,方案和主机不区分大小写,因此应该标准化为小写.例如,URI等同于http://www.example.com/.
除非方案另有明确定义,否则假定其他通用语法组件区分大小写(参见第6.2.3节).
请注意,scheme(此处为"http"),host(服务器名称)不区分大小写,但无论如何都应该是小写的.其余部分区分大小写,除非您使用的是明确表示它应该不敏感的不同方案.
因此,根据规范,密钥和KEY在所有基于http的URI中是不同的.
Nic*_*rey 52
@ gbjbaanb的答案不正确:RFC只为查询字符串指定了允许的字符集.与URI 的路径和片段组件一样,查询 URI组件仅对提供资源的权限有意义.
关于这些东西是否区分大小写完全取决于该权限.
在C#和IIS的情况下,后备存储在所解析的查询字符串HttpRequest对象是System.Collections.Specialized.NameValueCollection其恰好是不区分大小写的(默认).
由于该类提供了其他构造函数允许提供不同的相等比较器,因此绝对没有什么可以阻止实现使其区分大小写.
此外,由于页面本身(以及客户端javascript)可以访问原始URI,因此可以随意使用它执行任何操作.
如果查询字符串是作为HTML表单提交的结果而构建的,则键(名称)来自表单控件name属性的值,HTML规范称其区分大小写.但据我所知,没有人真的这样做.
因此,在一天结束时,您必须知道请求处理程序在查询字符串中期望的内容.它可能(或可能不是)区分大小写.
sam*_*x01 13
简而言之,在许多编程语言中它们被认为是平等的。
URL 的不同部分在区分大小写方面有所不同:
http) -- 不区分大小写example.com) -- 不区分大小写/folder/document.html) -- 区分大小写?fuzz=barOR ?FUZZ=bar) -- 不区分大小写?fuzz=bar&buzz=BAR) -- 区分大小写小智 9
据hurl.it,key将等于123和KEY,198.它们可以作为两个不同的查询字符串访问.
| 归档时间: |
|
| 查看次数: |
37502 次 |
| 最近记录: |