当前位置:首页 > 后端 > php > nginx中HTTP自定义header有时候接收不到,无内容分析

nginx中HTTP自定义header有时候接收不到,无内容分析

DChen3年前 (2021-04-17)php2.28 K0

1、发生此问题需满足的条件:

使用了nginx作为反向代理

自定义header的key中使用"_"代替“-”

2、原因:

if(ch == '_'){
    if(allow_underscores)
        Unknown macro: {
            hash = ngx_hash(hash,ch);
            r->lowcase_header[i++] = ch;
            i &=(NGX_THHP_LC_HEADER_LEN -- 1);
        }
    else
        Unknown macro: {
            r->invalid_header = 1;
        }
}


以上代码说明nginx对header name的字符串做了限制,默认underscores_in_headers为off,表示如果header name中包含下划线,则忽略


3、解决方法:


可以将程序中的“_”都改为“-”


可以在nginx配置中的http下设置underscores_in_headers on;

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

版权声明:本文由“憨小猪”发布,如需转载请注明出处。

本文链接:https://www.phper.red/post/55.html

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。