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('hello node
');//响应体 res.end('hello yehui
');//结束并发送 }).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('
hello node
');//响应体 res.end('hello yehui
');//结束并发送 }); 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。