如何阻止某些HTTP标头字段?

时间:2019-06-03 01:03:19

标签: http http-headers

例如,页面正在发送“链接” http标头字段,我不想从中加载异步CSS。我该如何阻止?我是否有可能获得这些标头,从中删除LINK字段,然后页面将在不添加此CSS的情况下加载(未放置在页面正文中)?

我试图将标题修改为无效。

request('https://www.google.com', function(err, resp, data){
  if (resp.statusCode == 200) {
    console.log(resp.headers); // headers
  }
  else {console.log(err);}
});

请求是一个node.js模块。我需要在浏览器加载标头之前对其进行修改(通过结合ejs模板的'render'传递已修改标头无法正常工作。)

2 个答案:

答案 0 :(得分:2)

是的,可以从html响应中删除css和js链接(它们不是标头),并仅使用jsdom或cheerio显示结果。

答案 1 :(得分:0)

更新:OP正在讨论“ Web链接”,这是带有HTTP响应标头的预取资源中的RFC5988内容,并且想要阻止这种预取行为。

为此,可以手动创建代理,阻止所有不需要的数据,并且仅返回HTTP标头和感兴趣的内容。例如:

router.get('/proxy-to-google', function(req, res) {
  request('https://www.google.com', function(err, resp, data) {
    // get interested headers from resp object, and set it in res
    res.set('Example-Header', 'XXX');
    ...
    res.send(data);
  });  
});

在网络世界中,head / header有3种类型,看来您对这些概念感到困惑。

  1. HTTP标头。这些是HTTP请求和响应中传递的标头信息。在示例中,将显示HTTP响应标头。
  2. HTML中的
  3. <header>元素。这些是HTML页面正文中存在的可见元素,主要用于包装标题,导航栏等元素。
  4. HTML中的
  5. <head>元素。这是HTML文档的meta元素。它在页面中不可见,而是负责标记HTML文档的重要信息,例如CSS样式表链接,JavaScript文件URL等。

在您的情况下,您尝试阻止上面的第三种“头部”,并且可以使用@Zuei Zukenberg的建议来实现。 <head>元素与HTTP标头无关。