这几天之所以去了解这个,就是之前埋下的雷,自定义名称用了下划线_,前两天莫名其妙犯病一直获取不了,以为是被浏览器或是nginx拦截了,开始考虑是否是这个名称的问题,然而debug两天,结果是代码里一个变量名忘了改......我的天,我真的会哭
正文
- 第一点,既然这个字段是我们自定义的,那名称肯定要避开协议中已经存在的字段的名称(如Host,Referer等都不能用)
- 注意请求头的名称不区分大小写,但会区分 - _ 等符号
- 例如:
- HelloWorld和helloworld等价,如果请求头中实际名称是HelloWorld,但在读取时直接传入helloworld也是可以获取到的。(因为标准是这么规定的,解析库在设计时也应当支持这个操作)
- HelloWorld 和 Hello-World 和 Hello_World,三者都不一样
- 例如:
- 名称里不应包含 空白符、换行符、下划线、冒号
- 连接符号可以使用短横杠,即减号 -
- 例如:
- 允许:HelloWorld、Hello-World、helloworld
- 但不应:Hello World、Hello:World、Hello_world等
- 其中,如果硬要使用下划线_,在nginx的nginx.conf配置文件内的http部分内需要配置一句:
- underscores_in_headers on;
- 这句配置会允许nginx放行包含下划线的请求头字段,否则nginx会默认把上述不符合要求的几种情况的字段全部去掉,然后再把这个请求转发过来,因此导致后端程序获取不到自定义的那个字段。
- 有时我们会看到一些网站在命名自定义字段时使用 X- 开头的格式,然而早在2012年6月,标准RFC 6648就明确弃用这一建议:
3.对新参数的创建者的建议
......
不建议在其参数名称前加上“X-”或类似的结构。
对协议设计者的建议
......
不应禁止注册具有“X-”前缀或类似结构的参数。
绝不能规定具有“X-”前缀或类似结构的参数需要被理解为非标准化。
绝不能规定没有“X-”前缀或类似结构的参数需要被理解为标准化。
- -
- 也就是说,X- 并没有什么特别的效果,它是以前的一种规范建议,而现在已经不建议了,继续用X-开头也没问题,但并不建议你这样干。
Cenforce 100mg tablets for sale: cheapest cenforce – cheapest cenforce
Cenforce 100mg tablets for sale order cenforce cheapest cenforce
buy Kamagra kamagra pills п»їkamagra
https://levitrav.store/# Buy Levitra 20mg online
http://viagras.online/# п»їBuy generic 100mg Viagra online
buy Levitra over the counter: levitrav.store – Vardenafil buy online
https://levitrav.store/# Levitra 20 mg for sale
Kamagra tablets buy kamagra online usa Kamagra 100mg
http://kamagra.win/# sildenafil oral jelly 100mg kamagra
Viagra online price Buy generic 100mg Viagra online sildenafil over the counter
http://viagras.online/# Sildenafil 100mg price
http://levitrav.store/# Buy Vardenafil online
Levitra 20 mg for sale: Buy generic Levitra online – Levitra 20 mg for sale
sildenafil online Cheap Viagra 100mg Viagra without a doctor prescription Canada
https://viagras.online/# Viagra Tablet price
Cheapest Sildenafil online Cheap Viagra 100mg Generic Viagra for sale
https://levitrav.store/# Vardenafil buy online
buy kamagra online usa: Kamagra tablets – Kamagra tablets
buy Viagra over the counter: Cheap Viagra 100mg – Cheap Viagra 100mg
Buy Cenforce 100mg Online order cenforce Cenforce 150 mg online
https://levitrav.store/# Levitra 20 mg for sale
Vardenafil online prescription Levitra generic price Levitra online USA fast
I am not sure where youre getting your info but good topic I needs to spend some time learning much more or understanding more Thanks for magnificent info I was looking for this information for my mission
https://kamagra.win/# sildenafil oral jelly 100mg kamagra
Kamagra 100mg kamagra Kamagra Oral Jelly
super kamagra: kamagra oral jelly – Kamagra tablets
Kamagra Oral Jelly kamagra pills sildenafil oral jelly 100mg kamagra
http://viagras.online/# Cheapest Sildenafil online
https://cenforce.pro/# buy cenforce
http://kamagra.win/# Kamagra 100mg price
http://kamagra.win/# super kamagra
Levitra 20 mg for sale: Cheap Levitra online – Buy Levitra 20mg online
Buy Tadalafil 20mg Cialis 20mg price in USA Buy Tadalafil 10mg
buy viagra here Buy generic 100mg Viagra online Cheapest Sildenafil online
Buy generic 100mg Viagra online: order viagra – sildenafil 50 mg price
http://kamagra.win/# Kamagra 100mg
cheapest cenforce: buy cenforce – cheapest cenforce
http://viagras.online/# Buy Viagra online cheap
http://viagras.online/# Viagra online price
http://finasteride.store/# cost propecia without a prescription
buy cipro online cipro 500mg best prices ciprofloxacin generic
lisinopril comparison: prinivil price – buy lisinopril no prescription
liquid tamoxifen tamoxifen cancer tamoxifen side effects forum
https://cytotec.club/# buy cytotec online
https://cytotec.club/# buy cytotec pills online cheap
http://nolvadex.life/# nolvadex steroids
lexapro and tamoxifen aromatase inhibitors tamoxifen tamoxifen
zestril 20 buy lisinopril 20 mg online canada prinivil price