拦截并使用http请求中的本地文件

时间:2011-01-27 20:02:25

标签: http testing proxy

我正在尝试找到一种工具,允许非程序员在实时服务器上测试文件。

例如,他们可以修改计算机上的图像,重新加载网页,然后立即查看其工作结果。

我已经尝试过为此找到一个工具,因为看起来很明显,有人必须想到它,但我看到的很多软件都不太合适。一个名为Fiddler的工具就是这样做的(他们称之为自动应答)但它只是Windows。我可以更改hosts文件以重定向到nginx的本地实例,但是当我真正想要的是一个简单的工具时,这似乎很难维护...

http://someserver.com/css/(。*) - > /家庭/用户/ localcss / $ 1

有人有任何建议吗?

修改:重定向说明

5 个答案:

答案 0 :(得分:23)

Fiddler有此功能;只需单击AutoResponder选项卡并将URL映射到本地文件。成千上万的人每天都这样做。

另请参见视频#5:http://www.fiddlerbook.com/fiddler/help/video/default.asp

答案 1 :(得分:8)

我发现Charles Proxy对此非常有用 http://www.charlesproxy.com/documentation/tools/map-local/

答案 2 :(得分:4)

Max的PAC解决方案可以节省生命,因此我提供了更多详细信息(尚未投票)

要使用css文件的本地版本,请创建一个包含此功能的文件'proxy.pac':

function FindProxyForURL(url, host)
{
    // use regex to match requests ending with '.css'
    // and redirect them to localhost
    var regexpr = /.**\.css/;
    if(regexpr.test(url))
    {
        return "PROXY localhost";
    }

    // Or else connect directly:
    return "DIRECT";
}

保存'proxy.pac'并将浏览器指向此文件。在Firefox中,这是在选项>高级>连接>设置>自动代理配置URL

为了获得最佳实践,还要在Web服务器中添加MIME类型:将'.pac'映射到'application / x-ns-proxy-autoconfig'。

现在,对.css文件的所有请求都将路由到localhost。不要忘记确保代理服务器上的文件结构相同。

对于CSS,使用本地chrome可能更容易覆盖CSS。例如在Firefox中,chrome / userContent.css。见http://kb.mozillazine.org/UserContent.css

答案 3 :(得分:1)

自从我提出这个问题以来已经有一段时间了,我有一个很好的技术,但没有建议。

所有主流浏览器都支持

PAC files,并允许您编写可以将任何单个请求重定向到代理服务器的脚本。因此,例如,代理服务器可以提供PAC文件,让PAC文件将列入白名单的URL重定向到代理服务器,并返回这些文件的本地版本。它甚至可以支持HTTPS。

小心一个问题 - Internet Explorer。它有助于错误地“缓存”此脚本的结果,因此,如果域上的一个URL被代理,则该域中的所有URL都将被代理。但是This feature can be disabled

答案 4 :(得分:-10)

实际上你不能这样做是因为浏览器不允许通过http://的文件访问本地机器上的文件(只是想一想它...如果,例如,恶意网页会发生什么从您的计算机加载一些私人文件?) 某些浏览器(例如Safari)允许通过file://的文件访问其他file://文件,其他浏览器不允许,但没有浏览器允许http://访问file://。

Firefox有一个名为“Signed scripts”的功能,它是使用受信任证书进行数字签名的脚本。他们可以要求用户授予他们访问本地硬盘的权限。看看这个:http://www.mozilla.org/projects/security/components/signed-scripts.html

您的意思是Fiddler Web Proxy(www.fiddler2.com)吗?有一个名为Charles Web Proxy的商业Java替代方案可以满足您的需求。

相关问题