http与websocket比较:
- 相同点:
- 都是基于tcp的协议
- 都是使用request/response请求响应模型建立连接
- 都在建立连接的过程中有对错误的处理方式
- 建立连接后都可以传输数据
- 不同点:
- websocket建立连接使用的header域,比如Upgrade等头信息在http中不会使用
- websocket必须是个直接连接,不允许中间人转发
- websocket建立连接之后,通信双发都可以在任何时候发送数据
- websocket建立连接之后,数据的传输使用帧来传递,不需要request消息
http与https比较:
http与https的区别在于ssl层。 ssl层发生的事情:验证证书
- 证书的申请:可以想CA机构申请公开的证书,也可以自己生成。
证书包含的信息:证书颁发机构、签名、服务器域名、证书版本、有效期、使用的加密算法、公钥等信息。
二者区别:
http是明文传输,数据容易被拦截,https是更具安全性的ssl加密传输;http连接用的端口一般是80,https则是443;http连接简单,不需要证书,https需要证书,更安全。
HTTP1.0/2.0/3.0的区别:
http1.0: 短连接,每次请求都打开一个新的tcp连接,收到响应后立即关闭连接。
- http1.1: 长连接,一个tcp连接可以发送多个http请求,减少了建立和关闭连接的消耗和延迟。缺点:线头阻塞、基于文本协议、请求响应头信息大,无法压缩、单向请求。
- http2.0: 采用二进制协议解析;压缩头部,通讯双方都保存一份头信息,避免重复的头信息传输;多路复用,允许并发发送多个http请求,每个请求不用等等待其他请求或响应,避免了线头阻塞,提高了性能;服务端推送,会把客户端需要的资源一并推送到客户端,需要时按缓存机制到缓存中取,省去了客户端的重复请求。缺点:如果tcp连接中出现丢包现象,会导致整个tcp连接重传。
http3.0: 使用基于UDP协议推出的QUIC协议,避免了1.0或2.0基于tcp协议的底层缺陷,有效避免了前序包堵塞(多个数据在TCP连接上传输时,若一个数据包出现问题,TCP需要等待该包重传后,才能继续传输其它数据包),还具有能快速重启会话等优点。