让我们假设我有这些标题:
Strict-Transport-Security: max-age=<expire-time>
Strict-Transport-Security: max-age=<expire-time>; includeSubDomains
Strict-Transport-Security: max-age=<expire-time>; preload
出于编写正则表达式的目的,我需要知道:
标头对空间敏感吗?例如max-age=<expire-time> vs. Max-age=<expire-time>
他们区分大小写吗?例如max-age= <expire-time> vs. Max-age=<expire-time>
他们对订单敏感吗?例如max-age=<expire-time>; preload vs. preload; max-age=<expire-time>;
答案 0 :(得分:1)
回答此类问题的来源是标准-这就是标准的含义。引用RFC 7230 section 3.2:
每个标题字段均包含一个不区分大小写的字段名称, 冒号(“:”),可选的前导空格,字段值和 可选的尾随空白。
对于字段值,这取决于实际的标题。例如Set-Cookie
中的值区分大小写。对于Strict-Transport-Security
,您必须查看相关标准。在RFC 6797 it says in section 6.1中:
- 指令的出现顺序不重要。
...- 指令名称不区分大小写。
答案 1 :(得分:0)
您应该阅读相关的RFC规范。
通常为HTTP Header names are case insensitive,并且不应包含空格。 HTTP/2 goes further and states that HTTP Header names should be lower case,还有white space there causes errors。
HTTP标头值 可以区分大小写,具体取决于标头。对于Strict-Transport-Security
标头your questions are covered in that RFC,具体来说:
它基于Section 2 of [RFC2616]中定义的通用语法(其中包括“隐含线性空白”的概念,也称为“隐含* LWS”)。
基本上,这意味着空格并不重要。
然后,HSTS RFC继续说:
- 指令的出现顺序不重要。
...
- 指令名称不区分大小写。