解决nginx自动过滤带下划线的header

解决nginx自动过滤带下划线的header,第1张

最近新增需求,发现客户端请求种header传值给服务器,竟然没获取到。调试后发现在本地是可以获取到前端header传的参数的,但是部署到服务器获取的就是null(服务器地址用nginx做了代理)

原因:
查源码才发现nginx对header name的字符做了限制,默认 underscores_in_headers 为off,表示如果header name中包含下划线,则忽略掉,部署后就获取不到。

解决:

在header里不要用 “_” 下划线,可以用驼峰命名或者其他的符号(如减号-)代替。nginx默认忽略掉下划线,可能是规避参数和nginx的参数关键字重复了,比如下面的结构体指针。

由于参数名字是我们可控的,这种概率不大。所以还是倾向于在nginx里的 nginxconf文件中配置>

header是服务器以>

页面中header部分一般位于最上端(有时根据需要也会位于某一侧,不管它在页面中的位置如何,在XHTML代码中它总是优于其它元素先加载),内容主要包括网站名称(Logo,次级标题可能是网站的一句口号等)和网站的导航部分。在推行Web标准的现代网络中,Web中对于header的代码结构似乎已经趋于稳定化。

在HTML5版本之前习惯使用div标签布局网页,在HTML5在DIV标签基础上新增header标签元素。也叫"<header>"头部标签。

因为大家公认html布局中对"header"为常用命名,所以在HTML5新增了个header标签元素。可以这样理解为什么在html5中新增header为标签元素。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10765768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存