渲染引擎如何感知资源类型?是否有说明该过程的文档?

时间:2019-04-02 14:25:23

标签: node.js google-chrome-devtools chromium puppeteer

我一直在使用puppeteer下载XHR,CSS,HTML和JavaScript之类的资源,但想知道其背后的过程是什么。当我查看人偶文件时,它对request.resourceType()表示以下内容:

  

包含呈现引擎感知到的请求的资源类型。

我想知道渲染引擎如何对它们进行分类。是基于 content-type 还是 request标头

之所以提出这个问题,是因为当我在Chrome DevTools中检查https://google.com时,主HTML显示为document,而其他类型为text/html的文档被分类为{{1} }。

但这在Firefox中已正确分类为other

1 个答案:

答案 0 :(得分:0)

您可以在Chromium源代码here中找到相应的源代码。

该过程如下:

第1步:Chrome尝试使用MIME类型进行识别

这将标识以下资源类型(source code):

  • document for text/html
  • stylesheet for text/css
  • image for image/...
  • script用于text/...(排除文档)或包含script的mime类型
  • font(如果mime类型包括font

第2步:如果不起作用,Chrome尝试使用URL /文件扩展名来识别资源类型

示例,将要识别的内容(source code):

  • script for js
  • stylesheet for css
  • image代表jpeggiftiff
  • 完整列表请参见this code

第3步:如果这也不起作用,则other将成为资源类型