https与http的区别是什么?

https与http的区别是什么?

https采用了什么样的加密方法(工作原理)?

一、https与http的区别(https诞生的原因):

1)http:互联网上应用最为广泛的一种网络协议(请求-响应)。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

明文传输,不适合敏感信息,如密码,信用卡等等。

2)https:以安全为目标的HTTP通道,简单讲是HTTP的安全版,可以理解为是http+ssl/tls(数字证书)的组合。

共同点:https和http都属于应用层,基于TCP(以及UDP)协议

区别:

https与http的区别是什么?

具体如下:

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

二、http和https工作过程(从输入网站到页面加载发生了什么?未考虑CDN)

http工作过程:

第一步:域名解析,递归方式,得到请求地址的ip地址

第二步:把请求封装成http报文

第三步:建立TCP/IP连接,客户端与服务器通过Socket三次握手进行连接

第四步:客户端向服务端发起HTTP请求(例如:POST/login.html http/1.1)

第五步:客户端发送请求头信息,请求内容,最后会发送一空白行,标示客户端请求完毕

第六步:服务器做出应答,表示对于客户端请求的应答,例如:HTTP/1.1 200 OK

第七步:服务器向客户端发送应答头信息

第八步:服务器向客户端发送请求头信息后,也会发送一空白行,标示应答头信息发送完毕,接着就以Content-type要求的数据格式发送数据给客户端

第九步:客户端浏览器解析HTML代码,加载数据,对页面渲染并呈现给用户

第十步:服务端关闭TCP连接,如果服务器或者客户端增Connection:keep-alive就表示客户端与服务器端继续保存连接,在下次请求时可以继续使用这次的连接

HTTPS的工作流程(除了上述过程之外,还需要进行SSL通信1-5步):

第一步:客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接

第二步:Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端

第三步:客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级

第四步:客户端的浏览器根据双方同意的安全等级,建立会话**,然后利用网站的公钥将会话**加密,并传送给网站

第五步:Web服务器利用自己的私钥解密出会话**

第六步:Web服务器利用会话**加密与客户端之间的通信(HTTP通信)

详细过程如下图所示:

https与http的区别是什么?

证书以及证书认证机构(CA):

     数字认证机构可以通过办法公开秘钥证书来证明公钥的正确性。

     首先,服务器的运营人员向CA提出公开秘钥的申请,证书认证机构在判明提出申请者的身份之后,会对以申请的公开秘钥做数字签名(用机构的私钥),然后分配这个已经签名的公开秘钥,并将该公开秘钥放入公钥证书后绑定在一起,然后服务器将上述公钥证书发送给客户端。

     客户端用证书机构的公钥(为了安全转交客户端,多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公钥)进行认证。

  1. https的缺点:

1、处理速度变慢:1)通信变慢。网络负载可能会变慢2到100倍,除去TCP连接、发送http请求响应以外,还必须进行SSL通信,整体上处理通信量会增加;2)SSL必须进行加密处理。客户端和服务器端需要进行加密和解密的运算处理,消耗硬件资源

2、购买证书(公钥证书一般来说需要三方认证机构)会增加开销。

总结:一些通常的个人网站采用HTTP的通信方式,涉密性比较高的采用HTTPS服务。

 

  1. 拓展面试:https采用了什么加密方式?

https与http的区别是什么?

答案:采用了对称加密以及非对称加密混合加密机制。因为对称加密速度较快,所以通信报文采用对称加密的形式。而为了使得对称加密的秘钥安全传输,采用非对称加密以及证书认证的方式,让客户端安全的获取对称秘钥。