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

node.js 实战——(Http 知识点学习)

HTTP

又称为超文本传输协议
是一种基于TCP/IP的应用层通信协议;这个协议详细规定了 浏览器 和万维网 服务器 之间互相通信的规则。协议中主要规定了两个方面的内容:

  • 客户端:用来向服务器发送数据,可以被称之为请求报文
  • 服务端:向客户端返回数据,可以被称之为响应报文

请求报文

请求报文
请求行
请求头
空行
请求体

在这里插入图片描述

请求头

格式: 请求头名:值

请求头说明
Host主机名
Connection连接的设置 keep-alive(保持连接);close(关闭连接)
User-Agent用户代理,客户端字符串标识,服务器可以通过这个标识来识别这个请求来自
哪个客户端 ,一般在PC端和手机端的区分
Accept设置浏览器接收的数据类型
Accept-Encoding设置接收的压缩方式
CookieCookie值

请求体

请求体内容的格式是非常灵活的,
(可以是空)> GET请求,
(也可以是字符串,还可以是JSON)
=> POST请求

响应报文

响应报文
响应行
响应头
空行
响应体

响应头

在这里插入图片描述

node 中使用Http

创建Http服务端

//1. 导入 http 模块
const http = require('http');
//2. 创建服务对象 create 创建 server 服务
// request 意为请求. 是对请求报文的封装对象, 通过 request 对象可以获得请求报文的数据
// response 意为响应. 是对响应报文的封装对象, 通过 response 对象可以设置响应报文
const server = http.createServer((request, response) => {
response.end('Hello HTTP server');
});
//3. 监听端口, 启动服务
server.listen(3000, () => {
console.log('服务已经启动, 端口 3000 监听中...');
});

1、当服务启动后,更新代码必须重启服务才能生效;当然你也可以安装nodemon 来解决这个问题
2、如果响应内容中出现中文乱码,可以在响应头设置如下代码解决
response.setHeader(‘content-type’,‘text/html;charset=utf-8’);

获取请求行和请求头

方法说明
request.method获取请求方法
request.url获取请求路径,只包含url中的路径与查询字符串
request.headers获取请求头内容

获取请求体

const http = require('http')const server = http.createServer((req, res) => {let body="";req.on('data',(chunk) => {body += chunk;})req.on('end', () => {res.end('table');})
})server.listen(9000, () => {console.log('Listening on port 9000,')
})

获取请求路径与查询字符串

引入url模块

const http = require('http')
const url = require('url')
const server = http.createServer((req, res) => {let res =url.parse(req.url)//路径let path=res.pathname;//查询字符串url.parse(req.url,true);
})server.listen(9000, () => {console.log('Listening on port 9000,')
})

直接实例化URL对象

const http = require('http')
const server = http.createServer((req, res) => {let url = new URL(req.url,"http://"+req.headers.host);res.setHeader('Content-Type','text/html; charset=utf-8');if(url.pathname==='/login'){res.end('登陆页面')}else if(url.pathname==='/reg'){res.end('注册页面')}else{res.end('欢迎你')}
})server.listen(9000, () => {console.log('Listening on port 9000,')
})

设置HTTP响应报文

语法说明
response.statusCode设置响应状态码
response.statusMessage设置响应状态描述
response.setHeader(‘头名’, ‘头值’)设置响应头信息
response.write(‘xx’)
response.end(‘xxx’)
设置响应体

相关文章:

  • EasyRTC音视频实时通话在线教育解决方案:打造沉浸式互动教学新体验
  • Oracle 11g RAC手动打补丁详细步骤
  • 240424 leetcode exercises II
  • 算法训练营第二天| 209.长度最小的子数组、59.螺旋矩阵II、区间和
  • Flink 消费 Kafka 数据流的最佳实践
  • 【激光雷达3D(7)】CenterPoint两阶段细化仅使用BEV特征;PV-RCNN两阶段细化使用体素特征;M3DETRTransformer统一多表征特征
  • 机器学习(7)——K均值聚类
  • 17.第二阶段x64游戏实战-人工遍历二叉树结构
  • 精益数据分析(20/126):解析经典数据分析框架,助力创业增长
  • Ollama工具调用(Tool Calls)业务应用案例
  • 各种各样的bug合集
  • 第一章:Model Context Protocol (MCP)
  • 【k8s】k8s是怎么实现自动扩缩的
  • 32BIT的SPI主机控制
  • 面试篇:Spring Boot
  • HOJ.单词统计
  • NLP实战(4):使用PyTorch构建LSTM模型预测糖尿病
  • 【网工第6版】第5章 网络互联⑦
  • 软考:数值转换知识点详解
  • Phthon
  • 帕力旦·吐尔逊已任喀什大学党委副书记、校长
  • 美媒称特朗普考虑大幅下调对华关税、降幅或超一半,外交部回应
  • 2025欧亚经济合作发展论坛在沪举办
  • 洛阳白马寺内的狄仁杰墓挂上公示牌争论尘埃落定?瀍河区文旅局称已确认
  • 智飞生物一季度营收下滑79%,连续三个季度亏损,称业绩波动与行业整体趋势一致
  • 吉祥航空去年净利增超17%,海航实控人方威退出前十大股东