PHP获取原始http请求headers和body
目的
为什么要获取原始的http请求的头部和body呢?php内置对象$_SERVER,$_POST,$_GET,$_COOKIE等不就是为了简化处理原始头部而抽象出来的对象吗?
一般的应用场景而言,的确不需要原始头部信息,但是如果需要定位bug(如cookie异常丢失),或者分析用户的行为,如主流用户的客户端版本(IE,FF,Chrome或其他),那么获取原始的请求有助于数据分析。下面介绍两种方法,作为备忘,方法1本人已经实验证明可行。
方法1
- apache_request_headers,此函数返回headers的关联数组,必须在apahce下
- @file_get_contents('php://input'),此方法返回body。
参考这里:http://stackoverflow.com/a/10751214
方法2
采用pecl_http扩展中的相关api,这个扩展不在php自带的扩展中,需要另行下载
- http_get_request_headers,返回值与apache_request_headers一样
- http_get_request_body或http_get_request_body_stream,具体用法参见php手册
声明:如有转载本博文章,请注明出处。您的支持是我的动力!文章部分内容来自互联网,本人不负任何法律责任。