使用 nodeJS 搭建一个简单的本地 HTTP 服务器。
HTTP 服务器的原理:
HTTP 协议定义 web 客户端如何从 web 服务器请求 web 页面,以及服务器如何把 web 页面传送给客户端。HTTP 协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。
以下是HTTP请求/响应的步骤:
- 客户端连接到 Web 服务器
一个 HTTP 客户端(通常是浏览器),与 Web 服务器的 HTTP 端口(默认为80)建立一个TCP套接字连接。 - 发送 HTTP 请求
通过 TCP 套接字,客户端向 Web 服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据 4 部分组成。 - 服务器接受请求并返回 HTTP 响应
Web 服务器解析请求,定位请求资源。服务器将资源复本写到 TCP 套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。 - 释放连接TCP连接
Web服务器主动关闭 TCP 套接字,释放 TCP 连接;客户端被动关闭 TCP 套接字,释放 TCP 连接。 - 客户端浏览器解析 HTML 内容
客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的 HTML 文档和文档的字符集。客户端浏览器读取响应数据 HTML,根据 HTML 的语法对其进行格式化,并在浏览器窗口中显示。
使用node去实现一个简单的http服务器很容易
1.监听浏览器端口(http模块)
2.获取请求的url(服务器端文件处理获取指定文件 fs文件模块)
3.返回数据
let http = require('http')
let fs = require('fs')
let root = "F:/node-demo/html/index.html"
let server = http.createServer((req, res) => {
let url = req.url;
let file = root + url;
fs.readFile(file, (err, data) => {
if (err) {
res.writeHeader(404, {
"content-type": "text/html;charset='utf-8'"
});
res.write('<h1>404 错误</h1><h2>页面不存在</h2>');
res.end();
} else {
res.writeHeader(200, {
"content-type": "text/html;charset='utf-8'"
})
res.write(data)
res.end()
}
})
}).listen(8080)
console.log('---------服务器已开启--------')
在项目下运行:
node server.js
浏览器中输入localhost:8080,一个简单 http 服务器就实现了
网友评论