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

建网站不想用怎样撤销有关于做茗茶的网站

建网站不想用怎样撤销,有关于做茗茶的网站,百度怎么注册店面地址,防封号电销系统下面我们来学nodejs中的http模块。在此之前,你需要有一定的网络知识储备,能知道http,IP,端口是什么并且它们之间的关系。如果还不清楚或比较模糊,可以查看下面的文章: HTTP协议与IP 下面我们开始学习。 目…

下面我们来学nodejs中的http模块。在此之前,你需要有一定的网络知识储备,能知道http,IP,端口是什么并且它们之间的关系。如果还不清楚或比较模糊,可以查看下面的文章:
HTTP协议与IP

下面我们开始学习。

目录

创建一个HTTP服务端

向本机端口发送请求

HTTP服务的注意事项

1、如何关闭服务器?

2、如何实现代码的修改更新?

3、响应内容中文乱码

4、端口号被占用

5、HTTP协议默认端口

在浏览器中查看报文


创建一个HTTP服务端

有了HTTP服务端后,我们就能处理浏览器发送过来的请求,并且可以返回响应。和前端开发不同,我们无法在浏览器中看到我们编写的结果,因此我们需要逐渐习惯后端开发时的编写习惯。

1、导入http模块

const http = require('http');

这部分和之前的导入模块相同。

2、创建服务对象

创建服务对象我们使用 createServer 方法来创建,其返回结果为一个对象。代码为:

const server = http.createServer();

该方法有一个实参,它是一个函数;该函数又接受两个形参,为 request 和 response。request是浏览器发送的请求报文的封装对象,可以获取到请求报文的相关内容。

而response则是对响应报文的封装对象,可以为浏览器设置响应结果。

这里我们说明一下,request和rresponse只是参数名称,我们可以自己为参数命名。

下面我们简单书写一下函数:

const server = http.createServer((request,response) => {response.end('Hello HTTP Server');//设置响应体并结束响应
});

后面我们还会详细讲解如何去编写,这里我们就留个印象,要知道这么写的目的是什么。

3、监听端口,启动服务

直接看代码:

server.listen();

listen是对象里面的一个方法,需要往里面传入两个参数:一个数值和回调函数。具体如下:

server.listen(9000,() => {console.log('服务器已成功启动...');
});

数值表示端口号,上面代码表示端口号为9000。当然其他端口也可行,这里我们选取9000。直接运行上述代码查看结果:

这样我们就成功运行了。当服务器启动成功以后才会执行回调函数内的代码。(response)

现在,端口9000就已经被我们的服务器占用了。将来只要有程序往9000端口发送http请求,回调函数就就会被执行。我们知道,浏览器会向服务器发送http请求;下面我们使用本机的IP试着发送请求。

向本机端口发送请求

向本机端口发送请求,我们首先要知道本机的IP地址。而本机回环地址就是我们当前计算机,即本机的地址。IP为:127.0.0.1。下面我们打开浏览器,输入IP发送我们的http请求。

http://127.0.0.1:9000/

在网址栏输入上述代码,跳转后我们就能看到执行了回调函数之后的页面。

HTTP服务的注意事项

1、如何关闭服务器?

启动服务之后,我们使用 Crtl + C 就能停止运行。

2、如何实现代码的修改更新?

如果我们想对代码进行修改后服务器也会做出对应修改该怎么办呢?比如我们把之前的 'Hello HTTP Server' 修改为'Hello World!':

const http = require('http');
const server = http.createServer((request,response) => {response.end('Hello World!');//设置响应体并结束响应
});
server.listen(9000,() => {console.log('服务器已成功启动...');
});

直接修改后发现页面没有变化。这时我们需要关闭当前服务器并再次启动才会实现更新。即重启服务。

3、响应内容中文乱码

我们再次修改文本内容,这次我们使用中文 “你好” 来替换文本。

response.end('你好');

重启服务器,发现出现了奇怪的结果:

