当前位置: 首页 > news >正文

[node] 4 http模块

前言
http模块是Node中一个重要的方法,让前端开发者可以本地起服务。
目标

1 了解什么是服务器
2 掌握http模块的用法


http
服务器相关
1 IP地址
2 域名与服务器
http相关
http模块

服务器相关

1 服务器

在网络节点中,负责消费资源的电脑叫做客户端;
负责对外提供网络资源的电脑,叫做服务器。

1.1 IP地址

Ip地址是互联网上每台计算机的唯一地址,具有唯一性。相当于手机电话号码,只有知道Ip地址才能进行通信。
在cmd终端中,用ping可以获取域名对应的的IP地址

ping 域名地址

普通电脑与服务器的区别
在普通电脑上安装服务器软件,如IIS、Apache等,就可以把普通电脑变成一台web服务器。

1.2 域名与服务器

域名是与Ip地址一一对应的,但是因为Ip地址不便于记忆,才有了域名。
域名与Ip的对应关系存放在域名服务器中(DNS)
域名服务器就是提供IP地址和域名之间转换服务的服务器

http相关

2 http模块

http 模块是Node.js官方提供的,用来创建web 服务器的模块。通过http模块提供的createServer()方法,就能方便的把一台普通的电脑,变成一台服务器,从而对外提供web 资源服务。

2.1 http模块使用步骤

1 引入http模块

const http = require(`http`)

2 创建http实例

const server = http.createServer();

3 为服务器实例绑定 request 时间,监听客户端的请求

server.on('request',function (req,res){
   console.log('--------req,res--------',req,res)
})

4 启动服务器

server.listen(8080,function(){
    console.log('Localhost http://127.0.0.1')
})

5 执行index.js
在这里插入图片描述

2.2 中文乱码

在这里插入图片描述

server.on('request',function (req,res){
    const str =  `你访问的 url 地址是${req.url},请求的 method 类型是${req.method}`
    // 设置Content-Type请求头,解决中文乱码
    res.setHeader('Content-Type', 'text/html;charset=utf-8')
    // 将内容响应给客户端
    res.end(str)
})

在这里插入图片描述
完整代码

// 导入http模块
const http = require('http');
// 创建http实例
const server = http.createServer();
// 为服务器实例绑定 request 时间,监听客户端的请求
server.on('request',function (req,res){
    const str =  `你访问的 url 地址是${req.url},请求的 method 类型是${req.method}`
    // 设置Content-Type请求头,解决中文乱码
    res.setHeader('Content-Type', 'text/html;charset=utf-8')
    // 将内容响应给客户端
    res.end(str)
})
// 启动服务器
server.listen(8080,function(){
    console.log('Localhost http://127.0.0.1')
})

2.3 响应不同内容

server.on('request',function (req,res){
    const str =  `你访问的 url 地址是${req.url},请求的 method 类型是${req.method}`
    console.log('----------',req.url)
    // 要相应的内容
    let content = `<h1>404 NOT FOUND</h1>`
    // 根据不同路径返回不同内容
    if(req.url=='/'|| req.url=='/index.html'){
        content = `<h1>欢迎进入首页</h1>`
    }else if(req.url == '/screen.html'){
        content = `<h1>欢迎使用大屏</h1>`
    }
    // 设置Content-Type请求头,解决中文乱码
    res.setHeader('Content-Type', 'text/html;charset=utf-8')
    // 将内容响应给客户端
    res.end(content)
})

在这里插入图片描述
在这里插入图片描述

相关文章:

  • skywalking微服务链路追踪
  • 小白电路设计-设计2-可调式单电源直流稳压电路设计
  • Python实战(2)-数据库支持
  • numpy学习笔记14:模拟随机游走过程
  • hadoop-HDFS操作
  • 【链表】一文搞定链表算法:从基础到实战
  • 人工智能:如何把excel中某数据区域中,含有空格数据的单元格标记背景颜色出来?
  • S32K144外设实验(二):ADC单通道单次采样(软件触发)
  • 《Linux:动态库动态链接与静态库静态链接》
  • 声动未来,门店数字化助力韶音加速破圈
  • 4. 移动到末尾(蓝桥云课)
  • stm32第七天震动传感器
  • Java 文件和IO流基础(生动形象版)
  • 进程间通信(1)——管道
  • Android AI ChatBot-v1.6.3-28-开心版[免登录使用GPT-4o和DeepSeek]
  • 深入理解Java内存模型(JMM)及其并发编程中的应用
  • 「JavaScript深入」WebSocket:高效的双向实时通信技术
  • 【基于深度学习的验证码识别】---- part3数据加载、模型等API介绍(2)
  • HAL库编程知识点---Can.c和Driver_can.c分层开发
  • Linux | gcc编译篇
  • 外交部发言人就印巴局势升级答记者问
  • 涨知识|没想到吧,体育老师强调的运动恢复方法是错的?
  • 长三角地区中华老字号品牌景气指数发布,哪些牌子是你熟悉的?
  • 见微知沪|优化营商环境,上海为何要当“细节控”自我加压?
  • 首届上海老年学习课程展将在今年10月举办
  • 加力、攻坚、借力、问效,上海为优化营商环境推出增量举措