发布于 2015-08-23 03:28:40 | 939 次阅读 | 评论: 0 | 来源: PHPERZ

Web Server模块

phantomjs支持一个简单的web server模块, require('webserver')即可引入。web server模块基于mongoose。不过最好不要在生产环境使用这样的服务器模块,因为现阶段此模块仅允许10个并发请求。

看一个简单的例子吧:

var webserver = require('webserver');
var server = webserver.create();
var service = server.listen(8080, function(request, response) {
    response.statusCode = 200;
    response.write('<html><body>Hello!</body></html>')
    response.close();
});

首先需要创建服务器实例,然后调用 listen()方法监听, listen()方法的第一个参数可以为一个端口号,也可以中 ip:port这样的ip+port组合方式。第二个参数是处理请求的回调方法。下面描述一下 request和 response两个对象。

  • request:
    • method:http请求的方法,get、post等
    • url: 包含http请求URL和get请求的query string(如果有的话)
    • httpVersion:当前采用的http协议的版本
    • headers:所有http请求头部信息,以键值对的形式提供
    • post:请求主体,仅对post和put方法的请求有效
    • postRaw:如果Content-type为 'application/x-www-form-urlencoded'(表单上传的默认值)时,post的原始信息会暂存在此属性中。
  • response:
    • headers:以键值对的形式保存所有的HTTP请求头部的信息,在第一次调用 write()方法前一定要设置
    • setHeader(name, value):设置或添加特定的头部信息
    • header(name):获取特定的头部信息
    • statusCode:设置HTTP状态码
    • setEncoding(encoding): 标明传给 write()的数据需要转换成什么格式,默认为UTF-8。如果数据为二进制字符串,则设置为“binary”
    • write(data):向response中发送数据块,可以多次调用
    • writeHead(statusCode, headers):向response中发送响应头部。 statusCode是一个3位数字,表示HTTP状态码(如404)。后一个参数代码响应头部
    • close():关闭HTTP连接
      • 为了避免客户端检测到连接中断,记得最后再用 write()方法发送一个空字符串(如: response.write(""))。
    • closeGracefully():功能与 close()一样,不过更安全可靠,它能保证响应头部先发送,并自动在响应最后加上 response.write("")
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务