//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请求内容

node学习笔记(四)的更多相关文章

  1. Java IO学习笔记四:Socket基础

    作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io ...

  2. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

    前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...

  3. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  4. java之jvm学习笔记四(安全管理器)

    java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...

  5. Learning ROS for Robotics Programming Second Edition学习笔记(四) indigo devices

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  6. Typescript 学习笔记四:回忆ES5 中的类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  7. ES6学习笔记<四> default、rest、Multi-line Strings

    default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...

  8. muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制

    目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...

  9. python3.4学习笔记(四) 3.x和2.x的区别,持续更新

    python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) import urllib2ImportError: No modu ...

随机推荐

  1. 初识Android NDK

    本文介绍Windows环境下搭建Android NDK开发环境,并创建一个简单的使用Native代码的Android Application. 一.环境搭建 二.JNI函数绑定 三.例子 一.环境搭建 ...

  2. 【原】相煎何太急——input的blur事件与button的click事件

    先来一段引子,最近在写手机h5页面,主要是一些登陆注册方面的,最绕不开的就是表单元素. 我想实现的是:在输入框后边有一个删除图标,当输入东西的时候触发事件,显示删除图标,点击该图标会删除之前输入的内容 ...

  3. Unity 几种优化建议

    转: http://user.qzone.qq.com/289422269/blog/1453815561?ptlang=2052 Unity 几种优化建议 最简单的优化建议: 1.PC平台的话保持场 ...

  4. block的初识

    block的介绍: Block是iOS4.0之后新增的一种语法结构,也称为“闭包(closure)”.  SDK4.0新增的API大量使用了Block.  Block是一个匿名的函数代码块,此代码 ...

  5. ORA-01033: ORACLE 正在初始化或关闭 进程 ID: 0 会话 ID: 0 序列号: 0

    用了很长时间的数据库,一直都挺好,今天早上一来报这个错,开始追究原因. 1.用SYS用户登录: 2.将数据库修改为打开状态,alter database open,出现如下的错误提示: ORA-160 ...

  6. JSONObejct属性获取

    package com.beijxing.TestMain; import java.io.File; import java.io.IOException; import org.apache.co ...

  7. 从零构建一个简单的 Python Web框架

    为什么你想要自己构建一个 web 框架呢?我想,原因有以下几点: 你有一个新奇的想法,觉得将会取代其他的框架 你想要获得一些名气 你遇到的问题很独特,以至于现有的框架不太合适 你对 web 框架是如何 ...

  8. 初学c# -- 学习笔记(四)

    想想,数据库先用mysql了,这玩意小且安装方便.前面web学了些,现在学winform的.数据库先看看便捷的mysql. 下载了一个mysql5.7版的,装上居然找不到密码,重装3.4回,找不到,说 ...

  9. Struts2理解--动态方法和method属性及通配符_默认Action

    众所周知,默认条件下,在浏览器输入indexAction!execute.action,便会执行indexAction类里的execute方法,这样虽然方便,但可能带来安全隐患,通过url可以执行Ac ...

  10. mac--又发现了一款mac快捷键神器

    之前用applescript,还有keyboard maestro,前段时间用机械键盘的时候,用开源的karabiner重新设置机械键盘的键位. 今天因为网上抄的键位F4想换成Launchpad,所以 ...