【网络协议】【HTTP】

Http协议

  http属于应用层协议,其中有三个比较代表性版本,1.0,1.1和2.0

  1.0和1.1区别:

  • 1.1支持长链接和请求的流水线处理,因为http是无状态的协议,所以面向连接的行为是无意义的,但是很多时候一个页面有多个同一个服务器的http请求,所以为了提升TCP性能
    • 请求头:connection:keep-alived代表保持,connection:close代表关闭;
  • 身份认证、状态管理和Cache缓存等机制相关的请求头和响应头;
  • 新状态码100,用来试探服务器权限,再决定是否发送body,节省带宽;

  1.0和2.0区别:

  • 采用二进制数据帧机制代替字符串文本机制;
  • 多路复用机制代替有序且阻塞的方式(如果是1.0可能没有阻塞的问题,因为是不同的连接)
  • 对首部进行压缩,例如每次请求都有相同的key:value头部,那么让他们用一个字符编码代表,或者只用一个字符编码代表key不代表value也是提效方式。

Keep Alive

  TCP:该机制主要靠TCP实现,主要是建立连接的时候设置的三个参数:

  • Keepalive time is the duration between two keepalive transmissions in idle condition. TCP keepalive period is required to be configurable and by default is set to no less than 2 hours. 
    • 假设2小时还没有任何数据传输,那么触发心跳
  • Keepalive interval is the duration between two successive keepalive retransmissions, if acknowledgement to the previous keepalive transmission is not received. 
    • 触发心跳后,每72s发一次
  • Keepalive retry is the number of retransmissions to be carried out before declaring that remote end is not available
    • 触发心跳后,重试多少次无响应后关闭链接

  HTTP:Http的keep alive利用的是TCP的能力,其中协议中用connection:keep-alive表示开启长链接,如果connection:close代表关闭长链接。

密钥

  对称密钥:加密和解密都是同一个密钥

  • 该加密方式速度快

  非对称密钥:加密和解密是不同的密钥a,b,如果用a加密的职能b解,b加密的职能a解

  • 该加密方式效率低,但是有部分安全性,如果公钥可靠,起码可以保证客户端获取的必然是服务器的信息

  公钥和私钥:对外的是公,不对外的是私

  权威机构:证书颁发机构,因为公钥的不可靠性,需要一个权威地方解析保证

  

 

posted @ 2018-05-15 11:09  饭小胖  阅读(151)  评论(0编辑  收藏  举报