感兴趣可以多尝试一些中文文本,会看到都会出现乱码。这里是因为字符集的问题。我们在前面多加入一行代码:

response.setHeader('content-type','text/html;charset=utf-8');

这段代码是什么意思呢?它表示在发送请求报文时,多加入一个键名为 conten.type 的响应头;返回的内为HTML,并且字符的格式为 utf-8 。这样浏览器就会按照utf-8字符集的规范来解析字符了。下面我们重启一下服务,发现回归正常:

4、端口号被占用

我们在vscode中保持服务器不断开,新打开一个终端,启动文件会发现出现报错:

这时就是端口已经被占用的情况。我们在另一个终端已经使用了9000端口,不能再被其他的使用。解决这个问题有两个方法,一是停止正在启动的端口;二是修改端口号。

5、HTTP协议默认端口

HTTP协议的默认端口为80。如果我们不设置端口号,请求就会默认向80端口发送请求。再补充一下 https协议的默认端口为443。

在浏览器中查看报文

我们在之前运行的页面上打开控制台应用,选择网络:

之后我们启动服务器就能看到出现了两个请求:

我们先看下面那个 favicon.ico ,这个其实是谷歌浏览器的默认行为,在打开网页时它都会发送这样一个请求。

我们再来看向本机发送的请求,有三个大的分类项;我们打开请求标头,就能看到报文的内容了。但打开后发现没有请求行,我们点击原始(源代码),就能看到初始的代码,也就能看见请求行了。

那么请求体怎么看呢?我们需要另外建立一个文件:

如图所示我们快速建立一个html文件,如下书写一个表单:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><form action="http://127.0.0.1:9000" method="post"><input type="text" name="username"><input type="password" name="password"><input type="submit" value="提交"></form>
</body>
</html>

之后打开网页,输入对应的信息后提交后就会像对应端口发送一个Post请求。

提交后我们能在控制台看到多出来一个“负载”标签页,里面存放我们刚刚输入的信息:

这就是格式化之后的请求体内容。如果想要查看原始的内容,点击查看源即可:

username=123&password=123456

http://www.dtcms.com/a/423054.html

相关文章:

  • PDDA-CY5用于制备荧光标记聚合物、纳米载体或功能化材料
  • 信息安全基础知识:10入侵检测技术
  • 电机控制:前馈与反馈
  • 创网站永久免费建站如何让百度不收录网站
  • Frames:Runway推出的AI图像生成模型,提供前所未有的风格控制和视觉一致性
  • Sentinel 深度解析:限流与熔断降级的微服务稳定性保障实践
  • wordpress 网站图标软件开发一个月多少工资
  • 计算机视觉(opencv)——基于 dlib 人脸对齐
  • 古代游戏中的社交密码
  • (免费分享)基于python的飞机大战游戏
  • 虚幻引擎UE5专用服务器游戏开发-21 连招技能动画蒙太奇播放
  • 洛阳市建设厅网站网站优化布局
  • 20250929给PRO-RK3566开发板在Buildroot系统下裁剪内核【已关闭摄像头ov4689为例子】
  • Python 豆瓣TOP250 爬虫类讲解
  • 建一个网站迈年广电基础设施建设官方网站
  • Microsoft Access SQL 查询中的通配符
  • 服务好的高端网站建设企业网站开发一般用的什么架构
  • Trae添加mysql mcp AI编程 链接数据库
  • LeetCode 199. 二叉树的右视图
  • 做网页和网站有什么区别吗网站如何做移动适配
  • 番禺区移动端网站制作外贸公司名称大全简单大气
  • flutter实现Function Call
  • 如何给给公司建立网站毕业设计做视频网站
  • 【c++】:Pimpl 模式使用
  • 深度解析MySQL InnoDB缓冲池性能优化
  • 基于Chrome140的FB账号自动化——脚本撰写(二)
  • 机构投资者沟通指数(2011-2024)
  • isolcpusnohz_full
  • p2p网上贷款网站建设方案.docx一站式网站开发
  • 我的创作纪念日 -- aramae