Https与Http区别浅析

Https与Http区别

Http

http协议比较简单,也是不安全的。http的连接过程一般是建立与服务端80端口的TCP连接,三次握手结束之后便可以传输数据,http1.0是短连接,每次都要关闭连接,http 1.0是长连接,超时服务端关闭连接。由于http是明文传输,如果加密也只能在应用层上面加密。

https则是安全的,过程也比http要复杂一些。但简单来说,https只是http+ssl/tls而已。加密在ssl层进行,位于应用层与传输层之间,如果一定要归入应用层或者传输层的话,个人感觉应该算是传输层吧。之后再从ssl交给tcp加密后的数据。

Https与Http区别浅析

https的基本流程

  • 与服务端443端口建立TCP连接(三次握手)
  • SSL握手(多次)

    ①client生成随机数和支持加密算法发送server
    ②server生成随机数、选择加密方案,发送证书
    ③client验证证书(内置CA公钥),生成随机数,用server公钥加密发送
    ④server根据前面3随机数生成对称秘钥,私钥加密发送client

  • 交付SSL层加密
    AES(对称)加密明文

  • 交付TCP传输数据
  • 关闭ssl
  • 关闭TCP

https加密是在ssl层进行的,因此应用层是透明的,在应用层对明文处理没有意义

数字证书

数字证书由CA机构颁发,一般记录了证书颁发机构、对象名称、日期、公钥、哈希算法等

浏览器都会预装有权威CA机构的信息,以便利用数字签名验证CA机构颁发的数字证书,如果证书无法验证,需要让用户手动信任。

Https与Http区别浅析