code: function generateHeaders(params) {
      let header, isContain, cmp,
          maxAge          = 31337 * 21;
      
      const p = params;
      const extension = path.extname(p.name);
      let type = p.mime || ext[extension] || 'text/plain';
      let encoding = '';
      
      isContain = /img|image|audio/.test(type);
      if (!isContain)
          encoding = '; charset=UTF-8';
      
      isContain = /download/.test(p.query);
      if (isContain)
          type = 'application/octet-stream';
      
      header          = {
          'Access-Control-Allow-Origin'   : '*',
          'Content-Type'                  : type  + encoding,
          'Vary'                          : 'Accept-Encoding',
          'Accept-Ranges'                 : 'bytes'
      };
      
      if (p.time)
          assign(header, {
              'Last-Modified' : p.time
          });
      
      if (p.range)
          assign(header, {
              'Content-Range' :   'bytes '    + p.range.start + 
                                  '-'         + p.range.end   + 
                                  '/'         + p.range.sizeTotal,
              
              'Content-Length':   p.range.size
          });
      else if (p.length)
          assign(header, {
              'Content-Length':   p.length
          });
      
      cmp = extension === '.appcache';
      if (!p.cache || cmp)
          maxAge  = 0;
      
      header['Cache-Control'] = 'max-age=' + maxAge;
      
      if (p.gzip)
          header['Content-Encoding']  = 'gzip';
      
      return header;
  }
docs: Функция создаёт заголовки файлов
  в зависимости от расширения файла
  перед отправкой их клиенту
  @param pParams
  name - имя файла
  gzip - данные сжаты gzip'ом
  query
  https://developers.google.com/speed/docs/best-practices/caching?hl=ru#LeverageProxyCaching