//Node.js标准库提供了http模块,其中封装了一个高效的http服务器和一个简易的http客户端
//http.Server是一个基于事件的HTTP服务器,它的核心由Node.js下层c++部分实现,而接口由//Javascript封装,兼顾了高性能与简易性 //http服务器
var http = require('http');
http.createServer(function(req,res){
res.writeHead(200,{'Content-Type','text/html'});
res.write('<h1>hello node</h1>');
res.end();
}).listen(3000); //这段代码中http.createServer创建了一个http.Server的实例;
//req(request):请求,res(response):响应
//响应代码200,表示成功;
//指定相应头为{'Content-Type','text/html'};
//然后写入相应体
//最后通过res.end();结束响应并发送
//listen()函数,启动服务器并且监听3000端口 //Event.Emitter提供了以下几个事件
//request:当客户端请求到来时,该事件被触发,提供2个参数req和res,分别是http.ServerRequest和http.ServerResponse的实例,表示请求和响应信息
//connection:当TCP连接建立时该事件被触发,提供一个参数socket为net.Socket的实例,connection的粒度要大于request,因为客户端在keep-alive下可能会在同
//一连接内发送多次请求
//close:当服务器关闭时触发,注意不是用户断开连接时 //http.ServerRequest();是http请求的信息,一般由http.request发送
//由于请求体可能相对较长,需要一定的时间传输,因此http.ServerRequest()提供了3个事件用于控制请求体传输
//data:当请求体到来时触发,该事件提供一个参数chunk,表示接受到的数据,如果该事件没有被监听,那么请求体将会被抛弃,该事件可能会被调用多次
//end:当请体求传输数据完成时,该事件被触发,此后将不会有数据到来
//close:用户当前请求结束时,该事件被触发,不同于end,用户强制中终止了传输,也还是调用close //http.ServerRequest的属性
//complete 客户端请求是否已经发送完成
//httpVersion http协议版本,通常是1.0或1.1
//method 如:GET,POST,PUT,DELETE等
//url 原始的请求路径,例如/static/image/x.jpg或/user?name=smile
//headers http请求头
//trailers http请求尾(不常见)
//connection 当前http连接套接字,为net.Socket的实例
//socket connection的别名
//client client属性的别名 //querystring
//querystring.parse && querystring.stringify
//用法和Json.parse,Json.stringify几乎相同 @querystring.parse;
var str = 'name=smile&age=20&sex=male'; console.log(querystring.parse(str)); //{name:smile,age:20,sex:male}; @querystring.stringify
var querystring = require('querystring'); var str = {name:'smile',parents:['zq','wry'],age:21};
console.log(querystring.stringify(str)); //name=smile&parents=zq&parents=wry&age=21; //获取get请求内容
var url = require('url'); //ex:
//http://127.0.0.1:3000/user?name=smile
// search: '?name=smile'
// query: { name: 'smile' }
// pathname: '/user'
// path: '/user?name=smile'
// href: '/user?name=smile' } //其中query就是我们所谓的get请求,
//通过url.parse将原始的path解析为一个对象
//路径是pathname //获取post请求内容

最新文章

  1. ApexSQLLog总结
  2. Linux之netstat命令详解
  3. Quartz Scheduler(2.2.1) - Usage of Calendars
  4. MacOS10.9获取Android源码不完全笔记(2014)
  5. Python 全栈开发 -- 开发环境篇
  6. Java_观察者模式(Observable和Observer) -转
  7. jvm在存储区域
  8. 关于IE浏览器的一些思路
  9. ueditor图片无法左右对齐的解决
  10. 【翻译】 Guice 动机——依赖注入的动机
  11. vim之快速查找功能
  12. JMeter 中跨线程组 变量值传递的方法
  13. DOM树示意图
  14. 远程访问对象java实现
  15. Spring Boot 如何极简入门?
  16. Android开发---如何操作资源目录中的资源文件
  17. SpringMVC Controller介绍及常见注解
  18. 第五章&#160;二叉树(e4)层次遍历
  19. 社区发现的3个评估指标:标准化互信息NMI,ARI指标,以及模块度(modularity)
  20. hihocoder 1509 异或排序

热门文章

  1. Delphi2010 DataSnap入门
  2. 用fxc.exe编译shader文件(*.fx, *.hlsl)的设置
  3. DIOCP之编写第一个应用程序(二)
  4. C#,java,C++ 等变量命名规则
  5. Appium学习路—脚本篇(启动app)
  6. photoshop cs5 key
  7. select 选项的子句
  8. mongodb sharding 简单部署记录
  9. 未能正确加载“RoslynPackage”包
  10. iOS 根据字符串内容动态计算行高