一、HTTP和HTTPS的概念      

       HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏     览器更加高效,使网络传输减少。http协议属于明文传输协议,交互过程以及数据传输都没有进行加密,通信双方也没有进行任何认证,通信过程非常容易遭遇劫持、监听、篡改,严重情况下,会造成恶意的流量劫持等问题,甚至造成个人隐私泄露(比如银行卡卡号和密码泄露)等严重的安全问题。

  HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

  HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

二、HTTP和HTTPS的工作原理:

 1、 HTTP:当用户在浏览器的地址栏中输入所要访问Web的URI以后,HTTP的处理过程即会开始,HTTP中默认的端口是80端口,它的工作机制,首先是客户端向服务器的80端口建立一个TCP连接,赞后然后再这个连接上进行请求和应答以及数据报文的发送。具体过程成如下:

一次HTTP操作称为一个事务,其工作整个过程如下:
(1)、DNS解析: 得主机的IP地址

  例如客户端浏览器请求这个页面:http://localhost.com:8080/index.htm
  从中分解出协议名、主机名、端口、对象路径等部分,对于我们的这个地址,解析得到的结果如下:
  协议名:http
  主机名:localhost.com
  端口:8080
  对象路径:/index.html

(2) 封装HTTP请求数据包

  把以上部分结合本机自己的信息,封装成一个HTTP请求数据包

(3) 封装成TCP包,建立TCP连接(TCP的三次握手)
       在HTTP工作开始之前,客户机(Web浏览器)首先要通过网络与服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行高层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80。这里是8080端口

(4)客户机发送请求命令
       建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可内容。

(5)服务器响应
  服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。实体消息是服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。

(6)服务器关闭TCP连接
     一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码
    TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。
服务器将响应信息传给客户端,响应体中的内容可能是一个html页面,也可能是一张图片,通过输入流将其读出,并写回到显示器上。

2、HTTPSHTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。服务器在给客户端发送的数据是加密的,只有服务器和客户端才能读懂,而且在进行数据交互的时,还需要用对称密钥(下面有概念)进行验证,但是服务器又是如何将对称密钥发送给客户端?

(1)名称解释:

SSL(Secure Socket Layer):是Netscape公司设计的主要用于WEB的安全传输协议。从名字就可以看出它在https协议栈中负责实现上面提到的加密层。因此,一个https协议栈大致是这样的:

      

数字证书:一种文件的名称,好比一个机构或人的签名,能够证明这个机构或人的真实性。其中包含的信息,用于实现上述功能。

加密和认证:加密是指通信双方为了防止铭感信息在信道上被第三方窃听而泄漏,将明文通过加密变成密文,如果第三方无法解密的话,就算他获得密文也无能为力;认证是指通信双方为了确认对方是值得信任的消息发送或接受方,而不是使用假身份的骗子,采取的确认身份的方式。只有同时进行了加密和认真才能保证通信的安全,因此在SSL通信协议中这两者都被应。

三者的关系:https依赖一种实现方式,目前通用的是SSL,数字证书是支持这种安全通信的文件。另外有SSL衍生出TLS和WTLS,前者是IEFT将SSL标准化之后产生的(TSL1.0),与SSL差别很小,后者是用于无线环境下的TSL。

对称密钥 : 对称密钥加密又叫专用密钥加密,即发送和接收数据的双方必使用相同的密钥对明文进行加密和解密运算。通常有两种模式:流加密和分组加密。

非对称密钥:非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

(2)HTTPS保证数据安全的机制:

            在HTTP的概念中介绍了HTTP是非常不安全的,那么在服务器与客户端传递数据的过程中HTTPS是如何保证数据的安全呢?

1.客户端向服务器端发起SSL连接请求;(在此过程中依然存在数据被中间方盗取的可能,下面将会说明如何保证此过程的安全)

2 服务器把公钥发送给客户端,并且服务器端保存着唯一的私钥;

      ----服务器端会向CA申请认证书,此证书包含了CA及服务器端的一些信息(可以理解为类似公章),这样,服务器端将证书发给客户端的过程中,中间方是无法伪造的,保证了发给客户端的公钥是服务器端发送的。

3.客户端用公钥对双方通信的对称密钥进行加密,并发送给服务器端;

4.服务器利用自己唯一的私钥对客户端发来的对称密钥进行解密,在此过程中,中间方无法对其解密(即使是客户端也无法解密,因为只有服务器端拥有唯一的私钥),这样保证了对称秘钥在收发过程中的安全,此时,服务器端和客户端拥有了一套完全相同的对称密钥。

5.进行数据传输,服务器和客户端双方用公有的相同的对称秘钥对数据进行加密解密,可以保证在数据收发过程中的安全,即是第三方获得数据包,也无法对其进行加密,解密和篡改。

解释:

a.公钥加密,私密解密。用于传输数据的加密。 
b.私钥签名,公钥验签。用于传输数据的完整性校验。

优点:加密解密算法使用不同的密钥。 
缺点:加密解密速度慢,资源消耗大。

