昨天,我收到了来自GCP的邮件,内容涉及负载均衡器以及大小写标题。消息的一部分是:
9月30日之后,HTTP(S)负载均衡器将转换HTTP / 1.1 标头名称在请求和响应方向中为小写; 标头值不会受到影响。
由于标头名称不区分大小写,因此此更改不会影响 遵循HTTP / 1.1规范的客户端和服务器(包括 所有流行的网络浏览器和开源服务器)。同样, HTTP / 2和QUIC协议已经需要小写的标头名称, 通过这些协议到达负载均衡器的流量不会 受到影响。但是,我们建议测试使用自定义的项目 客户或服务器在推出之前,以确保影响最小。
Google专门谈论请求和响应标头名称(而不是值),但是例如,Google Load Balancer是否要求我将经典的PHP重定向标头“ Location”替换为小写的“ location”?
header("location: http://www.example.com/error/403");
当然,计划是按照标准制定的那样做,但在许多情况下,将是GCP截止日期(2019年9月30日)之前无法完成的工作。
作为标准,所有现代浏览器都准备使用区分大小写的标头名称吗? 我应该担心文件命名吗? (驼峰) 如果是这种情况,那么在我更改代码的同时,Apache中就有一些mod(例如)可以使用?
答案 0 :(得分:1)
HTTP / 1.1规范指定HTTP标头不区分大小写。这仅适用于标题名称(“ content-type”),而不适用于标题的值(“ application / json”)。
如果此新政策会给您带来麻烦,您可以联系Google支持并暂时选择退出。
对于正确编写并执行不区分大小写的比较的代码,您将没有问题。在大多数情况下,您可以将curl
与各种HTTP标头一起使用以测试您的后端代码。当然,完成代码遍历是一个好主意。
curl命令示例:
curl --http1.1 -H “x-goog-downcase-all-headers: test” http://example.com/
-http1.1命令行选项的卷曲文档: https://curl.haxx.se/docs/manpage.html
作为标准,所有现代浏览器均已准备好使用案例 敏感的标题名称?
是的。长期以来,这一直是规范。
我应该担心文件命名吗? (骆驼壳)
不。新的更改不会影响HTTP标头的值,只会影响标头名称。
如果是这种情况,则Apache中有一些mod(例如)可以使用 同时更改我的代码?
不知道。