30行代码构建HTTP服务器
前两天调代码,想查看测试覆盖率生成的网页报告文件,没有安装HTTP服务器客户端。就在VS Code中下载一个叫Live Server
的插件,用来启动HTTP服务。感觉效果还不错,然后今天和大家用Node来实现一个。
开始
构建HTTP服务,需要先了解一下HTTP协议的基础知识
HTTP工作原理
HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。
HTTP请求格式
HTTP响应格式
编码
这里的需求比较简单,只要能GET即可,不需要POST
这里会用到Node的http
和fs
模块
导入模块
1 | const http = require("http"); |
创建服务
1 | const server = http.createServer(); // 创建服务 |
Content-Type的HashMap
这里定义了我们网页中,常用的一些文件类型
1 | const CONTENT_TYPE_MAP = { // 定义Content-Type的HashMap |
处理Request
在返回response的时候,如果文件类型在CONTENT_TYPE_MAP
中没有,我们则以application/octet-stream
类型返回,浏览器端会直接将文件下载到本地。
1 | server.on("request", function(request, response) { |
到这里,借助Node V8引擎,一个极为轻量化、性能优异的基础HTTP服务器就开发完成了。需要本地启动HTTP服务器的时候,再也不用到网上下载啥客户端了,30行代码就搞定。需要的时候,直接命令行启动即可。
评论
TwikooValine