创建最基本的web服务器

99 阅读2分钟

前置知识

当我们在浏览器中输入了[www.baidu.com]的时候,发生了什么?

ip地址 域名 端口三者之间的关系

  1. ip地址:
  • 任何一台设备(计算机, 手机, ...)想要接入到网络中(互联网,局域网),就会被分配一个唯一的ip地址
  • 通过这个ip地址就能找到这台设备。
  1. 域名:
  • 比如 www.jd.com 就是域名 ,方便记忆
  • 我们购买了服务器之后, 服务器会有一个IP地址, 我们可以通过域名解析让域名指向当前IP
  • 域名和ip地址绑定后,通过域名就可以找到对应的ip地址, 从而访问到该服务器
  1. 端口:
  • 端口是计算机和外界通讯的虚拟通道
  • 一台计算机能运行很多程序, 一般一个程序会占用一个或者多个端口
  • http协议的默认端口是80
  • https协议的默认端口是443

浏览器与服务器的交互过程

  • image.png
  1. 根据相关域名, 去查询dns服务器,得到对应的ip地址
  2. 根据IP地址, 找到对应的计算机
  3. 根据端口找到对应的服务器程序
  4. 根据url请求具体的信息
  5. 服务器根据上述信息发送请求
  6. 浏览器接收到了服务器的响应, 把结果响应出来

node.js ---http模块

  • http也是内置模块, Node.js 官方提供的、用来创建web 服务器的模块。
  • 它提供了一系列的方法和属性,让开发者(咱们)可以用代码来创建服务器,接收请求及响应**内容

创建基础的web服务器

// 1.导入模块,通过require方法(模块名称)
const http = require('http')
// 2.创建服务器对象
const server = http.createServer()
// 3. 侦听端口
server.listen(3002,()=>{
    console.log('服务器启动,http://127.0.0.1:3002')
    // console.log('服务器启动,http://localhost:3000')
})
// 4. 侦听request请求
// 当浏览器访问到服务器会触发request事件,在事件当中给浏览器返回数据/资源/文件
server.on('request',(request,response) =>{
    console.log('请求地址',request.url);
    console.log('请求方式',request.method);
    console.log('请求头',request.headers);
    console.log('浏览访问到了');
    response.statusCode = 200    
    response.setHeader('content-type','text/plain;charset=utf-8')
    response.end('结尾')
})
  1. 关闭服务器通过 ctrl+c 关闭
  2. 一个端口号只能被一个服务(端口)使用,重复运行同一个服务会报错
  3. 关于ip地址:
  • 路由器给ip地址,通过ipconfig命令查看(IPv4)
  • 操作系统给特殊的ip地址代表当前电脑 127 .0.0.1 / localhost
  1. 修改服务器代码需要重启
  2. response.end 它应该位于最后一段代码