http.ServerRequest


http.ServerRequest

这个对象通常由HTTP SERVER 建立而非用户手动建立,并且会作为传递给'request'事件监听器第一个参数 此对象的可以触发以下事件:

Event: 'data'

function (chunk) { }

当接收到信息体中的一部分时候会发出data 事件。 例如:代表消息体的数据块将作为唯一的参数传递给回调函数。这个时候数据已经按照传输编码进行了解码(不 是字符集编码)。消息体本身是一个字符串,可以使用request.setBodyEncoding()方法设定消息体的编码。

Event: 'end'

function () { }

每次完全接收完信息后都会触发一次。没有参数,当这个事件发出后,将不会再触发其他事件。

request.method

request.method 是一个只读字符串。例如'GET','DELETE'

request.url

代表所请求的URL 字符串.他仅包括实际的HTTP 请求中的URL 地址。如果这个请求是

GET /status?name=ryan HTTP/1.1\r\n
Accept: text/plain\r\n
\r\n

则request.url 应当是

'/status?name=ryan'

如果你想要解析这个URL 中的各个部分,你应当使用require('url').parse(request.url). Example:

node> require('url').parse('/status?name=ryan')
{ href: '/status?name=ryan'
, search: '?name=ryan'
, query: 'name=ryan'
, pathname: '/status'
}

如果你想从查询字符串中提出这些参数,你可以使用require('querystring').parse 方法,或者传一个true 作为第二个 参数给require('url').parse 方法。 Example:

node> require('url').parse('/status?name=ryan', true)
{ href: '/status?name=ryan'
, search: '?name=ryan'
, query: { name: 'ryan' }
, pathname: '/status'
}

request.headers

只读

request.httpVersion

这是HTTP 协议版本( 字符串形式) , 只读。例如'1.1','1.0' 。request.httpVersionMajor 是第一个数字, request.httpVersionMinor 是第二个数字。

request.setEncoding(encoding='null')

设置此请求的包体的字集编码,'utf8'或者'binary'。缺省值是null,这表示'data'事件的参数将会是一个Buffer 对象。

request.pause()

暂停此request 触发事件.对于控制上传非常有用。

request.resume()

恢复一个暂停的request。

request.connection

request.connection 是一个代表当前连接的net.Stream 对象。 对于HTTPS,使用request.connection.verifyPeer() 和request.connection.getPeerCertificate()来获得客户端(浏览 器)的认证详情。