cgi服务一直正常运行,某天,突然线上反馈 net::ERR_HTTP2_PROTOCOL_ERROR 这个错误。一脸懵
chrome 上查看不到 response。 cgi 日志一切正常。
开启 fiddler 后, 刷新页面又正常。(应该是fiddler代理做了一些二次处理。)
从fiddler上可以看到 header 里 有 特殊字符,在后端日志也看得到
代码语言:javascript复制nick:"177177177177" // 后端日志打印是这个字符串
"nick":"", // response header里这个
这个特殊字符影响到了Agent对response的解析处理。
复现路径:
代码语言:javascript复制//test.php
<?php
header('Logininfo: '.'{"nick":""}');
?>
注意:这个特殊字符在body里时,是么有问题的,只是在header里才有问题。
浏览器打开就会报错。
解决办法:加万能的urlencode。