HTTP1.1 与 HTTP2 HTTP1.1 的缺陷  由于队头堵塞的高延迟
 无状态特性阻碍交互
 明文传输不安全
 不支持服务端推送
  什么是对头阻塞?
对头阻塞是指当顺序发送请求序列中的一个请求因为某种原因被阻塞时,后面排队的所有请求也一并被阻塞,进而可能会导致客户端迟迟收不到数据。
SPDY协议 是由谷歌推出的改进版本的HTTP
它的特点:
 多路复用(解决队头阻塞)  允许在一个连接上无限制并发流(就是不限制请求个数)。因为请求在一个通道上TCP效率更高(一个连接数)。更少的网络连接发出更密集的包
 头部压缩(解决巨大的HTTP头部)  使用专门的 HPACK 算法,每次请求和响应都只发送差异头部,一般可以达到50%~90%的高压缩率
 请求优先级(先获取重要数据)  虽然无限的并发流解决了队头阻塞的问题,但如果带宽受限,客户端可能会因防止阻塞通道而阻止请求。在网络被非关键资源阻塞时,高优先级的请求会被优先处理。
 服务端推送(填补空缺)  可以让服务端主动地将资源发送给客户端,当然客户端也有权利选择是否接受。
举个例子,当客户端请求根目录的时候,服务端会将style.css和example.png一同发送给客户端。
 提高安全性  使用 HTTPS 进行加密传输
HTTP2 HTTP2 基于 SPDY,专注于性能,最大的目标是在网站和用户之间只用一个连接。
新增特性:
 二进制分帧  是 HTTP2 性能增强的核心
首先,HTTP2 没有改变 HTTP 的语义,只是在应用层使用二进制分帧的方式进行传输。因此引入了新的通信单位:帧、消息、流。
**分帧有什么好处? **
服务器单位时间内接受的请求数变多,这样提高了并发数量,最重要的是为多路复用提供了底层支持。
 多路复用  解决串行的文件传输和连接数过多
一个域名对应一个连接,一个流代表了一个完整的请求-响应的过程。帧是最小的数据单位,每个帧会标识出该帧属于哪个流,流也就是由多个帧组成的数据流。那么,多路复用就是在一个 TCP 连接里可以存在多个数据流,HTTP1.
    
    
	
		
    
    
    
        查看容器IP // 查看具体某一个容器的IP,需要已知容器ID docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-ID> // 查看所有容器的IP docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)  默认docker0的段是:172.17.0.1/16
    
    
	
		
    
    
    
         作者注: 我的文章都很片面,是我按着自己的理解记录的,很可能有错误喔~ 请谨慎参考!请谨慎参考!请谨慎参考! 也非常非常希望您在发现错误了之后联系我, qq:281127500  注:以下快捷键都是在命令模式下操作的,而非编辑模式。  1.跳到行首 ^ (shift+6)  2.跳到行尾 $ (shift+4)  3.撤销 u //对上一步操作的撤销  U //撤销对整行操作的撤销  4.取消上一步的撤销 ctrl+r  5.按位置插入 i //在当前位置前插入  I //在当前行首插入  a //在当前位置后插入  A //在当前行尾插入  o //在当前行之后插入一行  O //在当前行之前插入一行  6.删除 x //删除当前字符  dl //删除当前字符  dh //删除前一个字符  dd //删除当前行  dj //删除上一行  dk //删除下一行  10d //删除当前行开始的10行,这个要特别说一下,按下10d之后,需要再按下方向键,按上说明是当前行之前的十行,反之之后十行  D //删除当前字符至行尾的所有字符 d$ //同上,与 D 等价  kdgg //删除当前行之前的所有行,但不包含当前行  jdG //删除当前行之后的所有行,但不包含当前行  :1,10d //删除1到10行  :11,$d //删除11行及以后的所有行  :1,$d //删除所有行  J //合并当前行和下一行,就是下一行追加到当前行的末尾,如果下一行是空行就直接删掉  
    
    
	
		
    
    
    
         启动客户端 $ redis-cli  连接远程服务器上的 Redis $ redis-cli -h host -p [port] -a [password]  给 key 设置 value 值 $ SET [key] [value]  一次性设置多个 key 的值 $ MSET [key1 value1] [key2 value2] ...  获取 key 对应的 value 值 $ GET [key]  一次性获取多个 key 的值 $ MGET [key1] [key2] [key3] ...  删除某个 key $ DEL [key]  
    
    
	
		
    
    
    
         六种日志级别  debug info warn error fatal panic