http和https最主要的差别就是http是明文传输数据,而https传输的数据经过加密。
什么是http
HTTP,英文全称 Hyper Text Transfer Protocol,中文全称“超文本传输协议”,按照OSI参考模型,它属于第七层应用层的协议。HTTP的作用是提供了一组规则和标准,用于控制如何在万维网上传输任何信息,提供了Web浏览器和服务器进行通信的标准规则。目前主要使用的是HTTP/1.0 和 HTTP/1.1 两个版本,主流使用的是 HTTP/1.1。
- http使用场景
当在浏览器输入网址按回车之后,默认自动会在网址前面加上http://。它表示浏览器与web服务器通过http协议进行连接和传输数据。当浏览器获得http响应之后,会进行渲染,变成我们可以看到的网页。
- http工作原理
http是基于C/S结构的协议,浏览器在向服务器发送请求之前,首先需要建立TCP连接,然后才能发送HTTP请求报文,并接收HTTP响应报文。
http请求响应过程大概可以分为四步:
(1)客户端请求服务器建立连接;
(2)连接建立后,客户端向服务器发送http请求;
(3)服务器接收到http请求后,并根据请求做相应的响应;
(4)完成请求之后,客户端与服务端断开连接。
什么是https
https,英文全称 Hyper Text Transfer Protocol over SecureSocket Layer,中文全称 超文本传输安全协议。是在http的基础上加上TLS/SSL协议,通过加密传输和身份验证保证传输的安全性。https最初是基于ssl,后来ssl协议升级并命名为tls协议,目前tls协议最新版本是tls1.3,主流使用的是tls1.2版本。
- 有了http了,为什么需要https?
http能完成网站浏览服务,但是也有很明显的安全缺陷,主要是明文传输数据和缺乏信息完整性校验,通俗理解就是,双方传输的数据可以被第三方窃取,知道你传输的是什么内容,甚至还可以对数据进行修改,双方却无法察觉到。特别是在网站登录和网络支付的时候,使用http更致命。
http的风险总结为:
(1)窃听风险,第三方可以获取通信内容
(2)篡改风险,第三方可以修改通信内容
(3)冒充风险,第三方可以冒充他人参与通信
- https的作用
https就是为了解决http的风险而设计的
(1)数据加密,通信的数据都是加密的,无法被窃听
(2)完整性校验,加密的通信数据,经过消息完整性校验MAC,防止被篡改
(3)身份验证,TLS握手过程使用的证书是经过权威CA签名的,进行身份验证,防止身份假冒
- https工作原理
http和https的区别
- 安全性不一样。http没有用于数据加密和数据完整性校验的安全机制,而https通过数字证书来保障双方的通信
- 监听端口不一样。http监听80端口,而https监听443端口
- 传输内容不一样。http以纯文本格式明文传输,而https以密文格式传输
- 协议头不一样。http的URL以”http://”开头,而https的URL以”https://”开头
结束语
综上所述,http和https最主要的差别就是http是明文传输数据,而https传输的数据经过加密。
文|技术猿小黄
图|来源于网络
我是技术猿小黄,很高兴为您回答,如果您喜欢我的回答,可以关注我,点个赞,谢谢
如果您有什么想法或建议,欢迎下方留言评论
http和https是浏览器和网站服务器之间的一种约定,约定如何将网站服务器中的信息下载到本地通过浏览器展现出来。
这种约定很像我们网上购物的这个过程。我们根据自己的需求确定某个网店下单后,下单的过程会约定是通过什么样的方式送到我们手中。
有些包裹打包后是很容易让人猜测到里面的是什么,并且快递单也能看到收件人的详细信息和物品信息。如:下图某男生签收二次元包裹,别提有多尴尬。拿回家里的路上回头率绝对是100%,难免会被路人指指点点。
这些特殊的包裹,我们就可以要求店家进行保密发货,将包裹封装在保密纸箱内,快递单上也不能出现敏感信息。
HTTPS类似于这样的一个约定的过程。
HTTP协议以明文的方式发送内容,不提供任何方式的数据加密。
攻击者很容易截取了浏览器和网站服务器之间的传输报文,直接读取里面的信息。
HTTPS协议由HTTP进行通信,只不过利用了SSL/TLS来加密数据包。
这样攻击者就算截取到了浏览器和网站服务器之间的传输报文也很难读取里面的信息,除非有相应的密钥进行解密。HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了攻击者的攻击成本。
HTTP和HTTPS协议的区别
HTTPS协议在语法、语义上和HTTP一样,HTTP有的,HTTPS也照单全收。
通常情况下,HTTP会先直接和TCP进行通信。在使用SSL(安全套接字协议)的HTTPS后,就演变成和SSL进行通信,再由SSL和TCP进行通信。
区别在于:
1、HTTP的连接很简单,明文传输,通过80端口连接。
2、HTTPS是由SSL+HTTP构建的可进行身份认证、加密传输的协议,相对更安全,通过443端口连接。
3、HTTPS需要到证书颁发机构申请证书。
由此可见HTTPS可以对内容传输结果进行完整性校验,内容结果对称加密,每个连接生产一个唯一的加密密钥,第三方无法伪造服务端或客户端身份。
HTTPS的缺点
- SSL的专业证书需要购买,功能越是强大的证书费用越高。个人网站、小网站可以选择入门级别免费证书。
- SSL证书通常需要绑定固定IP,为服务器增加固定IP会增加一定费用。
- SSL证书的信用链体系并不安全。某些国家可以控制CA根证书的情况下,中间人攻击一样可行。
- HTTPS连接服务器端资源占用较多,会影响缓存增加数据开销和功耗,会使页面的加载时间延长近50%,增加10%-20%的耗电,相同负载下会增加带宽和服务器投入成本。
- HTTPS协议的安全有范围,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到作用。
HTTPS既然有那么多缺点,那是不是就不做了呢?
不是,“金无足赤,人无完人”,实际上越来越多的网站配置SSL证书,它可以有效地保护网络隐私,这已经成为了大众化的安全需求趋势。随着技术的发展很多的缺点也在弥补和优化,比如:很多服务器提供商推出了免费证书和一站式HTTPS搭建服务,打开速度问题也可以通过CDN加速服务解决。
实际上HTTPS也并不会影响搜索引擎抓取、收录内容,Google、百度建议所有网站尽可能都使用HTTPS。
以上个人浅见,欢迎批评指正。
认同我的看法,请点个赞再走,感谢!
喜欢我的,请关注我,再次感谢!
原创文章,作者:普尔小编,如若转载,请注明出处:http://www.puerpx.cn/pxwd/5121.html