码迷,mamicode.com
首页 > Web开发 > 详细

Node中的http模块

时间:2016-08-13 01:19:41      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

         通过Node模块,我们可以实现客户端和服务器端。这篇文章主要研究如何利用http和一些相关模块构建客户端和服务器端代码。读完本文,将能够实现client向server发送数据,而server将数据原样返回。

***********************************************************************************

服务器端

          首先介绍几个方法。

  • http的createServer方法

           var server = http.createServer(requestListener(request,response)),这个方法做了两件事情:1. 创建服务器;2.定义了收到请求后(请求到来时)服务器如何处理,request指的是客户端发过来的请求(输入流),response指服务器对客户端的响应(输出流)。

          通过request, 我们可以得到请求的相关信息。request.method代表请求的方法名(post / get / delete / put...), request.url代表请求的路径名(不包含hostname和port),request.headers返回请求头部对象,而request.httpVersion是请求的http版本号。request.headers里包含这十分丰富的信息,例如: 

{ host: ‘localhost:8000‘, //主机名和端口号
  connection: ‘keep-alive‘, 
  ‘cache-control‘: ‘max-age=0‘,//缓存相关
  accept: ‘text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8‘, //客户端能够接收的媒体类型(MIME)和优先级,默认为1;表示优先接受text/html、application/                                                                  //xhtml+xml、image/webp类型(q=1),其次为application/xml类型(q=0.9),如果这些都没有,那就随便什么类型了(q=0.8)‘user-agent‘: ‘Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36‘,//客户端类型,表示为chrome桌面板
  ‘accept-encoding‘: ‘gzip, deflate, sdch‘,//客户端支持的内容压缩编码格式
  ‘accept-language‘: ‘en-US,en;q=0.8‘,//客户端使用的语言及其优先级
 }

        通过response,可以设置响应部分。response.writeHead(statusCode, statusText, options)方法可以设置响应状态码和描述信息,在options中可以添加自定义头部或者给头部赋值。writeHead和setHeader不同,前者是直接把响应头部发送出去了,而后者只是设置,所以一旦使用了writeHead,接下来想再次修改头部就不可能了,比如在writeHead之后想要通过getHeader("name")或者removeHeader("name")是不可能成功的,因为已经把头发送出去了,如果真的想这么做,就请用setHeader。用法如下:

         response.writeHead(200, "quite good", {"name":"test", “content-type":"application/json"});                        response.setHeader("name","test");   response.setHeader("age","16")

writeHead还有一个有用的用法,就是设置重定向。response.writeHead(301, "moved forever", {location: "http://www.baidu.com"}), 如果客户端访问服务器的地址,就会被导航到baidu。

  •  server的listen方法

           server.listen(port, hostname, queue, callback),port是服务器监听的端口号,hostname为服务器主机名,默认为localhost,queue为队列中等待的连接数上限(默认为511),callback为服务器成功启动(服务器启动时)的回调函数。一般情况下,hostname和queue就采用默认值。

*****************************************************************************************

           客户端

       客户端要完成的是向服务器发送请求。

Node中的http模块

标签:

原文地址:http://www.cnblogs.com/yingge/p/5767008.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!