`

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

阅读更多

 

出现此问题需满足的条件

  • 您使用了nginx作为反向代理
  • 您自定义header的key中使用了“_”,而不是“-”

原因

//在ngx_http_parse_header_line()函数中
if(ch == ‘_’) {
    if (allow_underscores)
    Unknown macro: {
        hash = ngx_hash(hash, ch);
        r->lowcase_header[i++] = ch;
        i &= (NGX_HTTP_LC_HEADER_LEN -- 1);\
    } else
    Unknown macro: {
        r->invalid_header = 1;
    }

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

解决办法

  • 您可以将您程序中的“_”都改为“-”
  • 您也可以在nginx配置中设置underscores_in_headers on;

 

0
0
分享到:
评论

相关推荐

    php获取不到自定义header参数原因详解

    详细分析php获取不到自定义header参数的原因,明确设置自定义header参数注意事项以及php获取自定义参数方法

    微信调试、API、AJAX的调试SocketLog.zip

    SocketLog 支持SAE等特殊的运行环境,ChromePHP,FirePHP都不支持SAE,因为SAE接收不到非标准HTTP协议的Header,而ChromePHP和FirePHP传递了自定义Header Chrome插件安装: ...

    StickyHeaderForRecyclerView:史上最好用的吸顶库,支持复杂的吸顶自定义View,单类型吸顶功能,多类型吸顶功能,指定位置吸顶功能,设置吸顶偏移量,无缝配合AppBarLayout

    这可能是目前为止设计最...修复下滑到顶部,吸顶View不消失的bug 增加重建吸顶时,如果下一个有可能吸顶的View与当前吸顶区域有重叠,吸顶向上联动 增加了处理RecyclerView数据变化时,重建吸顶功能 增加了处理Recyc

    jmail发送邮件 asp.net使用jmail

     jmail是一个第三方邮件操作组件,通常位于web服务器端,和站点程序紧密配合来接收及提交邮件到邮件服务器的控件,让网站拥有发送邮件既接收邮件的功能  与此相同的还有CDONTS.NewMail,Persits.MailSender,IISmail...

    多多返利补丁DD8.0-130417-13年04月17日

    3、用 二进制模式 上传 update 文件夹内 所有文件 覆盖到网站根目录内(不是传update文件夹,是传update文件夹里面的文件)。 4、运行update.php 即 浏览器输入 http://您的域名/update.php 。 5、提示 更新完毕 即...

    NodeLog统计方案yog-log.zip

    当框架接收请求时,yog-log会新建一个实例,并保存到domain中,确保单次请求流程中调用的getLogger获取到的是同一个实例。 如果单独使用log不经过请求, getLogger会新建一个实例,此时应当传递config配置参数。 log...

    v-mock:轻量级,秒部署的接口Mock系统

    (但是不建议乱写http码,比如有的浏览器接收到返回状态是789,可能请求就挂了) 提供每次调用成功的详细【请求体详细】以及【响应体详细】的日志,请求头..参数..Header..Cookies都能找到。 支持创建多种返回格式,...

    wsdl2java源码-wcfextrasplus:一组有用的WCF扩展,包括SoapHeader支持、WSDL扁平化和文档等

    标头,但有时保持更直观的操作契约模型更容易,但仍然公开 SOAP 标头并能够在 WCF 调用中访问它们。 项目中引入的 SoapHeader 属性允许您在代码中使用 SOAP 标头,同时仍然使用基于操作契约的模型。 WCFExtras+ 还...

    蓝宝石留言本asp版 v6.0.zip

    include/header.asp和include/footer.asp分别是本留言本的开始和结束部分,请根据自己网站的需求进行更改。 管理员默认账户admin,默认密码pass,数据库默认名称为data.mdb,均可以在后台直接修改。 本留言本具有...

    jQuery详细教程

    ='#']") 选取所有带有 href 值不等于 "#" 的元素。 $("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。 jQuery CSS 选择器 jQuery CSS 选择器可用于改变 HTML 元素的 CSS 属性。 下面的例子把所有 p 元素...

    js使用小技巧

    ENTER键可以让光标移到下一个输入框 (event.keyCode==13)event.keyCode=9"> 文本框的默认值 (this.defaultValue)"> title换行 obj.title = "123&#13sdfs&#32" 获得时间所代表的微秒 var n1 = new Date("2004-...

    ZendFramework中文文档

    13.8. 自定义Feed和条目类 14. Zend_Filter 14.1. 简介 14.1.1. 什么是过滤器(filter)? 14.1.2. 过滤器的基本用法 14.1.3. 使用静态 get() 方法 14.2. 标准过滤器类 14.2.1. Alnum 14.2.2. Alpha 14.2.3. ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    注:本系列图书的第I、II卷再版时均相应改名为《xxx开发实例大全》(基础卷)及(提高卷),但内容基本无变化,需要的童鞋可自由匹配查找。 内容简介  《PHP开发实战1200例》分为I、II两卷共计1200个例子,包括了开发...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    注:本系列图书的第I、II卷再版时均相应改名为《xxx开发实例大全》(基础卷)及(提高卷),但内容基本无变化,需要的童鞋可自由匹配查找。 内容简介  《PHP开发实战1200例》分为I、II两卷共计1200个例子,包括了开发...

    KODExplorer 芒果云-资源管理器

    - 选中文件时,移动到屏幕可视区域(解决上下左右选中文件滚动条不一致问题) ###ver2.51 `2014/6/22` ---- ####fix bug:(bug解决和程序优化) - 登陆多次密码输入错误验证码bug解决 - 修复漏洞:创建副本加入...

    超级有影响力霸气的Java面试题大全文档

     forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。...

    java 面试题 总结

    forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 redirect...

    ASP.NET常用代码

    /// 自动将异常内容记录到Windows NT/2000的应用程序日志 /// public class AppException:System.ApplicationException { public AppException() { if (ApplicationConfiguration.EventLogEnabled) LogEvent("出现...

Global site tag (gtag.js) - Google Analytics