标签:
一、http对象的属性和方法
1、http.STATUS_CODES //A collection of all the standard HTTP response status codes, and the short description of each
2、http.METHODS //A list of the HTTP methods that are supported by the parser.
3、http.get(options[, callback]) //封装了的http.request()方法,实现了req.end()方法,源码如下:
exports.get = function(options, cb) { var req = exports.request(options, cb); req.end(); return req; };
4、http.globalAgent //超全局的代理实例,是http客户端的默认请求。
5、http.request(options[, callback]) //返回一个http.ClientRequest对象。options可以是一个对象或一个字符串。如果options
是一个字符 串, 它将自动使用url.parse()解析。使用http.request()
方法时都必须总是调用req.end()
以表明这个请求已经完成,即使响应body里没有任何数据。如果在请求期间发生错误(DNS解析、TCP级别的错误或实际HTTP解析错误
),在返回的请求对象会触发一个‘error‘
事件。
有一些特殊的标题应该注意:
auth
选项来完成基本授权二、http.ClientRequest类
1、实现方式:http.request(options,callback)||http.request.get(options,callback) //处理服务器返回的响应时调用callback函数 回调函数的唯一参数是IncomingMessage对象
2、该对象实现了Writeable流
3、创建ClientRequest对象时,可以指定的options选项
选项 | 说明 |
host | 请求发往的服务器的域名或IP地址,默认为localhost |
hostname | 与host相同,但对url.parse()的支持优于host |
port | 远程服务器的端口。默认为80 |
localAddres | 网络连接绑定的本地接口 |
socketPath | Unix域套接字 |
method | 指定HTTP请求方法的字符串。 |
path | 指定所请求的资源路径的字符串 |
headers | 包含请求标头的对象 |
auth | 基本身份验证 |
agent | Agent行为的定义。若使用Agent,默认请求为:Connection:keep-alive.可能的值为:undefined(默认值,使用全局Agent),Agent(使用特定的Agent对象),false(禁用Agent行为) |
4、ClientRequest对象提供的事件
abort | 仅仅在第一次调用 abort()时触发 function () { } |
checkExpectation | 每次请求异常时触发 function (request, response) { } |
connect | 每当服务器响应一个由CONNECT方法发起的一个请求时发出,如果改事件未由客户端处理,那么该连接将被关闭 function (response, socket, head) { } |
continue | 当服务器发送一个100 Continue HTTP响应,指示客户端发送请求正文时发出 function () { } |
response | 当从服务器收到该请求的响应时发出 function (response) { } |
socket | 当一个套接字被分配给该请求时发出 function (socket) { } |
upgrade | 当服务器响应在其标头包括一个更新的请求时发出 function (response, socket, head) { } |
5、ClientRequest对象的方法
三、http.ServerResponse对象
1、描述:这是一个由HTTP服务器内部创建的对象(不是由用户自行创建)。它将作为第二个参数传递到‘request‘
事件中。
2、ServerResponse对象提供的事件
事件名称 | 事件描述 |
close | 当客户端的连接在发送Response.end()来完成并刷新响应之前关闭时发出 需要注意的是,底层链接在response.end() 被调用或可以冲洗掉之前就被终结了 |
finish |
当响应小心发送后触发.尤其是,当最后部分的响应消息已经被转换在操作系统通过传输在网络上,该事件被触发,这并不意味着客户端已经收到任何东西。 触发该事件后,不会有其他响应对象的事件被触发 |
3、ServerResponse对象的方法和属性
方法或属性 | 说明 |
response.addTrailers(headers) | 将HTTP尾随标头写入响应的结束处 |
response.end([data][, encoding][, callback]) | 将可选的数据输出写入响应的正文,然后刷新Writeable流并完成响应 |
response.finished | 默认为false,调用end方法后结果为true |
response.getHeader(name) | 获取已在响应中设置的HTTP标头的值 |
response.headersSent | 如果标头已被发送,为true;否则为false |
response.removeHeader(name) | 移除已在响应中设置的一个HTTP标头 |
response.sendDate | 如果设置为true,则Data标头的是自动生成的,并作为响应的一部分发送 |
response.setHeader(name, value) | 设置一个特定的标头值 |
response.setTimeout(msecs, callback) | 设置客户端连接的套接字超时时间,以毫秒计,带有一个如果发生超时将被执行的回调函数 |
response.statusCode | 让你无需显式的写入标头来指定响应状态吗 |
response.statusMessage | 这个属性控制着发送到客户端的状态码信息客户端标头刷新时 |
response.write(chunk[, encoding][, callback]) | 将chunk对象到响应Writeable流。这仅把数据写入响应的正文部分。默认编码为utf-8。如果数据被成功写入,返回true |
response.writeContinue() | Sends a HTTP/1.1 100 Continue message to the client, indicating that the request body should be sen |
response.writeHead(statusCode[, statusMessage][, headers]) | 把一个响应标头写入请求。 |
四、http.IncomingMessage对象
1、事件:
2、方法和属性
error
is provided, an ‘error‘
event is emitted and error
is passed as an argument to any listeners on the event.‘end‘
event.‘end‘
event.五、http.Server对象
1、描述:提供了实现HTTP服务器的基本框架。实现了EventEmitterl类
2、创建对象:var server=http.createServer([requestListener]);
2、该对象的事件
事件 | 说明 |
checkContinue | 当收到包括期待的100-continue标头的请求时触发 |
clientError | 当客户单套接字发出一个错误时发出。 |
close | 服务器关闭时触发 |
connect | 接收到HTTP CONNECT请求时发出 |
connection | 当一个新的TCP流建立时触发 |
request | 当服务器收到客户端请求时触发 |
upgrade | 当客户端请求http升级时发出 |
3、该对象的方法
六、http.Agent类
1、基本用法:
true
的Agent对象。然后,Agent将会在资源池中保持未被使用的套接字,用于未来使用。它们将会被显式标记,以便于不保持Node进程的运行。但是当KeepAlive agent没有被使用时,显式地destroy() KeepAlive agent仍然是个好主意,这样套接字们会被关闭。agent:false
选择完全停用资源池。2、构造函数
3、属性
4、方法
标签:
原文地址:http://www.cnblogs.com/realsoul/p/5625396.html