按道理请求转发并不是PHP所擅长的,至少有更好的可以做到的办法能做到,在服务器层面Nginx能很容易做到(http_proxy),在语言层面我感觉node.js会更好写。但有时候环境所限,就是有这种需求,在此记录一下。

梳理下原理

抛开PHP这个语言因素,从反向代理这个需求入手,做的无非就是一个事:转发请求。客户端发送到A的请求,A转发到B,再把从B处得到的响应返回给客户端。

那么就可以大致知道,A想要实现这个请求转发的功能,就需要做的是:

判断这个请求的方法:get/post

根据请求方法的不同,从请求中解析出参数/数据

如果是get请求,就比较简单,从URL中就可以......