这取决于 onebox 引擎。像 Amazon 这样的某些 onebox 引擎会抓取 <body> 内的某些信息,例如商品的价格。对于 opengraph 引擎,理论上我们只需要 head 中的某些标签,例如 <meta>。
最有效的方法是在流式传输响应时解析响应以获取必要的信息,但要更改我们所有的引擎来执行此操作可能会付出相当大的努力,并且是一个更复杂的解决方案。
实际上,我们用来解析 HTML 响应的 Nokogiri 能够解析不完整的 HTML 文本,因此在响应过大时无需丢弃整个响应。我认为我们可以继续将响应体限制在 2mb,如果响应大小超过该限制,我们只需尝试解析前 2mb。