1、querystring参数处理
序列化 > querystring.stringify({'name':'scott',course:['jade','node'],from:''}) 'name=scott&course=jade&course=node&from=' > querystring.stringify({'name':'scott',course:['jade','node'],from:''}, ',') 'name=scott,course=jade,course=node,from=' > querystring.stringify({'name':'scott',course:['jade','node'],from:''}, ',', ': ') 'name:scott,course:jade,course:node,from:' 反序列化 > querystring.parse('name=scott&course=jade&course=node&from=') { name: 'scott', course: [ 'jade', 'node' ], from: '' }
转义 > querystring.escape('你好') '%E4%BD%A0%E5%A5%BD' 反转义 > querystring.unescape('%E4%BD%A0%E5%A5%BD') '你好'
2、http
从浏览器输入网址或F5刷新页面,首先进行域名解析:
(1)浏览器搜索自身的DNS缓存
(2)搜索操作系统自身的DNS缓存(浏览器没有找到自身缓存或缓存已失效)
(3)读取本地的host文件(如果2步骤没有找到域名的ip)
(4)浏览器发起一个DNS的一个系统调用(如果步骤3没有找到域名的ip)
(5)浏览器获得域名对应的ip地址后,发起http“三次握手”
(6)TCP/IP连接建立起来以后,浏览器就可以向服务器发送请求
(7)服务器端接收到请求后,根据路径参数,经过后端的一些处理之后,把处理后的结果数据返回给浏览器
(8)浏览器拿到某个网站完整的HTML页面代码,在解析和渲染这个页面的时候,页面的js、css、图片静态资源,也同样是一个个http请求,需要经过上面的主要步骤。
http请求方法:GET POST PUT(更新) DELETE(删除)...
响应的状态码:1xx:指示信息,表示请求已经接收,继续处理;2xx:表示请求成功;
400:客户端请求有语法错误,服务器端不能理解;
401:请求没有授权;
403:服务器端收到请求,拒绝提供服务,可能没有权限等;
404:请求资源不存在或是URL地址输入错误;
503:服务器端当前不能处理客户端的请求。
3、http上下文、作用域
上下文与this有关,是调用当前可执行代码的引用。
4、
http性能测试 Apache自带的ab
>ab -n1000 -c10 http://localhost:8888/
////////////////////////////
全局变量
path、process、url
////////////////////////////
self.emit('request', req, res);