0
点赞
收藏
分享

微信扫一扫

【Node.js】-端口号 http模块及案列

ixiaoyang8 2023-12-11 阅读 39

一、URL中的端口号

URL:统一资源定位符,简称网址,用于访问服务器里资源

端口号:标记请区分服务器里不同功能的服务程序

端口号范围:0-65535之间的任意整数【Node.js】-端口号 http模块及案列_Web

我们想要去拿多啦爱梦,首先我们得知道这个房屋的地址,知道地址后必须得拿到这个房屋的钥匙,拿到钥匙后,进入屋子后我们要知道多啦爱梦在哪个房间,这里的房间号就是我们的端口号,进入该房间以后知道多啦爱梦在这个房间的具体哪一个位置我们就能找到了。

 注意:http协议,默认访问80端口


二、常见的服务程序

Web服务程序:用于提供Web信息的浏览功能

【Node.js】-端口号 http模块及案列_html_02

注意:0-1023和一些特定端口号被占用,我们自己编写服务程序请避开使用

三、http模块-创建Web服务

需求:创建Web服务并响应内容给浏览器

步骤:

1.加载http模块,创建Web服务对象

2.监听request请求事件,设置响应头和响应体

3.配置端口号并启动Web服务

4.浏览器请求http://localhost:3000测试

(localhost:固定代表本机的域名)

/**
 * 目标:基于 http 模块创建 Web 服务程序
 *  1.1 加载 http 模块,创建 Web 服务对象
 *  1.2 监听 request 请求事件,设置响应头和响应体
 *  1.3 配置端口号并启动 Web 服务
 *  1.4 浏览器请求(http://localhost:3000)测试
 */
// 1.1 加载 http 模块,创建 Web 服务对象
const http = require('http')
const server = http.createServer()
// 1.2 监听 request 请求事件,设置响应头和响应体
server.on('request', (req, res) => {
  // 设置响应头-内容类型-普通文本以及中文编码格式
  res.setHeader('Content-Type', 'text/plain;charset=utf-8')
  // 设置响应体内容,结束本次请求与响应
  res.end('欢迎使用 Node.js 和 http 模块创建的 Web 服务')
})
// 1.3 配置端口号并启动 Web 服务
server.listen(3000, () => {
  console.log('Web 服务启动成功了')
})

【Node.js】-端口号 http模块及案列_Web_03

三、案列(浏览时钟)

需求:基于Web服务,开发提供网页资源的功能【Node.js】-端口号 http模块及案列_Web_04

步骤:

1.基于http模块,创建Web服务

2.使用req.url获取请求资源路径,判断并读取index.html里的字符串内容返回给请求方

3.其他路径,暂时返回不存在的提示

4.运行Web服务,用浏览器发起请求测试

/**
 * 目标:基于 Web 服务,开发提供网页资源的功能
 * 步骤:
 *  1. 基于 http 模块,创建 Web 服务
 *  2. 使用 req.url 获取请求资源路径,并读取 index.html 里字符串内容返回给请求方
 *  3. 其他路径,暂时返回不存在提示
 *  4. 运行 Web 服务,用浏览器发起请求
 */
const fs = require('fs')
const path = require('path')

//1. 基于 http 模块,创建 Web 服务
const http = require('http')
const sever = http.createServer()
sever.on('request', (req, res) => {
  //2. 使用 req.url 获取请求资源路径,并读取 index.html 里字符串内容返回给请求方
  if (req.url === '/index.html') {
    fs.readFile(path.join(__dirname, 'dist/index.html'), (err, data) => {
      if (err) console.log(err)
      else {
        res.setHeader('Content-Type', 'text/html;charset=utf-8')
        res.end(data.toString())
      }
    })
  } else {
    res.setHeader('Content-Type', 'text/html;charset=utf-8')
    res.end('你要访问的资源路径不存在')
  }
})
sever.listen(8080, () => {
  console.log('Web 服务启动成功')
})

【Node.js】-端口号 http模块及案列_Web_05

举报

相关推荐

0 条评论