
前言
http消息是由客户端到服务端的请求以及服务端到客户端的响应组成
一、请求(request)
- 请求动词 路径加查询参数 协议名/版本
- Host:域名或Ip
- Accept: text/html
- content-Type:请求体的格式
- 回车
- 请求体(上传内容)
标注:
请求行(橙色)
1. 请求动词:
GET/POST/PUT/PATCH/DELETE等 记住: GET:获取 POST:上传注意:当请求动词为GET时,请求体一般为空
2. 协议版本
目前几乎用的都是http1.1版本,增加了一个很重要的特性它支持长连接。
请求头(蓝色)
请求头部为请求报文添加了一些附加信息,由“名:值”对组成,每行一对,名和值之间使用冒号分隔。
比较重要的附加信息有上面三种:
1.Host: 放在第一个,表示指定主机
2.Accept:告诉服务器,我浏览器愿意接收的类型
如: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp, image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 看/后面的类型,表浏览器能接收html、xml等内容
3. Content-Type:请求体格式,一般当请求动词为POST时使用
除了以上的附加信息,还有其他常见的如下:

空格
表示告诉服务器请求头到此结束了接下来是请求正文
二.响应(response)
- 协议名/版本 状态码 状态字符串
- Content-Type:响应体格式
- 回车
- 请求体(上传内容)

标注
状态行(橙色)
200 为状态码, OK 为解释状态码的字符串,一般不用在意
常用状态码如下(面试常问!!):

完整文档状态码
响应头(蓝色)
Content-Type指示了响应体的格式, 该例子指示响应体为CSS

其他常见响应头:

Node.js 部署服务器
一、curl命令 构造请求
curl -v http://127.0.0.1:8888
- 设置请求动词
- -X POST
- 注意X 大写
curl -v -X POST http://127.0.0.1:8888
-
设置路径和查询参数
直接域名后面加
-
设置请求头
-H 'Name:Value' 或者 --header 'Name:Value'
curl -v -X POST -H 'Accept:text/html' http://127.0.0.1:8888
curl -v -X POST -H 'Ymk:handsome' http://127.0.0.1:8888 /*自定义请求头*/
- 设置请求体
-d '内容' 或者 --data '内容'
curl -v -X POST -H 'Content-Type:text/plain;charset=utf-8' -d '请求体内容' http://127.0.0.1:8888
二、Node.js 读取请求
-
读取请求动词
request.method
var method = request.method;
console.log("method:"+method);
- 读取路径
- request.url路径,带查询参数
- 一个path表示纯路径,不带查询参数
- query 只有查询参数
- 读取请求头
- request.headers 读取整个请求头
- request.headers['Accept'] 读取请求头中的Accept信息
-
读取请求体
有点点复杂
三、Node.js 设置响应
- 设置响应状态码
response.statusCode=200
- 设置响应头
response.setHeader('Content-Type','text/html');
response.setHeader('Ymk','handSome');
- 设置响应体
response.write('内容')
注意:以上命令可写两遍,追加响应体内容