我的应用程序向服务器发送带有标头字段"Content type"
[sic] 和值"form-data"
[sic] 的请求。虽然这似乎是错误的 - 但直到几天前它似乎都没有造成任何问题。然后发生了一些事情(管理员安装了安全更新等),现在灯服务器返回400 bad request
,这是人们所期望的。
虽然我可以更新应用程序以发送正确的标头值,但由于客户的要求,我不被允许这样做 - 并且我需要能够恢复/接受错误请求,因为它之前一直在工作。
在任何其他服务器上它似乎都可以正常工作 - 但在我的服务器和本地机器上 - 该应用程序现在被400 bad request
返回。
有没有什么办法可以解决这个问题?我认为服务器管理员安装了一些安全更新,然后出现了这个问题,但我似乎无法以任何方式恢复它。即使创建新的服务器也无法解决这个问题。
我见过一些'mod_headers'
apache 模块,我认为它可能允许我接受自定义的格式错误的标头,"Content type"
但不确定这是否是可行的方法。
这是我在本地机器服务器日志中获得的全部内容(访问日志的屏幕截图):
答案1
为什么你就不能符合标准呢?
RFC 7230,HTTP/1.1 消息语法和路由, 第 3.2 节:
3.2. 标头字段
每个标头字段由一个不区分大小写的字段名称(后跟冒号(“:”))、可选的前导空格、字段值和可选的尾随空格组成。
header-field = `field-name ":" OWS field-value OWS`
如果它可以正常工作,那就错了。请更新您的应用,改为使用Content-Type: type/subtype
提供标准 MIME 类型的标准 HTTP/1.1 标头。然后,您无需任何变通方法或技巧即可让您的 Web 服务器按照标准运行。