http请求头header参数中不能使用下划线“_”

pycharm本地调试,在postman中输入带下划线的参数没有问题,但是,当把项目部署到ecs中测试,使用带下划线的参数就会报错

typeerror int() argument must be a string a bytes-like object or a number

原因在于,ecs里使用的nginx做代理

在 HEADER字段名中使用下划线其实是合法的、符合 HTTP 标准的。服务器之所以要默认禁止使用是因为 CGI 历史遗留问题。下划线和中划线都为会被映射为 CGI 系统变量名中的下划线,这样容易引起混淆。

在 nginx 服务器中,通过显式地设置

underscores_in_headers on

可以开启在字段名中使用下划线。默认该选项是关闭的,所以在默认情况下,所有包含下划线的字段名都会被丢弃。

建议不要在 HEADER 中的参数使用下划线,参数名可采用驼峰方法

posted @ 2020-10-15 11:31  乱炖er  阅读(2442)  评论(0编辑  收藏  举报