{
console.log('收到信息');
});
server.listen(5000);
在浏览器地址栏中输入127.0.0.1:5000,控制台会显示'收到信息'这4个字
【checkContinue事件】
request <http.IncomingMessage>
response <http.ServerResponse>
每当接收到一个带有 HTTP Expect: 100-continue 请求头的请求时触发。 如果该事件未被监听,则服务器会自动响应 100 Continue
处理该事件时,如果客户端应该继续发送请求主体,则调用 response.writeContinue(),否则生成一个适当的 HTTP 响应(例如 400 错误请求)。
[注意]当该事件被触发且处理后,request 事件不会被触发
【checkExpectation事件】
request <http.ClientRequest>
response <http.ServerResponse>
每当接收到一个带有 HTTP Expect 请求头(值不为 100-continue)的请求时触发。 如果该事件未被监听,则服务器会自动响应 417 Expectation Failed。
[注意]当该事件被触发且处理后,request 事件不会被触发
【clientError事件】
exception <Error>
socket <net.Socket> socket 参数是发生错误的 net.Socket 对象
如果客户端触发了一个error事件,则它会被传递到这里。该事件的监听器负责关闭或销毁底层的socket。例如,用户可能希望更温和地用HTTP '400 Bad Request'响应关闭 socket,而不是突然地切断连接
默认情况下,请求异常时会立即销毁 socket
var http = require('http');
var server = http.createServer((req, res) => {
res.end();
});
server.on('clientError', (err, socket) => {
socket.end('HTTP/1.1 400 Bad Request\r\n\r\n');
});
server.listen(8000);
当 'clientError' 事件发生时,不会有 request 或 response 对象,所以发送的任何 HTTP 响应,包括响应头和内容,必须被直接写入到 socket 对象。 注意,确保响应是一个被正确格式化的 HTTP 响应消息
【close事件】
当服务器关闭时触发
【connect事件】
request <http.IncomingMessage> HTTP 请求,同 request 事件。
socket <net.Socket> 服务器与客户端之间的网络 socket。
head <Buffer> 流的第一个数据包,可能为空。
当客户端发送HTTP CONNECT请求时触发。 如果该事件未被监听,则发送CONNECT请求的客户端会关闭连接
当该事件被触发后,请求的 socket 上没有 data 事件监听器,这意味着需要绑定 data 事件监听器,用来处理 socket 上被发送到服务器的数据
【connection 事件】
当一个新的 TCP 流被建立时触发。 socket 是一个 net.Socket 类型的对象。 通常用户无需访问该事件。 注意,因为协议解析器绑定到 socket 的方式,socket 不会触发 'readable' 事件。 socket 也可以通过 request.connection 访问
【upgrade事件】
request <http.IncomingMessage> HTTP 请求,同 'request' 事件。
socket <net.Socket> 服务器与客户端之间的网络 socket。
head <Buffer> 流的第一个数据包,可能为空。
每当客户端发送HTTP upgrade请求时触发。 如果该事件未被监听,则发送upgrade请求的客户端会关闭连接
当该事件被触发后,请求的 socket 上没有 'data' 事件监听器,这意味着需要绑定 'data' 事件监听器,用来处理 socket 上被发送到服务器的数据
【server.close([callback])】
停止服务端接收新的连接
【server.listening】
返回一个布尔值,表示服务器是否正在监听连接
【server.maxHeadersCount】
限制请求头的最大数量,默认为 2000。 如果设为 0,则没有限制
【server.setTimeout([msecs][, callback])】
msecs <number> 默认为 120000 (2 分钟)。
callback <Function>
返回 server
设置socket的超时时间。 如果发生超时,则触发服务器对象的'timeout'事件,并传入socket作为一个参数
默认情况下,服务器的超时时间是 2 分钟,且超时后的 socket 会被自动销毁。 但是,如果你为服务器的 'timeout' 事件分配了一个回调函数,则超时必须被显式地处理
【server.timeout】
<number> 超时时间,以毫秒为单位。默认为 120000 (2 分钟)
socket 被认定为超时的空闲毫秒数。值设为 0 可禁用请求连接的超时行为
[注意]socket 的超时逻辑是在连接上设定的,所以改变这个值只影响服务器新建的连接,而不会影响任何已存在的连接
response
该对象在 HTTP 服务器内部被创建。 它作为第二个参数被传入 'request' 事件。这个类实现了(而不是继承自)可写流接口
var http = require('http');
var server = http.createServer(function(req, res){
res.writeHead(200, {'Content-Type': 'text/plain;charset=utf-8'});
res.end('小火柴');
});
server.listen(8000);
【close事件】
当底层连接在 response.end() 被调用或能够刷新之前被终止时触发
【finish事件】
当响应已被发送时触发。 更具体地说,当响应头和响应主体的最后一部分已被交给操作系统通过网络进行传输时,触发该事件。 这并不意味着客户端已接收到任何东西。该事件触发后,响应对象上不再触发其他事件
【response.addTrailers(headers)】
该方法会添加 HTTP 尾部响应头(一种在消息尾部的响应头)到响应。
仅当响应使用分块编码时,尾部响应头才会被发送;否则(比如请求为 HTTP/1.0),尾部响应头会被丢