http请求头header参数中不能使用下划线“_”
PyCharm 本地调试时,在Postman中输入带下划线的参数没有问题,但当把项目部署到服务器上测试,使用带下划线的参数就会报错:
typeerror int() argument must be a string a bytes-like object or a number
先了解下下划线是否是合法参数的一部分。
在 HEADER 字段名中使用下划线其实是合法的、符合 HTTP 标准的。服务器之所以要默认禁止使用是因为 CGI 历史遗留问题。下划线和中划线都为会被映射为 CGI 系统变量名中的下划线,这样容易引起混淆。
在 Nginx 服务器中,通过显式地设置
underscores_in_headers on
可以开启在字段名中使用下划线。默认该选项是关闭的,所以在默认情况下,所有包含下划线的字段名都会被丢弃。
建议不要在 HEADER 中的参数使用下划线,参数名可采用驼峰方法。
我的笔记