实时uri翻译的HTML内容在C/ c++

Realtime URI-translation of HTML content in C/C++

本文关键字:c++ uri 翻译 HTML 实时      更新时间:2023-10-16

为了开发自定义反向代理(用c++编写),我想对HTML内容中的uri进行实时翻译。例如,如果我想使用http://my-reverse-proxy/myserver访问http://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的解决方案。

提前感谢!

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

你应该坚持这个范例。这比处理文件本身要简单和有效得多。任何正在实时完成的事情都可以在请求点完成。

还有一个问题:为什么要使用自定义反向代理?这样的事情已经存在了。