作家
登录

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

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

  • 检查是否文件照样目次如不雅文件不存在,返回404状况码,发送not found页面到客户端 
  • 如不雅文件存在:打开文件攫取
  • 设置response header 发送文件到客户端 
  • 如不雅是目次就打开目次列表
    1. async request(req, res) { 
    2.     //先取到客户端想要的是文件或文件夹路径  
    3.     let { pathname } = url.parse(req.url);//获取路径的文件信息 
    4.     let filepath = path.join(this.config.root, pathname);//办事器上的对应办事器物理路径 
    5.     try { 
    6.         let statObj = await stat(filepath);//获取路径的文件信息 
    7.         if (statObj.isDirectory()) {//如不雅是目次的话,应当显示目次 下面的文件列表 
    8.             let files = await readdir(filepath);//攫取文件的文件列表 
    9.             files = files.map(file => ({//把每个字符串变成对象 
    10.                 name: file, 
    11.                 url: path.join(pathname, file) 
    12.             })); 
    13.             //handlebar 编译模板 
    14.             let html = this.list({ 
    15.                 title: pathname, 
    16.                 files 
    17.             }); 
    18.             res.setHeader('Content-Type''text/html');设置请求头 
    19.             res.end(html); 
    20.         } else { 
    21.             this.sendFile(req, res, filepath, statObj);//攫取文件 
    22.         } 
    23.     } catch (e) {//不存在拜访内就发送缺点信息 
    24.         debug(inspect(e));//inspect把一个对象转成字符 
    25.         this.sendError(e, req, res); 
    26.     } 

    缓存支撑/控制

    设计思路

    缓存分为强迫缓存和比较缓存:

    • 两类缓存规矩可以同时存在,强迫缓存优先级高于比较缓存,也就是说,当履行强迫缓存的规矩时,如不雅缓存生效,直接应用缓存,不再履行比较缓存规矩.
    •  强迫缓存如不雅生效,不须要再和办事器产生交互,而比较缓存不管是否生效,都须要与办事端产生交互
    1. 第一次拜访办事器的时刻,办事器返回资本懈弛存的标识,客户端则会把此资本缓存在本地的缓存数据库中。
    2. 第二乘客户端须要此数据的时刻,要取得缓存的标识,然后去问一下办事器我的资本是否是最新的。如不蚜?鲱新的则直接应用缓存数据,如不雅不是最新的则办事器返回新的资本懈弛存规矩,客户端根据缓存规矩缓存新的数据。

    经由过程最后修改时光来断定缓存是否可用

    1. Last-Modified:响应时告诉客户端此资本的最后修改时光 
    2. If-Modified-Since:当资本过不时(应用Cache-Control标识的max-age),发明资本具有Last-Modified声明,则再次向办事器请求时带上头If-Modified-Since。

        推荐阅读

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

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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