在Java中,如何在网站响应到达浏览器之前将其附加到html?

在Java中,如何在网站响应到达浏览器之前将其附加到html?,java,Java,最近我使用了一个叫做Spotflux的Mac应用程序。我认为它是用Java编写的(因为如果你把鼠标悬停在它的图标上,它的字面意思是“Java”…) 这只是一个VPN应用程序。然而,为了支持自己,它可以向你展示广告。。。浏览时。你可以在chrome上浏览,页面底部会有一个横幅 由于它是一个VPN应用程序,它显然可以控制机器的进出,所以我猜它只是在将响应传递到浏览器之前向任何网站响应添加一些html 我对VPN或类似的东西不感兴趣。真正的问题是:如何使用Java拦截来自网站的html响应,并在其到达

最近我使用了一个叫做Spotflux的Mac应用程序。我认为它是用Java编写的(因为如果你把鼠标悬停在它的图标上,它的字面意思是“Java”…)

这只是一个VPN应用程序。然而,为了支持自己,它可以向你展示广告。。。浏览时。你可以在chrome上浏览,页面底部会有一个横幅

由于它是一个VPN应用程序,它显然可以控制机器的进出,所以我猜它只是在将响应传递到浏览器之前向任何网站响应添加一些html


我对VPN或类似的东西不感兴趣。真正的问题是:如何使用Java拦截来自网站的html响应,并在其到达浏览器之前向其附加更多html?假设我想制作一个应用程序,在你访问的每个站点的底部都放一张图片。

这当然是一个假设的答案——我真的不知道Spotflux是如何工作的

然而,我猜作为其VPN的一部分,它安装了一个。代理服务器拦截HTTP请求和响应的原因多种多样——大多数公司网络使用代理服务器进行缓存、监控互联网使用情况并阻止对NSFW内容的访问

由于代理服务器可以查看浏览器和internet之间的所有HTTP流量,因此它可以修改该HTTP;例如,代理服务器通常会插入HTTP头;为图像注入额外的HTML标记将相对容易


这是一个Java代理服务器的示例实现

有很多方法可以做到这一点。可能最简单的方法是通过web代理(如java编写的)代理HTTP请求。然后,只需扩展代理就可以搞乱发送回浏览器的响应

在Rabbit的情况下,这可以通过自定义代码或特殊过滤器来完成。看看他们的

警告:这并不像你想象的那么简单。将图像添加到每个屏幕的底部将很难,这取决于服务器返回的HTML类型。取决于远程站点使用的CSS、javascript等,您不能仅仅将相同的HTML标记放入其中,然后期望它在任何地方都能起到相同的作用