检测节点响应的内容types的最佳方法是什么?
我有一个连接中间件,有条件地操纵节点响应。 通常我不想操作这些响应,除非它们是HTML(请注意,响应本身是其他资源的代理,可能是任何东西),尤其是因为我的中间件重载writeHead
并write
和end
以插入一些变换逻辑。 最初似乎res.getHeader('Content-Type')
是正确的方法,但事实certificate这几乎总是undefined
。 相反,我正在查看req.headers.accept
值,然后尝试使用/^text\/html*./.test(accept)
来testing它。 有没有更好的方法来做到这一点?
你所要做的就是所谓的内容嗅探或MIME嗅探。
在进行任何嗅探之前,如果您错误地识别内容types,则应了解可能出现的安全问题。
WHATWG有一个MIME嗅探标准 ,但是我还没有find一个实现它的node.js包。
你可能会发现文档嗅探有用(但我没有使用它)。