3.http模块

文章目录

    • @[TOC](文章目录)
  • 1、什么是http模块?
    • 1.1.作用
    • 1.2.服务器相关概念
    • 1.2.创建基本的web服务器-实现的核心步骤和代码
      • 1.2.1导入http模块
      • 1.2.2.req 请求对象
    • 1.3.根据不同的url地址 响应不同的html内容
    • 1.4.案例-clock时钟的web服务器

1、什么是http模块?

🍔什么是客户端,什么是服务器
在网络节点中,负责消费资源的电脑,叫做客户端;
负责对外提供网络资源的电脑,叫做服务器。
🍳http模块和之前的fs模块都是node官方提供的模块,用来创建web服务器的模块。通过提供的http.createServer()方法,就能把电脑变成一台服务器,对外提供资源服务。
同样需要先导入它

const http = require('http');

1.1.作用

🍿服务器与普通电脑的区别在于,服务器上安装了 web服务器软件,例如:IIS、Apache等。通过安装这些服务器软件,把一台电脑变成一台web服务器。
🥞在Node中,可以基于Node.js提供的http模块,通过几行代码,从而对外提供web服务

1.2.服务器相关概念

🌯IP地址

  • 是每台计算机的唯一地址,具有唯一性,只有在知道对方ip地址的前提下,才能与对应的电脑之间进行数据通信。
  • 如果想要知道某一个网站的ip地址,可以在终端中(windows+r)使用ping 网址 便可知道
    🥙域名域名服务器
  • 由于ip地址是一长串数字,不直观,不便于记忆,于是发明了另一套字符型地址方案,即称之为域名地址
  • IP地址域名地址一一对应,这份对应关系存放在一种叫做域名服务器(DNS) 的电脑中。使用者只需通过好记忆的域名访问即可,转换工作由域名服务器实现。因此,域名服务器提供ip地址和域名之间转换服务的服务器
    🌭注意点:
  • 单纯使用ip地址访问也可正常访问,但是,域名更方便。
    🥓端口号
  • 计算机中的端口号是一种标记,通过特定的标记,可以访问对应的资源
  • 由于服务器上可以运行多个web服务,每个web服务都对应一个唯一的端口号。客户端发送过来的网络请求,可以通过端口号,准确地交给对应的web服务器进行处理。

1.2.创建基本的web服务器-实现的核心步骤和代码

  • 1.导入http模块
  • 2.创建web服务器实例
  • 3.为服务器实例绑定request事件,监听客户端的请求
  • 4.启动服务器

1.2.1导入http模块

在这里插入图片描述

1.2.2.req 请求对象

🚜只要服务器收到了客户端的请求,就会调用通过server.on() 为服务器绑定的request 事件处理函数

