http-server 是一个简单的、零配置的命令行静态 HTTP 服务器。它对于生产使用来说足够强大,但它足够简单和可破解,常用于前端开发测试、静态网站预览等场景。
一、File 协议和 Http 协议
- FIle 协议也叫本地文件传输协议 ,主要用于访问本地计算机中的文件,即 File 协议是访问你本机的文件资源; 基本的格式:file:///文件路径。
- http 协议是 HyperText Transfer Protocol,即超文本传送协议的缩写。是用来从万维网服务器传输超文本到本地浏览器的传送协议,基于 TCP/IP 通信协议来传输数据。http 协议工作于客户端-服务器架构上,浏览器作为 http 客户端通过 url 向 http 服务器端发送请求,服务器接收到请求后,向客户端发送请求;基本的格式:http://10.4.121.22:9999/index.html
二、 安装方法
# 通过npm全局安装
npm install -g http-server
# 通过yarn安装
yarn global add http-server
三、 使用方法
1、常见命令
| 命令 | 描述 |
|---|---|
| -p 或者 --port | 端口设置,默认 8080 |
| -P 或者 --proxy | 所有无法在本地解析的请求代理到给定的 URL |
| --proxy-options | 传递代理选项。例如:--proxy-options.secure false |
| -a | 要使用的地址,默认为 0.0.0.0 |
| -o | 启动服务器后打开浏览器窗口 (可选)提供要打开的 URL 路径。例如:-o /其他/目录/ |
| -g 或者 --gzip | 默认 false,是否开启 gzip 访问 |
| –cors | 通过 Access-Control-Allow-Origin 标头启用 CORS |
| -S 或者 –-ssl | 启用 https。 |
| -C 或者 -–certssl | cert 文件的路径(默认值:) cert.pem。 |
| -K 或者 –-keyssl | 密钥文件的路径(默认值:) key.pem。 |
| -c | 设置缓存控制 max-age 标头的缓存时间(秒,默认为 3600),-c1010(缓存 1010 秒)。禁用缓存(-c-1) |
| --mimetypes | 用于自定义 mimetype 定义的 .types 文件的路径 |
| -r 或者 -–robots | 提供/robots.txt(其内容默认为 User-agent: *\nDisallow: /) |
| -h 或着 -–help | 打印此列表并退出。 |
2、基础使用
语法 : http-server [path] [options]
# 开启服务
http-server //启动服务
# 设置监听地址
http-server -a 127.0.0.1
# 设置监听端口
http-server -p 3500
# 禁用缓存
http-server -c-1
# 设置服务代理
//将请到代理到http://172.11.1.10:3500
http-server -P http://172.11.1.10:3500
http-server --proxy http://172.11.1.10:3500
# 命令同时使用
http-server -a 127.0.0.1 -p 35000 -c-1
3、高阶使用
跨域支持
http-server --cor
启动 https 服务
首先,确保您有 key.pem 和 cert.pem 文件。如果安装了 openssl 可使用以下命令生成证书
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
//会生成一个证书密钥对,有效期大约为 10 年(准确地说是 3650 天)。
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
如果安装了 git,也可以使用 git 的 openssl 模块,生成证书,到对应文件路径下,启动 git bash;执行命令openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
生成证后启动 https 服务
http-server -S -C cert.pem