zf-6-http源码 (10天)

mac2025-06-17  7

cache(filePath,req,res,statObj){ // 协商缓存 对比 // 1) 文件可能没发生变化 但是修改时间变化了 // 2) 精确的时间不准确 会导致问题 同一时间内改了很多次 // 3) cdn 55 继续 // 指纹 // statObj.ctime 是一个时间类型 let lasModified = statObj.ctime.toGMTString(); let Etag = crypto.createHash('md5').update(fs.readFileSync(filePath)).digest('base64'); res.setHeader('Last-Modified',lasModified); res.setHeader('Etag',Etag); // 真正的etag 可能只是文件的某一份 let ifModifiedSince = req.headers['if-modified-since']; let ifNoneMatch = req.headers['if-none-match']; if(ifModifiedSince && ifNoneMatch) { if(ifNoneMatch !== Etag || ifModifiedSince !== lasModified){ return false } return true; }else{ return false } // 如果指纹变了 就不是一个人 md5 // 我们可以计算文件md5戳 slice(20) } sendFile(filePa
最新回复(0)