关于HTTP Header 头的一个奇怪问题

发布于 2022-09-05 06:26:52 字数 1127 浏览 20 评论 0

关于使用 php 来设置 http 头的出现的问题。我使用php 来测试 HTTP header 头时候发现,假如我按以下代码来设置相应头的话,却发生了难以理解的错误,谁能帮忙解释一下其中的原因?

clipboard.png


而且除了以上的问题外,我按以下的代码来设置响应头,结果在页面上只有最后一个响应头能够显示,其他被覆盖,但是原来的Content-Encoding:gzip 这个怎么都不会被覆盖

clipboard.png

图片描述

下面补充问题说明,如果显式声明为 gzip 编码,则会有下面的无法访问此网站的错误。

clipboard.png

clipboard.png

相关服务器配置代码

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情话墙 2022-09-12 06:26:53

第一个问题,浏览器是会根据你的Content-Encoding值对响应进行解码,你传的值(123,none)不正确当然出现乱码,然后gzip是因为你的响应体并没有做gzip压缩处理,而浏览器却对你的响应体做了解压处理,那肯定是解压失败就无法访问咯。
第二个问题参战楼上。

多个Content-Encoding头情况,浏览器按照从上往下的顺序来解码
clipboard.png

clipboard.png

这里响应头写反顺序则报错

clipboard.png

clipboard.png

怪我太投入 2022-09-12 06:26:53

我这边测试了一下第二个问题, 除非 ·header· 第二个参数设置为 ·false· , 否则都会覆盖。

至于第一个问题, 你是使用什么方式请求的? 我这边用浏览器请求, 可以看到请求头 ·Accept-Encoding:gzip, deflate, br· , 这是 ·Chrome· 浏览器支持的编码格式, 建议看一下你的请求支持什么编码格式传输正文

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文