http介绍
什么是http
传输协议。
客户端以什么样的形式发送数据给服务器端
服务器端以什么样的形式发送数据给客户端
http协议基于TCP面向连接
请求方式
get
get 的语义时获取的意思。如果要从服务器端获取数据,则使用get
get 的参数会在地址栏显示,不安全
post
post 的语义时邮寄的意思。如果要将本地的数据推送给服务器端,则使用post
post 的参数不会在地址栏显示,安全
常见的状态码
200:成功 2开头的都表示成功
404:请求的资源不存在。 4开头的都表示客户端错误。
302:重定向。 类似于生活的呼叫转移。
500:服务器端错误。
https://www.mi.com/redminote11pro?id=1
mi.com表示小米的服务器,redminote11pro 表示这台服务器上的具体资源。 id=1是客户端发送给服务器端的数据。
搭建服务器
//引入http模块,用于搭建服务器。
const http = require("http");
//创建服务,传入一个回调函数,当请求进来的时候,该回调就会执行。
//req:请求对象 包含请求信息和对应的方法
//res:响应对象 包含响应信息和对应的方法
let app = http.createServer((req, res) => {
res.end("<h1>Hi,Good afternoon</h1>");//这里暂时不可以写汉字,会出现乱码
});
//添加端口监听 每一个软件启动都需要一个端口
app.listen(3000);
//只是输出一个提示信息而已
console.log("服务已启动!");
访问html中的内容并返回
创建一个需要被访问的index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1 style="color: pink;">最后的倔强——发际线决不后退</h1>
</body>
</html>
const fs = require("fs");
const path = require("path");
const http = require("http");
http.createServer((req,res) => {
res.setHeader("Content-Type", "text/html;charset=utf-8;");
//异步写法
//当有请求进来后,读取index.html中的内容并返回
fs.readFile(path.join(__dirname,"index.html"),"utf-8",(err,data) =>{
if(err){
console.log(err);
res.end(JSON.stringfy(err));
return
}
//前后端交互时,只能请求和响应字符串
res.end(data);
} )
//同步写法
// const data = fs.readFileSync(path.join(__dirname,"index.html"),"utf-8")
// res.setHeader("Content-Type","text/html;charset=utf-8;")
// res.end(data);
}).listen(3000);
console.log("服务器已启动")
打开服务器输入127.0.0.1:3000便可以访问html的内容