HTTP模块
首先“Http”这个概念大家应该比较熟悉了,它不是基于特定语言的,是一个通用的应用层协议,不同语言有不同的实现细节,但是万变不离其宗,思想是相同的。
node中的http 包含两部分:http.server(服务器) 和 http.request(客户端)。
http.Server
http.server是一个基于事件的HTTP服务器,所有的请求都被封装到独立的事件当中,我们只需要对他的事件编写相应的行为就可以实现HTTP服务器的所有功能,它继承自EventEmitter,提供了以下的事件:
- request: 当客户端请求到来的时候,该事件被触发,提供两个参数request和response,分别是http.ServerRequest和http.ServerResponse表示请求和响应的信息。
- connection: 当TCP建立连接的时候,该事件被触发,提供了一个参数socket,为net.socket的实例(底层协议对象)
- close: 当服务器关闭的时候会被触发
- 除此之外还有 checkContinue、upgrade、clientError 等事件