node中你知道什么是二次请求嘛

217 阅读1分钟

什么叫二次请求

  • 从服务器获取html文件之后,如果这个html文件中还引用了其它的外部资源(图片,样式文件等),则浏览器会重新再发请求,这个就是二次请求。

背景

假设在index.html中还引入了 index.css, bg.jpeg 或者 .js文件,则:浏览器请求localhost:8000/index.html之后,得到从服务器反馈的内容(index.html的代码),解析的过程中还发现有外部的资源(图片,样式,js),所以浏览器会再次发出第二次请求,再去请求相应的资源。

image.png

const http = require('http');
const fs = require('fs');
const path = require('path');

//创建服务器
const app = http.createServer((req, res) => {

  if (req.url === '/index.html') {
    let htmlString = fs.readFileSync(path.join(__dirname, 'index.html'));
    res.end(htmlString);
  }
  else if (req.url === '/style.css') {
    let cssString = fs.readFileSync(path.join(__dirname, 'style.css'));
    res.setHeader('content-type', 'text/css');
    res.end(cssString);
  } else if (req.url === '/1.png') {
    let pngString = fs.readFileSync(path.join(__dirname, '/1.png'));
    res.end(pngString);
  } else {
    res.setHeader('content-type', 'text/html;charset=utf-8');
    res.statusCode = 404;
    res.end('<h2>可惜了, 找不到你要的资源' + req.url + '</h2>');
  }
}); 
//启动服务器,监听8082端口
app.listen(8082, () => {
  console.log('8082端口启动');
});