设为首页 加入收藏

TOP

nodeJS之HTTP(五)
2017-10-13 10:50:15 】 浏览:6970
Tags:nodeJS HTTP
write() 第二次被调用时,Node.js 会以流的形式处理数据,并将它们分别发送。 也就是说,响应会被缓冲到响应主体的第一个数据块。

  如果全部数据被成功刷新到内核缓冲区,则返回 true。 如果全部或部分数据还在内存中排队,则返回 false。 当缓冲区再次空闲时,则触发 'drain' 事件

【response.writeContinue()】

  发送一个 HTTP/1.1 100 Continue 消息到客户端,表示请求主体可以开始发送

【response.writeHead(statusCode[, statusMessage][, headers])】

statusCode <number>  状态码是一个三位数的 HTTP 状态码,如 404
statusMessage <string> statusMessage 是可选的状态描述
headers <Object> headers 是响应头

  发送一个响应头给请求

var body = 'hello world';
response.writeHead(200, {
  'Content-Length': Buffer.byteLength(body),
  'Content-Type': 'text/plain' });

  该方法在消息中只能被调用一次,且必须在 response.end() 被调用之前调用。

  如果在调用该方法之前调用 response.write() 或 response.end(),则隐式的响应头会被处理并调用该函数。

  response.setHeader() 设置的响应头会与 response.writeHead() 设置的响应头合并,且 response.writeHead() 的优先

// 返回 content-type = text/plain
var server = http.createServer((req, res) => {
  res.setHeader('Content-Type', 'text/html');
  res.setHeader('X-Foo', 'bar');
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('ok');
});

  [注意]Content-Length 是以字节(而不是字符)为单位的。如果响应主体包含高级编码的字符,则应使用 Buffer.byteLength() 来确定在给定编码中的字节数。 Node.js 不会检查 Content-Length 与已发送的响应主体的长度是否相同。

  如果响应头字段的名称或值包含无效字符,则抛出 TypeError 错误

 

IncomingMessage

  IncomingMessage 对象由 http.Server 或 http.ClientRequest 创建,并作为第一个参数分别递给 'request' 和 'response' 事件。 它可以用来访问响应状态、消息头、以及数据。它实现了 可读流 接口

【aborted事件】

  当请求已被客户端终止且网络 socket 已关闭时触发

【close事件】

  当底层连接被关闭时触发。 同 end 事件一样,该事件每个响应只触发一次

【message.destroy([error])】

  调用接收到 IncomingMessage 的 socket 上的 destroy() 方法。 如果提供了 error,则触发 error 事件,且把 error 作为参数传入事件的监听器

【message.headers】

<Object>

  请求头或响应头的对象

  头信息的名称与值的键值对。 头信息的名称为小写

// { 'user-agent': 'curl/7.22.0',
//   host: '127.0.0.1:8000',
//   accept: '*/*' }
console.log(request.headers);

【message.httpVersion】

<string>

  在服务器请求中,该属性返回客户端发送的 HTTP 版本。在客户端响应中,该属性返回连接到的服务器的 HTTP 版本。 可能的值有 '1.1' 或 '1.0'

  message.httpVersionMajor 返回 HTTP 版本的第一个整数值,message.httpVersionMinor 返回 HTTP 版本的第二个整数值

【message.method】

  返回一个字符串,表示请求的方法。 该属性只读。 例如:'GET'、'DELETE'。

  [注意]仅在 http.Server 返回的请求中有效。

【message.rawHeaders】

<Array>

  接收到的原始的请求头或响应头列表。

  [注意]键和值在同一个列表中。 偶数位的是键,奇数位的是对应的值。

  头信息的名称不会被转换为小写,重复的也不会被合并

// [ 'user-agent',
//   'this is invalid because there can be only one',
//   'User-Agent',
//   'curl/7.22.0',
//   'Host',
//   '127.0.0.1:8000',
//   'ACCEPT',
//   '*/*' ]
console.log(request.rawHeaders);

【message.rawTrailers】

<Array>

  接收到的原始的 Trailer 请求头或响应头的的键和值。 只在 'end' 事件时被赋值

【message.setTimeout(msecs, callback)】

msecs <number>
callback <Function>
返回 message

  调用 message.connection.setTimeout(msecs, callback)

【message.socket】

<net.Socket>

  返回与连接关联的 net.Socket 对象。

  通过 HTTPS 的支持,使用 request.socket.getPeerCertificate() 获取客户端的认证信息

【message.statusCode】

<number>

  返回一个三位数的 HTTP 响应状态码。 如 404

  [注意]仅在 http.ClientRequest 返回的响应中有效。

【message.statusMessage】

<string>

  仅在 http.ClientRequest 返回的响应中有效。

  返回 HTTP 响应状态消息(原因描述)。 如 OK 或 Internal Server Error

【message.trailers】

<Object>

  返回 Trailer 请求头或响应头对象。 只在 'end' 事件时被赋值

【message.url】

<string>

  返回请求的 URL 字符串。 仅包含实际 HTTP 请求中的 URL

  [注意]仅在 http.Server 返回的请求中有效

 

HTTP

【http.METHODS】

<Array>

  返回解析器支持的 HTTP 方法的列表

【http.STATUS_CODES】

<Obj
首页 上一页 2 3 4 5 6 7 下一页 尾页 5/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇如何通过JS实现简单抖动效果 下一篇如何实现冒泡排序

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目