http模块学习

http模块

  • 客户端:负责消费资源的电脑

  • 服务器:负责对外提供网络资源的电脑,与普通电脑的区别就在于服务器上 安装了web服务器软件。

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

  • 使用http模块创建web服务器,需要使用以下代码导入它
    const http = require('http');

    IP地址:互联网上每台计算机的唯一地址,具有唯一性。采用 "点分十进制"表示,例如192.1688.1.1,互联网上的每台web服务器都有自己的IP地址,可以在windows终端运行ping www.baidu.com,即可查看百度服务器的IP地址,通过百度IP地址可以直接打开百度。在开发期间自己的电脑既是一个服务器也是一个客户端,为了方便测试可以在浏览器输入127.0.0.1这个 IP地址,就能将自己的电脑当作一台服务器进行访问。

  • 服务器相关概念:

    • 域名:字符型的地址方案,即所谓的域名地址,IP地址和 域名是一一对应的关系,由于直接使用IP地址(如192.168.1.1)既不方便记忆也不直观,人们便发明了域名系统,通过有意义的单词组合来代表IP地址,例如"example.com"就是一个典型的域名。域名的结构通常包括顶级域名(如.com、.cn)、二级域名(通常是企业或个人选择的名称,如google),以及可能的子域名(如mail.google.com)。这样的结构设计既方便记忆,又能传达一定的信息。
    • 域名服务器:即DNS,提供IP地址和域名之间的转换服务的服务器。
    • 端口号:类似于门牌号,对应相应的服务器,每个端口号不能同时 被多个web服务器占用,实际应用中URL的80端口可以被省略。在一台电脑中可以运行成百上千个web服务器,每个服务器对应唯一的一个端口号,客户端发送网络请求,,通过端口号准确的交给对应的web服务进行处理。
  • 创建最基本的web服务器

    • 导入http模块
      const http = require('http');
    • 创建web服务器实例
      调用http.createServer()方法即可快速创建一个web服务器实例
      const server = http.createServer();
    • 为服务器实例绑定request事件,监听客户端的请求
    javascript 复制代码
    //使用服务器实例的 .on()方法,为服务器绑定一个request事件
    server.on('request', (req, res) => {
    //只要又客户端来请求我们自己的服务器,就会触发request事件,从而调用这个事件处理函数
    	console.log('Someone visit our web server.')
    })
    • 启动服务器
    javascript 复制代码
    //调用 server.listen(端口号, cb回调)方法,即可启动web服务器
    server.listen(80, () => {
       console.log('http server running at http://127.0.0.1')
    })

    总结测试

    测试代码及讲解在最后

  • 分享几个实用的快捷键:

    • node 文件名的第一个字符然后按tab键就可以补全文件名(适用于文件名长)
    • cls命令,终端清屏
    • 键盘上的⬆,按一下就可以出现上一条输入的命令(适用于输入重复命令)
  • 首先运行代码 node 文件名.js 如下

  • 然后复制网址http://127.0.0.1在浏览器打开,也可以直接按住ctrl键点击终端中的该网址,也可以直接打开,显示如下

  • 在后面添加/about.html如下

javascript 复制代码
//导入 http模块
const http = require('http');
//创建web服务器实例
const server = http.createServer();
//为服务器实例绑定request事件,监听客户端的请求
//req是请求对象,包含了与客户端相关的数据和属性
server.on('request', (req, res) => {
  //req.url是客户端请求的URL地址,获取请求的url地址
  const url = req.url;
  //设置默认的内容为 404 Not found
  let content = '<h1>404 Not  found</h1>'
  if (url === '/' || url === '/index.html') {
    content = '<h1>首页</h1>'  //用户请求的是首页
  } else if (url === '/about.html') {
    content = '<h1>关于页面</h1>'  //用户请求的是关于页面
  }
  //req.method是客户端请求的method类型
  //const method = req.method;
  //若是发送的内容包含中文,为了防止中文显示乱码的问题,需要设置响应头 Content-Type的值为 text/html; charset=utf-8
  res.setHeader('Content-Type', 'text/html; charset=utf-8');

  //res是响应对象,用于访问与服务器相关的数据或属性
  //调用res.end()方法向客户端响应一些内容
  res.end(content);
})
//4.启动服务器
server.listen(80, function () {
  //这里前面提到过,如果是80端口可以省略,其它端口格式应该类似于http://127.0.0.1:80
  console.log('server  running at http://127.0.0.1')
})

✌又学完一点点,继续加油(ง •_•)ง

相关推荐
阑梦清川12 分钟前
国防科技大学计算机基础慕课课堂学习笔记
笔记·学习·数学建模
不想说话的麋鹿1 小时前
《NestJS 实战:RBAC 系统管理模块开发 (三)》:角色权限分配与数据一致性
前端·后端·node.js
水水沝淼㵘1 小时前
嵌入式开发学习日志(数据库II && 网页制作)Day38
服务器·c语言·网络·数据结构·数据库·学习
程序猿小D1 小时前
第26节 Node.js 事件
服务器·前端·javascript·node.js·编辑器·ecmascript·vim
hnlucky2 小时前
安装vue的教程——Windows Node.js Vue项目搭建
前端·javascript·vue.js·windows·node.js
守护者1702 小时前
JAVA学习-练习试用Java实现“一个词频统计工具 :读取文本文件,统计并输出每个单词的频率”
java·学习
前端服务区2 小时前
package.json文件
node.js
不太可爱的叶某人2 小时前
【学习笔记】深入理解Java虚拟机学习笔记——第3章 垃圾收集器与内存分配策略
java·笔记·学习
Chef_Chen2 小时前
从0开始学习R语言--Day21--Kruskal-Wallis检验与Friedman检验
学习
新中地GIS开发老师3 小时前
2025武汉考研形势分析,趋势、挑战与应对策略
学习·考研·arcgis·大学生·gis开发·webgis·地理信息科学