// 3.为服务器实例绑定`request`事件,监听客户端的请求
server.on('request', function (req, res) {console.log('有人发请求了 server');
//req 請求對象,包含了与客户端相关的数据和属性
//req.url 请求的url地址
//req.method 请求的类型,如GET、POST等
//req.headers 请求头信息,是一个对象,包含了请求头信息的键值对})

在这里插入图片描述

1.3.根据不同的url地址 响应不同的html内容

🚜核心实现步骤:

  • 1.获取请求url地址
  • 2.设置默认的响应式内容为404 not found
  • 3.判断用户请求的是否为//index.html首页
  • 4.设置Content-Type响应头,防止中文乱码
  • 5.使用res.end()把内容响应给客户端
    在这里插入图片描述

1.4.案例-clock时钟的web服务器

🍔核心:

  • 把文件的实际存放的路径,作为每个资源的请求url地址
    🥟步骤:
  • 1.导入需要的模块
  • 2.创建基本的服务器
  • 3.将资源的请求url地址映射为文件的存放路径
  • 4.读取文件内容并响应给客户端
  • 5.优化资源的请求路径
    在这里插入图片描述
    🍔优化资源的请求路径
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/478979.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Nginx】核心概念与安装配置解释

文章目录 1. 概述2. 核心概念2.1.Http服务器2.2.反向代理2.3. 负载均衡 3. 安装与配置3.1.安装3.2.配置文件解释3.2.1.全局配置块3.2.2.HTTP 配置块3.2.3.Server 块3.2.4.Location 块3.2.5.upstream3.2.6. mine.type文件 3.3.多虚拟主机配置 4. 总结 1. 概述 Nginx是我们常用的…

uniapp开发微信小程序笔记8-uniapp使用vant框架

前言:其实用uni-app开发微信小程序的首选不应该是vant,因为vant没有专门给uni-app设置专栏,可以看到目前Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本和支付宝小程序版本。 但是我之前维…

IDEA2024创建一个spingboot项目

以下是创建一个基本的 Spring Boot 项目的步骤和示例: 初始化一个springboot工程其实有许多方法,笔者这里挑了一个最快捷的方式搭建一个项目。我们直接通过官方平台(start.spring.io)进行配置,然后下载压缩包就可以获取…

Easyexcel(7-自定义样式)

相关文章链接 Easyexcel(1-注解使用)Easyexcel(2-文件读取)Easyexcel(3-文件导出)Easyexcel(4-模板文件)Easyexcel(5-自定义列宽)Easyexcel(6-单…

北京航空航天大学多模态自适应攀岩机器人:突破复杂地形挑战

近年来,地外天体探测任务的需求显著增加,尤其是在月球、火星等崎岖地形的探索中,攀岩机器人凭借其灵活性和稳定性成为重要工具。然而,传统攀爬技术在面对复杂地形时仍面临诸多挑战,如附着装置的适应性不足、柔顺性较低…

【Java】二叉树:数据海洋中灯塔式结构探秘(上)

个人主页 🌹:喜欢做梦 二叉树中有一个树,我们可以猜到他和树有关,那我们先了解一下什么是树,在来了解一下二叉树 一🍝、树型结构 1🍨.什么是树型结构? 树是一种非线性的数据结构&…

深度学习基础01_深度学习概述参数初始化激活函数

目录 一、深度学习概述 二、神经网络 1、感知神经网络 2、人工神经元 1.构建 2.组成 3.数学表示 3、深入神经网络 1.基本结构 2.网络构建 3.全连接神经网络 三、数据处理 四、参数初始化 1、固定值初始化 1.全零初始化 2.全1初始化 3.任意常数初始化 2、随机…

从Full-Text Search全文检索到RAG检索增强

从Full-Text Search全文检索到RAG检索增强 时光飞逝,转眼间六年过去了,六年前铁蛋优化单表千万级数据查询性能的场景依然历历在目,铁蛋也从最开始做CRUD转行去了大数据平台开发,混迹包装开源的业务,机缘巧合下做了实时…

C++ 优先算法 —— 无重复字符的最长子串(滑动窗口)

目录 题目: 无重复字符的最长子串 1. 题目解析 2. 算法原理 Ⅰ. 暴力枚举 Ⅱ. 滑动窗口(同向双指针) 3. 代码实现 Ⅰ. 暴力枚举 Ⅱ. 滑动窗口 题目: 无重复字符的最长子串 1. 题目解析 题目截图: 此题所说的…

【pyspark学习从入门到精通19】机器学习库_2

目录 估计器 分类 回归 聚类 管道 估计器 估计器可以被看作是需要估算的统计模型,以便对您的观测值进行预测或分类。 如果从抽象的 Estimator 类派生,新模型必须实现 .fit(...) 方法,该方法根据在 DataFrame 中找到的数据以及一些默认或…

JAVA---IO

目录 IO流 一 字节流 1 FileOutStream 1 书写: 2 换行书写与续写: 2 FileInputStream 1 读取数据 2 循环读取: 二 字符流 1 FileReader 1 空参的read()方法读取数据: 2 有参的read()方法读取数据: 3 指定字…

4.6 JMeter HTTP信息头管理器

欢迎大家订阅【软件测试】 专栏,开启你的软件测试学习之旅! 文章目录 前言1 HTTP信息头管理器的位置2 常见的HTTP请求头3 添加 HTTP 信息头管理器4 应用场景 前言 在 JMeter 中,HTTP信息头管理器(HTTP Header Manager&#xff09…

C语言解析命令行参数

原文地址:C语言解析命令行参数 – 无敌牛 欢迎参观我的个人博客:无敌牛 – 技术/著作/典籍/分享等 C语言有一个 getopt 函数,可以对命令行进行解析,下面给出一个示例,用的时候可以直接copy过去修改,很方便…

Android 11 三方应用监听关机广播ACTION_SHUTDOWN

前言 最近有项目过程中,有做app的同事反馈,三方应用无法监听关机广播。特地研究了下关机广播为啥监听不到。 1.原因:发送关机广播的类是ShutdownThread.java,添加了flag:Intent.FLAG_RECEIVER_FOREGROUND | Intent.FLAG_RECEIVER…

【Python】九大经典排序算法:从入门到精通的详解(冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、计数排序、基数排序、桶排序)

文章目录 1. 冒泡排序(Bubble Sort)2. 选择排序(Selection Sort)3. 插入排序(Insertion Sort)4. 归并排序(Merge Sort)5. 快速排序(Quick Sort)6. 堆排序&…

计算机毕业设计Hadoop+Spark音乐推荐系统 音乐预测系统 音乐可视化大屏 音乐爬虫 HDFS hive数据仓库 机器学习 深度学习 大数据毕业设计

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

深入理解 Java 基本语法之运算符

(一)研究背景 在 Java 编程中,运算符是处理数据和变量的基本工具,掌握各种运算符的使用方法对于提高编程效率至关重要。 (二)研究目的 深入理解 Java 基础运算符的概念、分类和作用,通过具体…

【微服务】 Eureka和Ribbon

一、Eureka 服务调用出现的问题:在远程调用另一个服务时,我们采用的解决办法是发送一次http请求,每次环境的变更会产生新的地址,所以采用硬编码会出现很多麻烦,并且为了应对并发问题,采用分布式部署&#…

计算机毕业设计Python+大模型美食推荐系统 美食可视化 美食数据分析大屏 美食爬虫 美团爬虫 机器学习 大数据毕业设计 Django Vue.js

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

QT QToolButton控件 全面详解

本系列文章全面的介绍了QT中的57种控件的使用方法以及示例,包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizontalSpacer)、…