HTTP服务器与客户端
http是node提供的模块,其中封装了一个高效的HTTP服务器和一个简易的HTTP客户端。http.server是一个基于事件的HTTP服务器,http.request则是一个HTTP客户端工具,用于向HTTP服务器发送请求。
HTTP服务器
http.server是http模块中的HTTP服务器对象。
var http = require('http');
http.createServer(function(req, res){
res.writeHead(200, {'Content-Type': 'text/html'});//响应代码和响应头
res.write('<h1>hello node </h1>');//响应体
res.end('<p>hello yehui </p>');//结束并发送
}).listen(3000);//启动服务器并监听3000端口
-
http.server事件
继承自EventEmitter,提供了request等事。var http = require('http'); var server = new http.Server(); server.on('request', function(req, res){ res.writeHeader(200, {'Content-Type': 'text/html'});//响应代码和响应头 res.write('<h1>hello node </h1>');//响应体 res.end('<p>hello yehui </p>');//结束并发送 }); server.listen(3000);//启动服务器并监听3000端口
-
http.ServerRequest
http.ServerRequest是HTTP请求的信息,是后端开发者最关注的内容。他一般由http.Server的request事件发送,作为第一个参数传递。
http.ServerRequest提供了3 个事件用于控制请求体的传输: -
data:表示接收到的数据;
-
end::结束请求体
-
close:结束请求。
-
获取GET请求内容
-
获取POST请求内容
-
http.ServerResponse
http.ServerResponse是返回给客户端的信息,决定用户最终看到的结果。他也是request是件发送的,作为第二个参数传递,一般简称res。他有三个重要的成员函数: -
.writeHead(状态码, ):想请求的客户端发送响应头;
-
.write(data, 编码形式):发送相应内容,data表示要发送的内容,在.end()之前。可以多次调用;
-
.end(data, encoding):结束响应。
HTTP客户端
http模块提供了两个客户端函数:request和get。