面试-简论HTTP和HTTPS

2020-11-30T15:55:35.000Z
9

简论HTTP和HTTPS

开门见山,这篇可以讲的很多 ,对于面试使用的不算太多,相对于TCP和UDP而言,HTTPS和HTTP这块可问的不算是太多

# HTTP协议的缺点

  • 通信使用明文,内容可能被窃听(重要密码泄露)
  • 不验证通信方身份,有可能遭遇伪装(跨站点请求伪造)
  • 无法证明报文的完整性,有可能已遭篡改(运营商劫持)

# HTTPS能解决这些问题吗?

能,https是在http协议基础上加入加密处理和认证机制以及完整性保护,即http+加密+认证+完整性保护=httpshttps并非应用层的一种新协议,只是http通信接口部分用ssl/tls协议代替而已。通常http直接和tcp通信,当使用ssl时则演变成先和ssl通信,再由ssl和tcp通信。所谓https,其实就是身披ssl协议这层外壳的http

# SSL 是这片网络上唯一的一片净土

为啥要发明 SSL 这个协议?因为原先互联网上使用的 HTTP 协议是明文的,存在很多缺点——比如传输内容会被偷窥(嗅探)和篡改。发明 SSL 协议,就是为了解决这些问题。

# http和https的区别:

  • HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头
  • HTTP 是不安全的,而 HTTPS 是安全的
  • HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443
  • 在 OSI 网络模型中,HTTPS的加密是在传输层完成的,因为SSL是位于传输层的,TLS的前身是SSL,所以同理
  • HTTP无需认证证书,而https需要认证证书

# HTTPS工作原理:

  • 首先服务端给客户端传输证书,这个证书就是公钥,只是包含了很多的信息,比如说证书的办法机构,证书的过期时间
  • 客户端进行证书的解析,比如说验证办法机构,过期时间,如果发现没有任何问题,就生成一个随机值(私钥),然后用证书对这个私钥进行加密,并发送给服务端
  • 服务端使用私钥将这个信息进行解密,得到客户端的私钥,然后客户端和服务端就可以通过这个私钥进行通信了
  • 服务端将消息进行对称加密(简单来说就是讲消息和私钥进行混合,除非知道私钥否则服务进行解密),私钥正好只有客户端和服务端知道,所以信息就比较安全了
  • 服务端将进行对称加密后的消息进行传送
  • 客户端使用私钥进行信息的解密

# HTTP1.0,1.1,2.0之间的区别和特性

  1. http1.0:无连接,无状态,一次请求一个tcp连接
  2. http1.1:持久连接,请求管道化(有一些缺陷) ,增加了host字段,缓存,断点续传
  3. http2.0 : 二进制分帧(多路复用的实现基础), 多路复用,头部压缩

能力越强,责任越大。

实事求是,严谨细致。

惊蛰新博客 (opens new window)

微雨众卉新,一雷惊蛰始。