ASP.NET中的Request.Headers ["Header-Name"]区分大小写吗?

Sli*_*ggy 15 asp.net http-headers

Request.Headers["Header-Name"]ASP.NET中是否区分大小写?如果是,如果我不确定客户端将它发送到什么情况,我应该如何获得某个标题(例如"X-requested-with")?

Hat*_*oft 12

根据RFC2616,它们不区分大小写

4.2消息标题

HTTP标头字段,包括通用标头(第4.5节),
请求标头(第5.3节),响应标头(第6.2节)和
实体标头(第7.1节)字段,遵循与节中给出的相同的通用格式RFC 822 [9]的3.1.每个标题字段由
一个名称后跟一个冒号(":")和字段值组成.字段名称
不区分大小写.字段值可以在任何数量
的LWS 之前,尽管优选单个SP.
通过在每个额外的行前面
至少有一个SP或HT,可以将标题字段扩展到多行.在生成HTTP构造时,应用程序应该遵循"通用形式",其中一个是已知的或指示的,因为
可能存在某些实现无法接受任何内容


bof*_*ynn 6

Request.Headers不区分大小写。

\n

借用这个答案

\n
\n

来自RFC 2616,“超文本传输​​协议 - HTTP/1.1”,\xc2\xa74.2,“消息头”:

\n
\n

每个标头字段由名称后跟冒号(“:”)和字段值组成。字段名称不区分大小写。

\n
\n
\n

  • 来自 [`NameValueCollection`](http://msdn.microsoft.com/en-us/library/system.collections.specialized.namevaluecollection.aspx) 的评论(这是 [`HttpRequest.Headers`] 的实现类型) (http://msdn.microsoft.com/en-us/library/system.web.httprequest.headers.aspx)):`哈希代码提供程序为 NameValueCollection 中的键分配哈希代码。默认的哈希代码提供程序是 CaseInsensitiveHashCodeProvider。 (11认同)
  • “Headers”是一个NameValueCollection,键不区分大小写。“QueryString”和“Form”也是 NVC,因此也不区分大小写,除非更改比较器 (2认同)