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手册

本文转自bourneli博客园博客,原文链接:http://www.cnblogs.com/bourneli/archive/2012/12/14/2818655.html ,如需转载请自行联系原作者
相关文章
|
PHP Android开发
android通过http上传文件,服务器端用php写(原创)
android通过http上传文件,服务器端用php写(原创)
254 4
|
Web App开发 API 数据格式
Python网络数据抓取(2):HTTP Headers
Python网络数据抓取(2):HTTP Headers
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
1211 20
|
关系型数据库 MySQL PHP
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
553 18
|
安全 Android开发
Android之OKHttp基本使用和OKHttp发送https请求安全认证
Android之OKHttp基本使用和OKHttp发送https请求安全认证
1671 0
|
安全 API 网络安全
使用OkHttp进行HTTPS请求的Kotlin实现
使用OkHttp进行HTTPS请求的Kotlin实现
|
数据采集 网络安全 PHP
用PHP抓取HTTPS资源时的常见问题与解决方法
本文探讨了在PHP中抓取HTTPS资源时常见的问题及其解决方案,包括SSL证书验证、反爬机制应对、HTTPS代理设置及提高抓取效率。通过代码示例展示了如何使用代理IP和合理设置请求头等方法,以高效获取贝壳网的房价数据。
381 0
|
安全 Java 网络安全
RestTemplate进行https请求时适配信任证书
RestTemplate进行https请求时适配信任证书
1426 3
|
安全 网络安全 数据安全/隐私保护
HTTPS 请求中的证书验证详解(Python版)
HTTPS 请求中的证书验证详解(Python版)
1199 0
|
PHP
php 获取带http或https的域名
php 获取带http或https的域名
501 4