(3)CA(电子商务认证机构)认证作用: 
在上面提到的 客户端向服务器端发起请求时存在数据被盗取的过程:  假如服务器端经由中间方向客户端发送公钥的时候,中间方没有将公钥发送给客户端,而是伪造了一对公钥,并将伪造的公钥发送给客户端,此时客户端用中间方伪造的公钥对自己正确的对称秘钥加密并由中间方发送给服务器端,而中间方将用自己伪造的公钥的私钥对其进行解密,得到正确的对称密钥,并将得到的正确的对称秘钥用服务器端发过来的公钥进行加密发给服务器端,服务器daunt再用正确的私钥进行解密,也得到正确的对称秘钥,此时客户端,服务器端,中间方三者都拥有一套正确的对称秘钥,可以对传送的数据进行加密,解密。
为了解决上述问题,一般情况下,服务器端会向CA申请认证书,此证书包含了CA及服务器端的一些信息(可以理解为类似公章),这样,服务器端将证书发给客户端的过程中,中间方是无法伪造的,保证了,发给客户端的公钥是服务器端发送的。
原文:https://www.cnblogs.com/xyzyj/p/7338495.html

转载于:https://www.cnblogs.com/dongtian-blogs/p/10795482.html

HTTP和HTTPS的区别及HTTPS加密算法相关推荐

  1. 浅谈HTTP 和 HTTPS的区别

    HTTP 和 HTTPS 的区别 无论是在校学习还是找工作的时候,老师和面试官都问过同学 HTTP 和 HTTPS 的区别. HTTP和HTTPS是计算机网络中很重要的知识点,面试的时候很容易被问他们 ...

  2. http和https的区别 与 SSL/TLS协议运行机制的概述

    http和https的区别 与 SSL/TLS协议运行机制的概述 参考1 1 http 是不使用的SSL/TSL的通信通道 窃听风险:第三方获取通信内容 篡改风险:修改通信内容 冒充风险:冒充他人身份 ...

  3. 【建议收藏】HTTP与HTTPS的区别

    HTTP与HTTPS的区别 1.HTTP协议的缺陷 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了W ...

  4. HTTP和HTTPS的区别(转)

    原文链接:HTTP和HTTPS的区别 HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议  它是一个安全通信通道,它基于HTTP开发,用于在客户计算机 ...

  5. 详解http和https的区别

    详解http和https的区别 (转自http://www.jzxue.com/jianzhanzhinan/jianzhanrumen/201103/29-6925.html) http与https ...

  6. HTTP协议与HTTPS的区别

    permike 原文 HTTP协议与HTTPS的区别 HTTP协议 HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本. HTTP是在七层网络模型中的应用层的协议,由发送请求和接受响应构成, ...

  7. http和https的区别

    HTPPS和HTTP的概念 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP ...

  8. HTTP和HTTPS的区别以及含义

    HTTP:指的是超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页 ...

  9. HTTP与HTTPS的区别, 以及SSL四次握手过程

    超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂 ...

最新文章

  1. R语言使用magick包的image_animate函数和image_morph函数创建一个由n个图像组成的序列,逐渐将一个图像转换成另一个图像(sequence of image morph by)
  2. 基于SSH实现健身俱乐部管理系统
  3. matplotlib画散点图
  4. 一阶网络相应特性的研究_36、 用一阶系统描述的传感器,其动态响应特征的优劣也主要取决于时间常数τ,τ越大越好。( )...
  5. 东方卫视收视率查询_肖战被嘲撑不起跨年收视率,看了东方卫视收视曲线,这锅不背!...
  6. Spark Streaming 技术看点!
  7. 路由器端口映射实现远程桌面
  8. 《Python编程从入门到实践》记录之range、min、max、sum函数
  9. jmeter5.0 while controller使用总结
  10. iOS开发之报错:IntxLNK
  11. Oracle通过身份证求年龄的方法
  12. (原创)骑士人才系统(74CMS) 阿里短信接口 不影响后续升级
  13. Springboot+jwt+shiro实现用户权限控制
  14. 阿里巴巴离职DBA职业生涯总结--吕海波
  15. shell语法(2)
  16. Informerd详解(2)与C#百度地图定位显示项目学习
  17. cosh()函数以及C ++中的示例
  18. python及其工具
  19. 将java对象存储到redis数据库(两种实现方式)
  20. 服务注册Service Registration

热门文章

  1. 移动磁盘显示由于IO设备错误,无法运行此项请求要怎样寻回资料
  2. YOLO算法的ZYNQ移植尝试(SDx方法、ARM部分)
  3. css样式优先级和权重问题
  4. matlab 启动图标
  5. 在net.tcp模式下,由SvcUtil.exe生成代理类文件和配置文件(转)
  6. Protocol Buffers proto语言语法说明
  7. 关于SET ANSI_PADDING的用法
  8. RN环境搭建(Android端)
  9. 【博客项目】—cookie和session(七)
  10. Vue报错:npm run start npm ERR! missing script: start