如何获取 Meteor 的 HTTP.call(或 get)方法来修改 HTTP 请求 Headers?
How can I get Meteor's HTTP.call (or get) method to modify the HTTP request Headers?
我试图通过只加载足够的网页内容来获取其 HTML 的 <head>
标签来加快我的 Meteor 应用程序的速度,以获得其标题、图像和描述。
我有一个客户端使用以下代码调用 server-side 方法:
Meteor.call("metaGetter", url, function(err, res){...});
而在服务器端,在 metaGetter
方法中,我使用的是 Meteor 的 HTTP.call:
var result = HTTP.call('GET', url, {headers: {'content-range': "bytes 0-100"}});
如 Meteor 文档中所写。我能够得到结果的内容,html。但是,打印返回的 headers 后,我没有看到我尝试设置的 content-range
属性。
编辑:Akshat 的解决方案有效,但仅适用于某些网站,实际上很少。任何帮助将不胜感激。
使用 range
header:
var result = HTTP.call('GET', url, {headers: {'range': "bytes=0-100"}});
如果使用的服务器支持内容范围,响应应该有 content-range
header。
当然,这需要一个支持请求范围的主机。我试过上面的代码,它在 http://www.microsoft.com
作为 url
.
工作
遗憾的是,除了请求整个文档之外,对于不支持它的网站,您真的无能为力。
一个相当奇怪的替代方法是手动请求网页作为套接字,并在您获得的字节数超过您需要的字节数时切断。
一般来说,如果您希望始终获取标题,则不能设置固定限制:
- 一些 HTTP 服务器不支持范围 header:How can I find out whether a server supports the Range header?
- 您不能保证 X 字节始终包含标题。例如。它可能出现在 1000 字节之后。
通常我会获取整个 HTML 文件。在大多数像样的服务器上,这应该少于 100 毫秒。人类几乎察觉不到。如果您经常这样做,您可能希望允许并行执行服务器端方法(参见 http://docs.meteor.com/#/full/method_unblock)
如果必须进行优化,您可以使用之前的方法,获取 100 个字节,但是如果您没有找到 </title>
,那么您将返回下载整个 HTML 文件。
我试图通过只加载足够的网页内容来获取其 HTML 的 <head>
标签来加快我的 Meteor 应用程序的速度,以获得其标题、图像和描述。
我有一个客户端使用以下代码调用 server-side 方法:
Meteor.call("metaGetter", url, function(err, res){...});
而在服务器端,在 metaGetter
方法中,我使用的是 Meteor 的 HTTP.call:
var result = HTTP.call('GET', url, {headers: {'content-range': "bytes 0-100"}});
如 Meteor 文档中所写。我能够得到结果的内容,html。但是,打印返回的 headers 后,我没有看到我尝试设置的 content-range
属性。
编辑:Akshat 的解决方案有效,但仅适用于某些网站,实际上很少。任何帮助将不胜感激。
使用 range
header:
var result = HTTP.call('GET', url, {headers: {'range': "bytes=0-100"}});
如果使用的服务器支持内容范围,响应应该有 content-range
header。
当然,这需要一个支持请求范围的主机。我试过上面的代码,它在 http://www.microsoft.com
作为 url
.
遗憾的是,除了请求整个文档之外,对于不支持它的网站,您真的无能为力。
一个相当奇怪的替代方法是手动请求网页作为套接字,并在您获得的字节数超过您需要的字节数时切断。
一般来说,如果您希望始终获取标题,则不能设置固定限制:
- 一些 HTTP 服务器不支持范围 header:How can I find out whether a server supports the Range header?
- 您不能保证 X 字节始终包含标题。例如。它可能出现在 1000 字节之后。
通常我会获取整个 HTML 文件。在大多数像样的服务器上,这应该少于 100 毫秒。人类几乎察觉不到。如果您经常这样做,您可能希望允许并行执行服务器端方法(参见 http://docs.meteor.com/#/full/method_unblock)
如果必须进行优化,您可以使用之前的方法,获取 100 个字节,但是如果您没有找到 </title>
,那么您将返回下载整个 HTML 文件。