作家
登录

静态文件服务器实现的功能

作者: 来源: 2018-03-24 18:32:17 阅读 我要评论

  • 办事器收到请求后发明有头If-Modified-Since则与被请求资本的最后修改时光进行比对。若最后修改时光较新,解释资本竽暌怪被修悛改,则响应最新的资本内容并返回200状况码; 
  • 若最后修改时光和If-Modified-Since一样,解释资本没有修改,则响应304表示未更新,告诉浏览器持续应用所保存的缓存文件。
  • ETag是资本标签。如不雅资本没有变更它就不会变。

    • 客户端想断定缓存是否可用可以先获取缓存中文档的ETag,然后经由过程If-None-Match发送请求给Web办事器询问此缓存是否可用。
    • 办事器收到请求,将办事器的中此文件的ETag,跟请求头中的If-None-Match比拟较,如不雅值是一样的,解释缓存照样最新的,Web办事器将发送304 Not Modified响应码给客户端表示缓存未修悛改,可以应用。 
    • 如不雅不一样则Web办事器将发送该文档的最新版本给浏览器客户端
    1. handleCache(req, res, filepath, statObj) { 
    2.     let ifModifiedSince = req.headers['if-modified-since']; 
    3.     let isNoneMatch = req.headers['is-none-match']; 
    4.     res.setHeader('Cache-Control''private,max-age=30');//max-age=30缓存内容将在30秒后掉效 
    5.     res.setHeader('Expires', new Date(Date.now() + 30 * 1000).toGMTString()); 
    6.     let etag = statObj.size
    7.     let lastModified = statObj.ctime.toGMTString(); 
    8.     res.setHeader('ETag', etag);//获取ETag 
    9.     res.setHeader('Last-Modified', lastModified);//办事器文件的最后修改时光 
    10.     //任何一个比较缓存头不匹配,则不走缓存 
    11.     if (isNoneMatch && isNoneMatch != etag) {//缓存过时 
    12.         return fasle; 
    13.     } 
    14.     if (ifModifiedSince && ifModifiedSince != lastModified) {//缓存过时 
    15.         return fasle; 
    16.     } 
    17.     //当请求中存在任何一个比较缓存头,则返回304,不然不走缓存 
    18.     if (isNoneMatch || ifModifiedSince) {//缓存有效 
    19.         res.writeHead(304); 
    20.         res.end(); 
    21.         return true
    22.     } else { 
    23.         return false
    24.     } 

    支撑gzip紧缩

    设计思路

    1. let config = { 
    2.  host:'localhost' //提示用 , 
    3. port:8080 //办事器启动时刻的默认端标语, 
    4. path:path.resolve(__dirname,'..','test-dir') //静态办事器启动时默认的工作目次 
    5.  } 

    浏览器都邑携带本身支撑的紧缩类型,最常用的两种是gzip和deflate。根据请求头Accept-Encoding,返回不合的紧缩格局.


      推荐阅读

      AICHAIN创始人段凯:AI+区块链 技术谱系极端的火花碰撞

    全平易近充电节 | 3月26日~30日 2000位IT行业拭魅战专家邀请你一路充电进修!作为一门用于模仿、延长和扩大人的智能的理论、办法、技巧及应用体系的新技巧科学,人工智能在历经元年的新一轮火爆之后,应>>>详细阅读


    本文标题:静态文件服务器实现的功能

    地址:http://www.17bianji.com/lsqh/40859.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)