PHP代理 - 基本解释

时间:2009-11-09 08:07:40

标签: php proxy

PHP代理如何工作?

我希望制作一个类似于其他php代理的小脚本

但它实际上是如何运作的?

2 个答案:

答案 0 :(得分:3)

这比你想象的要多得多。简单地调用远程网页并显示其内容是不够的(在最简单的情况下是readfile('http://google.com')),你必须重写html文档中的网址再次指向你自己的代理,你需要能够处理https(或者你可以允许正常访问敏感数据,如果目标页面需要https)和许多其他(部分编译在RFC 3143中)。

也许apache的mod_proxy拥有你所需要的一切,但如果你真的想自己写一个,研究其他项目的源代码(如php-proxy)可能会让你更深入地了解这个问题。 / p>

答案 1 :(得分:3)

我正在考虑一个PHP代理,用于解决AJAX Sane Origin Policy。如果您需要真正的HTTP代理,则该过程要复杂得多。

最简单的伪代码:

  • 从请求中获取网址(例如来自$_POST['url']
  • 拒绝无效的网址(例如,如果您有多台服务器,请不要向localhost(或私有子网内)发送请求)
  • (可选)检查脚本的缓存,返回缓存的响应(如果适用)
  • 向目标网址发出请求,例如与cURL
  • (可选)缓存响应(如果适用)
  • 返回回复

注意:在这种最简单的形式中,您允许任何人通过您的PHP代理访问Internet上的任何URL;应该实现一些访问控制(例如,仅限登录用户,具体取决于您使用代理的内容)。