你知道HTTP与HTTPS有什么区别吗?

每天都在上网,在搜索东西的时候,你有发现网址有什么不同吗?本文就来谈谈HTTP与HTTPS有什么不同。

一、什么是HTTP?

HTTP是"HyperText Transfer Protocol"的简称,翻译过来就是超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。简单来说就是一种发布和接收 HTML 页面的协议,被用于在 Web 浏览器和网站服务器之间传递信息。

HTTP 默认工作在 TCP 协议 80 端口,用户访问网站 http:// 打头的都是标准 HTTP 服务。

http的传输,具有简单、灵活的特点,但缺点是使用明文传输,请求和响应不会对通信方进行确认、无法保护数据的完整性,传输内容容易被窃取。

二 、什么是HTTPS

HTTPS是"Hypertext Transfer Protocol Secure"的简称,翻译过来就是超文本传输安全协议。它是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

三 、HTTPS的工作原理

看完上面HTTPS的解释,大家都知道了HTTPS 能够加密信息,以免重要信息被第三方获取,所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用 HTTPS 协议。

1、客户端发起HTTPS请求

这个很好理解,就是用户在浏览器里输入一个 https 网址,然后连接到 server 的 443 端口。

2、服务端的配置

采用 HTTPS 协议的服务器必须要有一套数字证书,证书可以自己制作,也可以向组织申请

区别:自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。

这套证书其实就是一对公钥和私钥,如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

3、传送证书

这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

4、客户端解析证书

这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。

如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密,就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

5、传送加密信息

这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

6、服务端解密信息

服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,

对称加密:将信息和私钥通过某种算法混合在一起。

这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够先进,私钥够复杂,数据就够安全。

7、传输加密后的信息

这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。

8、客户端解密信息

客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。

四 HTTP与HTTPS的区别

1、安全性

HTTP和HTTPS是两种不同的协议,它们之间最主要的区别在于安全性。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,容易被攻击者截取信息。

HTTPS则在TCP和HTTP网络层之间加入了SSL/TLS安全协议,使得报文能够加密传输,保证了数据的安全性。

2、端口号不同

HTTP和HTTPS使用的是完全不同的连接方式用的端口也不一样,HTTP是80、HTTPS是443。

3、证书

HTTPS需要申请证书,而HTTP不需要,申请证书也会有一些费用。

转载请注明以下内容

链接:https://blog.csdn.net/m0_73995538/article/details/132048392

相关推荐
大面积秃头11 分钟前
Http基础协议和解析
网络·网络协议·http
软件技术员3 小时前
使用ACME自动签发SSL 证书
服务器·网络协议·ssl
我也要当昏君3 小时前
6.4 电子邮件 (答案见原书 P284)
网络协议
せいしゅん青春之我5 小时前
[JavaEE初阶]网络协议-状态码
java·网络协议·http
小蝈蝈啊6 小时前
HTTP相关知识点
网络协议·http·iphone
せいしゅん青春之我7 小时前
[JavaEE初阶]HTTPS-SSL传输过程中的加密
https·java-ee·ssl
任性不起来了7 小时前
宝塔面板点击ssl证书报错:出错了,面板运行时发生错误!ModuleNotFoundError: No module named ‘OpenSSL‘
网络·网络协议·ssl
2501_9160074719 小时前
iOS 混淆工具链实战,多工具组合完成 IPA 混淆与加固(iOS混淆|IPA加固|无源码混淆|App 防反编译)
android·ios·小程序·https·uni-app·iphone·webview
stark张宇19 小时前
网络排错全流程:从DNS解析到防火墙,逐层拆解常见问题
linux·网络协议·dns