1. HTTP协议的概念
超文本传输协议(英文: HyperText Transfer Protocol,缩写: HTTP)规定了如何从网站服务器传输超文本到本地浏览器,它基于客户端服务器架构工作,是客户端(用户)和服务器端(网站)请求和应答的标准。
2. 报文
在HTTP请求和响应的过程中传递的数据块就叫报文,包括要传送的数据和一些附加信息, 并且要遵守规定好的格式。
3. 请求报文
1.请求方式(Request Method)
-
GET请求数据
-
POST 发送数据
获取数据的请求一般用get,添加数据的请求一般用post。如果既不是获取数据也不是添加数据,一般也用post,因为post相对get要安全一些。最常见的get请求就是在浏览器地址栏输入网址的方式
2.请求地址(Request URL)
app.on('request', (req, res) => {
req.headers//获取请求报文 req.headers['名称'] //获取具体信息
req.ur1//获取请求地址
req.method//获取请求方法
};
// 引用系统模块http
const http = require('http');
//app就是创建的web服务器对象
const app = http.createServer();
// 为网站服务器对象添加请求事件,当客户端有请求的时候就执行事件处理函数
// request事件名称,(req, res)=>{}事件处理函数
app.on('request', (req, res) => {
// 1.获取请求方式 req.method
// console.log(req.method);
// if (req.method == 'POST') {
// res.end('post')
// } else if (req.method == 'GET') {
// res.end('get')
// }
// 2.获取请求地址 req.url
// console.log(req.url);
if (req.url == '/index' || req.url == '/') {
res.end('welcome to homepage')
} else if (req.url == '/list') {
res.end('welcome to listpage')
} else {
res.end('no page')
}
//3. 获取请求报文信息 req.headers
console.log(req.headers['accept']);
// res.end('<h2>hello user</h2>');
});
// 监听端口
app.listen(3000);
console.log('网站服务器启动成功');
4. 响应报文
-
HTTP状态码
-
200请求成功
-
404请求的资源没有被找到
-
500服务器端错误
-
400客户端请求有语法错误
-
内容类型
-
text/html
-
text/css
-
application/javascript
-
image/jpeg
-
application/json
res.writeHead() 书写响应头,就是响应报文
有两个参数,参数1,状态码。参数二,响应头信息对象
app.on('request', (req, res) => {
// 设置响应报文
// text/plain默认状态,纯文本 charset=utf-8编码格式
res.writeHead(200, {
'Content-Type': 'text/html;charset=utf8'
});
});