Http协议>VS>Https协议
Posted You295
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Http协议>VS>Https协议相关的知识,希望对你有一定的参考价值。
Http协议>VS>Https协议
一:Http和Https的简介
超文本传输协议HTTP协议被用于在web浏览器和网站服务器之间传递信息,http协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取浏览器和网络服务器之间的传输报文,就可以直接读到其中的信息,所以http就不适合传输一些敏感的信息。列如密码…一些涉及到安全的信息内容。
为了解决http协议的这一个缺陷,需要使用另外一种协议:安全套接字层超文本传输协议Https,为了数据的安全,https在http的基础上加入了SSL
协议,SSL依靠证书来验证服务器的身份,并且为浏览器和服务器之间的通信加密。
二:Http和Https的概念
1.Http协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。HTTP 是基于 TCP/IP 协议通信协议来传递数据(html 文件, 图片文件, 查询结果等)。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。
2.https协议
HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立通信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。
三:SSL概念
SSL证书是数字证书的一种,类似与驾驶证,护照和营业执照的电子副本。因其配置在服务器上,也称为SSL服务器证书。
SSL证书就是遵守SSL协议,由受信用的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和传输加密的功能。
四:Http和Https的工作流程
1.http的工作流程
第一步:建立TCP/IP连接,客户端与服务器通过Socker三次握手连接。
第二步:客户端向服务端发起http请求。
第三步:客户端发送请求头信息,请求内容,最后会发一个空白行,表示客户端请求完毕。
第四步:服务器做出应答,表示对于客户端请求的应答,
第五步:服务器向客户端发送应答头信息。
第六步:服务器向客户端发送请求头信息后,也会发送一空白行,表示应答头信息发送完毕,接着就以Content-type要求的数据格式发送给客户端。
第七步:服务器关闭掉TCP连接,如果服务器或者客户端增Connection:keep-alive就表示客户端与服务端继续保存连接,在下次请求的时候可以继续使用这次的连接。
2.https的工作流程
第一步:客户使用https的URL访问web浏览器,要求与web服务器建立SSL连接。
第二步:web服务器收到客户端的请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
第三步:客户端的浏览器开始与web服务器协商SSL的安全等级,也就是信息加密的安全等级。
第四步:客户端的浏览器根据双方同意的安全等级,建立会话秘钥,然后利用网站的公钥将会话的秘钥加密,并且传送给网站。
第五步:web服务器利用自己的私钥解密出会话秘钥,
第六步:web服务器利用会话秘钥加密与客户端之间的通信。
五:Http和Https的优缺点
1.http
1)优点:(1):支持客户端 ,服务器模型。 (2):简单快速。 (3):灵活,允许任何类型的数据对象传输,对输入和传出的内容进行标记。 (4):无连接,限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
(5):无状态:HTTP 协议自身不对请求和响应之间的通信状态进行保存。任何两次请求之间都没有依赖关系。
这是为了更快地处理大量事务,确保协议的可伸缩性,而特意把 HTTP 协议设计成如此简单的。
2)缺点:(1):通信使用明文,没有加密,内容可能会被窃听。 (2):不验证通信方的身份,因此可能遭遇伪装。 (3):无法证明报文的完整性,所以有可能已经遭到篡改。
2.https
1)优点:(1):可认证用户和服务器,确保数据发送到正确的客户机和服务器; (2):它是由SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议,要比http协议安全,可以防止数据在传输的过程中不被窃取,改变,确保了数据的安全性和完整性。 (3):它是现行架构下最安全的解决方案,虽然不是绝对的安全,但是大幅度的增加了攻击人的成本。
2)缺点:(1):在握手阶段比较的费时,会使页面加载的时间延长近50%,增加10%到20%的耗电。 (2):连接缓存不如http高效,会增加数据的开销和功耗,甚至已有的安全措施也会因此受到影响。 (3):SSL证书需要钱,功能越强大的证书费用越高。 (4):SSL证书通常需要绑定IP,不能在同一个IP上绑定多个域名,IPv4资源不可能支撑这个消耗。 (5):它的加密范围比较的有限,在黑客攻击,拒绝服务攻击,服务器劫持等方面起不到什么作用。SSL证书的信用链体系并不安全,在某些国家可以控制CA根证书的情况下,中间人一样可以进行攻击。
六:Https和Http的不同之处
1.Https协议需要到ca申请证书,一般免费的较少,因此需要一定的费用。
2.http是超文本传输协议,信息是明文传输;https则是具有安全性的SSL加密传输协议。
3.http和https使用的是完全不同的连接方式,用的端口也不一样,前者为80,后者为443.
4.http连接很简单,是无状态的;https协议是由http+SSL构建的可进行加密传输,身份认证 的网络协议,比http协议安全。
七:Http如何切换到https
需要将页面中的所有的链接,例如:js,css,图片等链接都有http改为https。但是在切换的时候可以做到两者之间兼容,实现方法就是:去掉页面链接中的http头部,这样就可以自动的匹配是http还是https头,,用户从http入口进行访问时,页面就是http,如果用户从https入口访问,页面就是https。
以上是关于Http协议>VS>Https协议的主要内容,如果未能解决你的问题,请参考以下文章