<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zqjflash的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zqjflash</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zqjflash]]></copyright><item><title><![CDATA[nodejs-异步I/O]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/50401313</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/50401313</guid><author>zqjflash</author><pubDate>Fri, 25 Dec 2015 09:55:44 +0800</pubDate><description><![CDATA[为什么要异步I/O
  在跨网络结构下，I/O具体到实处可以从用户体验和资源分配两方面说起。用户体验采用异步请求，在下载资源期间，JavaScript和UI的执行都不会处于等待状态，可以继续响应用户的交互行为。
同步与异步时间消耗对比，前者时间为M+N，后者为max(M+N)
同步代码如下：// 消耗时间为M
getData('from_db');
// 消耗时间为N
getData('from_r]]></description><category></category></item><item><title><![CDATA[HTTP 2.0 协议详解]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/50179235</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/50179235</guid><author>zqjflash</author><pubDate>Fri, 04 Dec 2015 20:25:52 +0800</pubDate><description><![CDATA[HTTP 2.0 协议详解一、HTTP 2.0：改进传输性能
  HTTP 2.0 的主要目标是改进传输性能，实现低延迟和高吞吐量。从另一方面看，HTTP 的高层协议语义并不会因为这次版本升级而受影响。所有HTTP 首部、值，以及它们的使用场景都不会变。
现有的任何网站和应用，无需做任何修改都可以在HTTP 2.0 上跑起来。不用为了利用HTTP 2.0 的好处而修改标记。HTTP 服务器必须运行H]]></description><category></category></item><item><title><![CDATA[TCP（传输控制协议）]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/49893733</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/49893733</guid><author>zqjflash</author><pubDate>Tue, 17 Nov 2015 21:43:15 +0800</pubDate><description><![CDATA[TCP（传输控制协议）
  传输控制协议（Transmission Control Protocol，TCP）是一种面向连接的、可靠的、基于字节流的传输层通信协议，由IETF的RFC 793定义。 
  在因特网协议族（Internet protocol suite）中，TCP层是位于IP层之上，应用层之下的中间层。
一、TCP/IP协议族
  TCP/IP（TCP/IP Protocol Suit]]></description><category></category></item><item><title><![CDATA[下一代javascript]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/49746609</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/49746609</guid><author>zqjflash</author><pubDate>Mon, 09 Nov 2015 22:50:27 +0800</pubDate><description><![CDATA[javascript-future下一代javascript同步。异步！协作程？
同步与异步（同步编码代码量小（简单），符合人类理解方式（好写））同步XHR示例代码：
    var xhr = new XMLHttpRequest();    xhr.open('get', '/', false);    try {        xhr.send();    } catch (e) {]]></description><category></category></item><item><title><![CDATA[SPDY协议]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/49718271</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/49718271</guid><author>zqjflash</author><pubDate>Sun, 08 Nov 2015 14:12:04 +0800</pubDate><description><![CDATA[SPDY接入服务概述
  SPDY是Google开发的下一代网络协议，它并不是一种用于替代HTTP的协议，而是对HTTP协议的增强。谷歌表示，引入SPDY协议后，在实验室测试中页面加载速度比原先快64%，并且应用到Gmail中，目前业界支持SPDY的服务器有Netty和Nginx。SPDY增加了一个帧层用于多路复用，多个并发流通过一个TCP连接（或者其他可靠传输流）。这个帧层为类似HTTP的请求响应]]></description><category></category></item><item><title><![CDATA[保护HTTP的安全]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/49560359</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/49560359</guid><author>zqjflash</author><pubDate>Sun, 01 Nov 2015 18:33:20 +0800</pubDate><description><![CDATA[security-http1、保护HTTP的安全
需要提供下列功能的HTTP安全技术：1、服务器认证（客户端感知是与可信任的服务端通信）2、客户端认证（服务端感知是与可新人的客户端通信）3、完整性（客户端和服务器的数据不可被篡改）4、加密（客户端和服务端通信不被窃取）5、效率（运行效率快的算法，支持低端客户端和服务端使用）6、普适性（支持所有客户端和服务器通信协议）7、适应性（能够支持目前最知名的安]]></description><category></category></item><item><title><![CDATA[移动端页面性能探究]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/44906763</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/44906763</guid><author>zqjflash</author><pubDate>Mon, 06 Apr 2015 22:07:48 +0800</pubDate><description><![CDATA[一、背景：
     
     智能终端的普及改变了人们对互联网的使用习惯，终端环境对页面性能有更高的要求，接下来以一张图来分析：1s内渲染一个移动页面









网络整体消耗来分析：
     1、服务器响应应该小于200ms
     2、尽量少的重定向
     3、尽量少的第一次渲染的请求
     4、避免过多堵塞的js和css堵塞


j]]></description><category></category></item><item><title><![CDATA[前端能力模型-动画类型及动画库的介绍]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/44903859</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/44903859</guid><author>zqjflash</author><pubDate>Mon, 06 Apr 2015 17:50:03 +0800</pubDate><description><![CDATA[一、背景：
     合适的动画不仅更能吸引人们的眼球，也能让你的应用体验更为流畅，而将动画的效果做到极致，才能让用户感到使用你的应用是一种享受，而不是觉得生硬和枯燥。


二、动画技术分类：


     按技术类型来进行分类，分为三类：JS动画，CSS3动画，html5动画，接下来分别对三类动画进行讲解。


     1）JS动画
     通过一个定时器setInte]]></description><category></category></item><item><title><![CDATA[前端能力模型-V8 JS引擎]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/44889261</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/44889261</guid><author>zqjflash</author><pubDate>Sun, 05 Apr 2015 17:40:28 +0800</pubDate><description><![CDATA[一、webkit内核与V8


在chrome浏览器中，用webkit来进行html渲染，用v8作为js引擎。
     虽说Chrome和Webkit都是开源的，但是Chrome始终保持和Webkit距离，Chrome在WebKit上封装了一层称为WebKit Glue。Glue层中，大部分类型的结构和接口都和WebKit类似，Chrome中依托WebKit组件，都只是调用Webkit ]]></description><category></category></item><item><title><![CDATA[前端能力模型-负载均衡各种方式]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/44703685</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/44703685</guid><author>zqjflash</author><pubDate>Sat, 28 Mar 2015 18:12:07 +0800</pubDate><description><![CDATA[负载均衡有以下几种方式：


一、基于客户端方式：


     每个客户程序都具有一定的服务器集群的知识，进而把以负载均衡的方式将请求发到不同的服务器。这种方式比较原始，现在一些老系统还在使用这种方式，客户端简单的使用轮询实现负载均衡。这种方式的可靠性，可维护性都很低，加重客户端开发的难度。
     结构图如下：








二、基于DNS（DNS服务器）]]></description><category></category></item><item><title><![CDATA[websocket-php]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/44400947</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/44400947</guid><author>zqjflash</author><pubDate>Wed, 18 Mar 2015 09:33:18 +0800</pubDate><description><![CDATA[下面先用一个图例来演示clinet和server之间建立websocket连接时握手部分，这个部分在nodejs中可以十分轻松的完成，因为node提供的net模块已经对socket套接字做了封装处理，开发者使用的时候只需要考虑数据的交互而不用处理连接的建立。而php没有，从socket的连接、建立、绑定、监听等，这些都需要自己去操作，如下







1和2实际上就是一个HTTP]]></description><category></category></item><item><title><![CDATA[SHA1算法]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/44275703</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/44275703</guid><author>zqjflash</author><pubDate>Sun, 15 Mar 2015 11:48:22 +0800</pubDate><description><![CDATA[密码加密简介：
密码存储的主要形式：
     明文存储：肉眼就可以识别，没有任何安全性。
     加密存储：通过一定的变换形式，使得密码原文不易被识破。
密码加密的几类方式：
     明文转码加密：BASE64, 7BIT等，这种方式只是个障眼法，不是真正的加密。
     对称算法加密：DES，RSA等。
     签名算法加密：也可以理解为单向哈希加密，比如MD5，SHA1]]></description><category></category></item><item><title><![CDATA[OSI7层模型与TCP/IP协议栈4层]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/44263213</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/44263213</guid><author>zqjflash</author><pubDate>Sat, 14 Mar 2015 20:54:17 +0800</pubDate><description><![CDATA[osi（Open System Interconnection Reference Model）


osi7层模型，分别是


第7层 应用层（Application Layer）
提供为应用软件而设的界面，以设置与另一应用软件之间的通信。例如：HTTP,HTTPS，FTP，TELNET，SSH，SMTP，POP3等。


第6层 表示层（Presentation Layer]]></description><category></category></item><item><title><![CDATA[前端能力模型-CSRF漏洞]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/44206013</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/44206013</guid><author>zqjflash</author><pubDate>Wed, 11 Mar 2015 22:02:11 +0800</pubDate><description><![CDATA[一、CSRF概念：


     CSRF（Cross-Site Request Forgery）：中文名称：跨站请求伪造，也被称为：one click attack/ session riding，缩写为CSRF/XSRF。


XSS是实现CSRF的诸多途径中的一条，但绝对不是唯一的一条。一般习惯上把通过XSS来实现的CSRF称为XSRF。
CSRF是伪造请求，，冒充用户在站点正]]></description><category></category></item><item><title><![CDATA[前端能力模型-数据结构-栈]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/44120649</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/44120649</guid><author>zqjflash</author><pubDate>Sat, 07 Mar 2015 21:44:54 +0800</pubDate><description><![CDATA[一、栈的基本定义


1、栈是一种特殊的线性表，只能从固定的方向进出，而且栈进出的基本原则是：先进栈的元素后出栈。





2、栈顶栈底的定义：
栈顶：允许操作的一端。
栈底：不允许操作的一端。


二、栈的基本实现方式


1、使用顺序存储的方式实现栈



在这种方式下，我们采用顺序表的复用方法来实现栈的数据存储。


2、使用链式存储来实现栈]]></description><category></category></item><item><title><![CDATA[https协议文件加密]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/44003475</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/44003475</guid><author>zqjflash</author><pubDate>Sun, 01 Mar 2015 16:45:45 +0800</pubDate><description><![CDATA[SSL（https）中的对称加密与非对称加密
在网站通过SSL来与用户建立安全的通信中，对称加密算法和非对称加密算法起到了很大作用。


密码学最早追溯到古希腊，那时加密方法：替换字母。
早期密码学
1、scytale工具加密:把羊皮纸卷在圆木上，写下信息，羊皮纸展开后，这些信息就加密。



2、Caesar's cipher位移字母加密方法，如：AES加密后为XBP

]]></description><category></category></item><item><title><![CDATA[http协议文件压缩]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/43985609</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/43985609</guid><author>zqjflash</author><pubDate>Sat, 28 Feb 2015 14:47:38 +0800</pubDate><description><![CDATA[一、HTTP协议头：


服务端根据客户端发送的请求头中某些字段自动发送最合适的版本。可以用于这个机制的请求头字段分为两种：Accept字段、其他字段。




请求头字段
说明
响应头字段


Accept-Encoding
告知服务器采用何种压缩方式
Content-Encoding






比如客户端发送的请求头：




Accep]]></description><category></category></item><item><title><![CDATA[前端跨域杂谈]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/43940465</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/43940465</guid><author>zqjflash</author><pubDate>Wed, 25 Feb 2015 21:22:07 +0800</pubDate><description><![CDATA[前端跨域之post方式]]></description><category></category></item><item><title><![CDATA[requireJS源码分析]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/43373957</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/43373957</guid><author>zqjflash</author><pubDate>Sun, 01 Feb 2015 20:16:14 +0800</pubDate><description><![CDATA[RequireJS是一款遵循AMD规范协议的JavaScript模拟加载器。
业界常见模块加载器（labjs、requirejs、seajs）
LABjs的核心是LAB(Loading and Blocking)：核心价值是性能优化]]></description><category></category></item><item><title><![CDATA[Zepto源码分析之二~三个API]]></title><link>https://blog.youkuaiyun.com/zqjflash/article/details/40711969</link><guid>https://blog.youkuaiyun.com/zqjflash/article/details/40711969</guid><author>zqjflash</author><pubDate>Sun, 02 Nov 2014 17:49:10 +0800</pubDate><description><![CDATA[由于时间关系：本次只对这三个API（$.camelCase、$.contains、$.each）方法进行分析


第一个方法变量转驼峰：$.camelCase('hello-world-welcome');
源码：
var camelize;
/**
 * 字符串替换
 * 使用replace第二个参数带回调
 */
camelize = function(str) {
  ]]></description><category></category></item></channel></rss>