Node.js-http模块的使用

http 服务
简单的 http 服务
  • http.createServer([options][, requestlistener]) 创建一个 http 服务

    • requestListener 是一个自动添加到 request 事件的函数。
  • res.writeHead(statusCode[, statusMessage][, headers]) 向请求发送响应头。

    • statusCode 三位数的 HTTP 状态码(200、404 …);headers 响应头。
  • res.write(chunk[, encoding][, callback]) 发送一块响应主体,可以多次调用该方法以提供连续的响应主体片段。

    • chunk 可以是字符串或 buffer。
  • res.statusCode 设置状态码。例如:res.statusCode = 200

  • res.setHeader(naem,value) 为隐式响应头设置单个响应头的值,如果此响应头已存在于待发送的响应头中,则其值将被替换。 在这里可以使用字符串数组来发送具有相同名称的多个响应头。

  • res.end([data][, encoding][, callback]) 向服务器发出信号,已发送所有响应头和响应体;整个响应已完成,结束响应。

    • data 响应数据(二进制数据流或字符串),如果指定了 data ,则相当于调用 response.write() 之后再调用response.end()。
  • server.listen([port[, host[, backlog]]][, callback]) 启动一个服务器用来监听连接; 可以是 TCP 或 IPC 服务器,具体取决于它监听的内容,当前参数用于 TCP 服务器。

    • port 监听的端口,如果省略或是0,系统会随意分配一个空闲端口;host 主机名;backlog 指定待连接队列的最大长度。
  • req.socket.remoteAddress 获取请求服务器的客户端的 IP 地址,如果 socket 被销毁了(如客户端已经失去连接)则其值为 undefined。

  • req.socket.remotePort 获取请求服务器的客户端的端口号。

    // 引入 http 模块
    var http = require('http');
    // 创建一个 http 服务对象
    var server = http.createServer();
    // 监听用户的请求事件,对用户的请求做出一些响应,req 代表请求,res 代表响应
    server.on('request',function (req,res) {
      // 设置响应头,告诉浏览器以何种方式解析数据,charset=UTF-8 是对字符的编码,当数据为非字符时(例如:图片)就不需要指定编码
      res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
      // 响应内容
      res.write('<h1>响应内容!</h1>');
      // 获取请求服务器的客户端的 IP 地址,如果 socket 被销毁了(如客户端已经失去连接)则其值为 undefined。
      console.log('请求我的服务的客户地址为:',req.socket.remoteAddress);
      // 输出请求服务器的客户端的端口号
      console.log('请求我的服务的客户端口号为:',req.socket.remotePort);    
      // 结束响应,对于每一个请求,服务端必须结束响应,否则客户端会一直等待服务端的响应结束
      res.end('请求结束!'); // end() 中的内容必须是字符串,否则会报错
    });
    // 启动服务,监听端口
    server.listen(3000,function () {
      console.log('服务器已启动,访问地址:http://127.0.0.1:3000');
    });
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值