0

为了开发自定义反向代理(用 C++ 编写),我想对 HTML 内容中的 URI 进行实时翻译。例如,如果我想访问http://myserver/using上的资源http://my-reverse-proxy/myserver,则所有绝对链接和顶级链接都喜欢http://myserver/somecontent1.ext/somecontent2.ext需要修改。

一个 HTML 标签

<img src="/sample.png">

因此将被翻译为

<img src="/myserver/sample.png">

从我的角度来看,有一些方法:

1)使用正则表达式和字符串替换来查找所有相关的HTML标签及其使用捕获组的路径并进行一些字符串替换。

2) 解析整个 HTML 内容,对解析树进行一些转换,并将结果漂亮地打印回有效的 HTML 资源。

这就是这个问题的全部内容:您是否有任何经验,哪种解决方案可能更快,甚至更合理?你知道我可以用来不重新发明轮子的框架吗?由于此过程稍后也应用于基于 CSS 和 XML 的资源,因此它不应该是依赖于 HTML 的解决方案。

提前致谢!

4

1 回答 1

0

代理服务器通常作为服务器工作。它们处理所有 HTTP 请求,修改请求的 URL,然后将修改后的请求传递给另一端的服务器。

你应该坚持这个范式。这比处理文件本身要容易和高效得多。任何实时完成的事情都可以在请求时完成。

另外,可能应该问:为什么要自定义反向代理?这样的事情已经存在。

于 2013-04-03T09:54:41.973 回答