我有一个本地HTTP代理,用于将脚本注入从远程服务器检索的HTML标头中。使用标准HTTP流很简单,但是当传输是分块编码时,需要进行更多的解析。
我想到的方法似乎有点令人费解:
<head>
<head>
向后解析并在块的开头找到十六进制值(可能在分号前)。<head>
。这会有用吗? (我即将淘汰代码以找出答案) 还有更好的方法吗?
答案 0 :(得分:2)
这不起作用,因为无法保证完整的<head>
标记将位于单个块中。它可以跨越块之间的边界。您需要以正确的方式解析HTTP块本身,缓冲其中的任何数据,以便您可以单独解析它。读取入站块,直到缓冲完整的<head>
标记,然后根据需要注入脚本,输出包含缓冲数据和脚本的新块,然后按原样传递任何后续块。