开发者学堂课程【Node.js 入门与实战:Request 对象常用属性】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/588/detail/8266
Request 对象常用属性
目录:
一、 request 和 response 区别
二、 request对象
三、 代码举例
一、request和response区别
request(http.IncomingMessag
e
和response( ServerResponse)
对象介绍:
Request: 请求对象是当一个用户请求过来以后,请求接到服务器都是 HTTP 请求报文服务器解析用户提交的 http 请求报文,将结构解析到 request 对象中。凡事要获取和用户请求相关的数据都可以通过 request 对象获取。
Response:在服务器端口用来向用户做出相应的对象。凡是需要向用户(客户端)响应的操作,都需要通过 response 对象来进行。
查文档,页面里没有 request 和 response,是因为二者都是属于 HTTP 模块,所以说要在HTTP模块中查询,里面有若干个对象,比如 server 对象,server response 对象也就是所说的 response 对象,下面的 incomingMessage 就是request对象。
Request 不止页面显示的这几个对象,还继承别的类,里面还有别的父类,这里只能看到自己的接口。
二、request对象
request 对象类型,
继承自 stream.Readable
request 对象常用成员
+
‘
request.headers
‘
所有的请求报文头
+
‘
request.rawHeaders
‘
原生的请求报文头
+
‘
request.httpVersion
‘
获取客户端请求的的时候所使用的HTTP版本号
+
‘
request.method
‘
+
‘
request.url
‘
请求的路径
新建一个文件,在里面新建之后,启动一个http服务
Var http-require(‘http’);
创建服务 http.createSever(function(req,res) {
}).listen(9091,function () {
console.log( 'http://localhost: 9091');
});
三、代码举例
var http = require( ' http');
http.createServer(function (req,res){
// +
‘
request.headers
‘
// +
‘
request.rawHeaders
‘
// +
‘
request.httpVersion
‘
/
/ + ‘request.method’
// + ‘request.url’
// 1.获取所有请求报文头
consoLe.log(req.url);
res.end( 'over’ );
}).listen(9091,function () {
console.log( 'http://localhost: 9091');
});
找到路径 cd,输入 node.app.js,这次访问就会把请求的报文头打印出来,在浏览器中访问,有 over 输出,点击 localhost,显示这次请求的报文头,然后再查看服务器的打印,
打印两次的原因是,一次是 localhost,一次是 favicon.ico,request.rawHeaders里面是对象,对象里面是键值对,里面包含报文头。
// req.headers 返回的是一个对象,这个对象中包含了所有的请求报文头
// console.log(req.headers);
consoLe.log(req. rawHeaders);
res.end( 'over’ );
}).listen(9091,function () {
console.log( 'http://localhost: 9091');
});
服务器代码修改之后需要重启一下,依旧是9091,这次的报文头还是之前的,查看服务器的打印结果,打印的对象变成了一个数组,变成了字符串
// req.rawHeaders 返回的是一个数组,数组中保存的都是请求报文头的字符串
// console.log(req.rawHeaders);
// 2. httpVersion
// 获取请求客户端所使用的http版本
// console.log(req.httpVersion);
console.log(req. httpVersion);
res.end( 'over’ );
}).listen(9091,function () {
console.log( 'http://localhost: 9091');
});
服务器打印出当前使用的http版本号为1.1
// 3. method
// 获取客户端请求使用的方法(POST、GET、 ....)
// console.log(req.method);
console.log(req.method);
res.end( 'over’ );
}).listen(9091,function () {
console.log( 'http://localhost: 9091');
});
再把服务器重启,输出打印,点击 localhost,这里所使用的方法为 GET
// 4.url
// 获取这次请求的路径(获取请求报文中的请求路径,不包含主机名称,端口号,协议)
consoLe.log(req.url);
res.end( 'over’ );
}).listen(9091,function () {
console.log( 'http://localhost: 9091');
});
回到网页当中,点击 localhost,url 里面就是个/,这个 url 就是请求报文那里的,不包含主机名称,主机名在 headers 里面,达到请求这样一个路径。
路径改为l
ocalhost:9091/css/abc/index.css
,这次请求的路径是/css/abc/index.css
再查看服务器里也是这个路径