https协议和Http协议的区别

时间:2020-11-30 14:24:26
原文地址:https协议和Http协议的区别作者: 嘻嘻哈哈

http和https的区别

  HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议要比http协议安全。

  在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。

  Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。

  http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的,...

  什么是http?

  HTTP是超文本转移协议,是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。

  当我们想浏览一个网站的时候,只要在浏览器的地址栏里输入网站的地址就可以了,例如www.*****.com,但是在浏览器的地址栏里面出现的却是:http://www.*******,你知道为什么会多出一个“http”吗?

  我们在浏览器的地址栏里输入的网站地址叫做URL (Uniform ResourceLocator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。当你在 http功用浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本转移协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。因此,在我们认识HTTP之前,有必要先弄清楚URL的组成,例如:http://www.******.com/china/index.htm。它的含义如下:

  1. http://:代表超文本转移协议,通知****.com服务器显示Web页,通常不用输入;

  2. www:代表一个Web(万维网)服务器;

  3. ****.com/:这是装有网页的服务器的域名,或站点服务器的名称;

  4. China/:为该服务器上的子目录,就好像我们的文件夹;

  5. Index.htm:index.htm是文件夹中的一个HTML文件(网页)。

  我们知道,Internet的基本协议是TCP/IP协议,然而在TCP/IP模型最上层的是应用层(Applicationlayer),它包含所有高层的协议。高层协议有:文件传输协议FTP、电子邮件传输协议SMTP、域名系统服务DNS、网络新闻传输协议NNTP和HTTP协议等。

  HTTP协议(HyperText TransferProtocol,超文本转移协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。这就是你为什么在浏览器中看到的网页地址都是以http://开头的原因。

  自WWW诞生以来,一个多姿多彩的资讯和虚拟的世界便出现在我们眼前,可是我们怎么能够更加容易地找到我们需要的资讯呢?当决定使用超文本作为WWW文档的标准格式后,于是在1990年,科学家们立即制定了能够快速查找这些超文本文档的协议,即HTTP协议。经过几年的使用与发展,得到不断的完善和扩展,目前在WWW中使用的是HTTP/1.0的第六版。

  什么是https?

  它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。

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

  HTTPS解决的问题

  一、信任主机的问题

  采用https 的server(服务器) 必须从CA (CertificateAuthority)申请一个用于证明服务器用途类型的证书. 该证书只有用于对应的server 的时候,客户端才信任此主机.所以目前所有的银行系统网站,关键部分应用都是https 的. 客户通过信任该证书,从而信任了该主机.其实这样做效率很低,但是银行更侧重安全. 这一点对我们没有任何意义,我们的server ,采用的证书不管自己issue(发布)还是从公众的地方issue, 客户端都是自己人,所以我们也就肯定信任该server.

  二、通讯过程中的数据的泄密和被篡改

  1. 一般意义上的https, 就是 server 有一个证书.

  a) 主要目的是保证server 就是他声称的server. 这个跟第一点一样.

  b) 服务端和客户端之间的所有通讯,都是加密的.

  i. 具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥. 一般意义上的握手过程.

  ii. 加下来所有的信息往来就都是加密的. 第三方即使截获,也没有任何意义.因为他没有密钥.当然篡改也就没有什么意义了.

  2. 少许对客户端有要求的情况下,会要求客户端也必须有一个证书.

  a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码, 还有一个CA 认证过的身份.应为个人证书一般来说上别人无法模拟的,所有这样能够更深的确认自己的身份.

  b) 目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘(即U盾)作为一个备份的载体.