首页 > Python资料 博客日记
计算机网络之HTTP和HTTPS的区别(文末送书福利)
2024-08-02 10:00:05Python资料围观44次
目录
4、对于HTTPS,在验证阶段,除了传递密钥,还会发送什么?
1、HTTP和HTTPS有什么不同?
1、HTTP协议
HTTP协议是超文本传输协议,是一种使用明文数据传输的网络协议。一直以来HTTP协议都是最主流的网页协议,HTTP协议被用于在Web浏览器和网站服务器之间传递信息。以明文的方式发送内容、不提供任何方式的数据加密,如果攻击者截取了web浏览器和网站服务器之间的传输报文,就可以直接读懂其他的信息。传输端口为80。
HTTP协议的特点
1、简单快速
2、灵活
3、无状态
无状态的原因:每次请求都是独立的,上一次请求和下一次请求互不相干。
比如,你登录了某个网站,下一次请求理论上来说就不需要再登录了。http是无状态的,它不能知道你上一次请求已经登录过了。所以需要借助其他东西来完成这个登录认证。
因为http是无状态的,所以就引入了会话保持:
会话保持-:session 和 cookie
状态记录 ------> 登录验证
由于http协议的明文传输会让用户存在非常大的安全隐患,个人信息不安全,容易泄露。为了解决这个缺陷,于是就引入了HTTPS协议。
2、HTTPS协议
HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。HTTPS协议基于TLS/SSL协议加密进行TCP传输 进行了加密,拿到的是密文。传输端口为443。
为了数据传输的安全,HTTPS协议在HTTP的基础之上加入了SSL、TLS协议,SSL/TLS协议依靠证书来验证服务器的身份,并且为浏览器和服务器之间的通信加密。HTTP协议可以理解为HTTP协议的升级,就是在HTTP的基础之上增加了数据加密。对数据进行加密,然后再发送到服务器。这样就算数据被第三者截获,但是由于数据是加密的,所以你的个人信息仍然是安全的。
HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,很多大型互联网网站,如百度、淘宝、腾讯很早就已经把HTTP换成HTTPS了。
3、HTTP和HTTPS的区别
HTTP是HTTP协议运行在TCP之上。所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。
HTTPS是HTTP运行在SSL/TLS之上,SSL/TLS运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。此外客户端可以验证服务器端的身份,如果配置了客户端验证,服务器方也可以验证客户端的身份。
1、安全性不同
2、网站申请流程不同
3、默认端口不同
4、连接过程的不同
1、安全性不同
http传输的信息是明文传输。
① 当你使用浏览器访问一个HTTP网站的时候,你会发现浏览器对该HTTP网站显示“不安全”的安全警告,提示用户当前所访问的网站可能会存在风险。
HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
② 而如果你访问的是一个HTTPS网站的时候,情况是不也一样的。你会发现浏览器的地址栏会变成绿色,企业名称会展示在地址栏中,地址栏上面还会出现一把“安全锁”的图标。这些会给用户很大的视角上的安全体验。
https://前缀表明的是使用SSL(安全套接字)或TSL加密的,你的电脑与服务器之间收发的信息传输将会更加的安全。
2、网站申请流程不同
https协议需要到CA申请证书,一般免费证书很少,需要交费,web服务器启用SSL需要获得一个服务器证书并将该证书与要使用的SSL的服务器绑定。
http页面响应速度比https快。
3、默认端口不同
http和https使用的是完全不同的连接方式,同时使用的端口也不同,http使用的是80端口,https使用的是443端口。在网络模型中,HTTP工作于应用层,而HTTPS工作在传输层。
4、连接过程的不同
http的连接很简单,是无状态的,无状态是指服务器不知道客户端是什么状态。无状态的原因:每次请求都是独立的,上一次请求和下一次请求互不相干。比如,你登录了某个网站,下一次请求理论上来说就不需要再登录了。但是由于http是无状态的,它不能知道你上一次请求已经登录过了。
http中使用的是tcp三次握手进行连接。
https中使用的是tcp的三次握手加上TLS(安全传输层)四次握手。
2、HTTP比HTTPS多了几次握手?
1、HTTP的三次握手
HTTP的三次握手其实就是使用三次TCP握手确认建立一个HTTP连接。
详细讲解见文章:TCP 三次握手、四次断开_请说明tcp协议三次握手连接与四次挥手断开的过程-CSDN博客
第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
2、HTTPS握手过程
HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。具体是如何进行加密,解密,验证的,且看下图,下面的称为一次握手。
详细讲解可见文章:
写文章-CSDN创作中心https://mp.csdn.net/mp_blog/creation/editor/138059978
3、 为什么HTTPS是安全的?
在HTTPS握手的客户端解析证书中,如果站点的证书是不受信任的,会显示出现下面确认界面,确认了网站的真实性。另外服务端解密信息和客户端解密信息,使用客户端私钥加密解密,保证了数据传输的安全。
总结:
主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包。
而 HTTPS除了 TCP 的3个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
4、对于HTTPS,在验证阶段,除了传递密钥,还会发送什么?
我觉得应该是还发送了使用使用CA证书认证过的证书。这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等。
5、HTTP2.0相对于HTTP1.0有什么区别?
1、HTTP/2采用二进制格式而非文本格式
2、HTTP/2是完全多路复用的,而非有序并阻塞的——只需一个连接即可实现并行
3、使用报头压缩,HTTP/2降低了开销
4、HTTP/2让服务器可以将响应主动“推送”到客户端缓存中
文末了,送书福利来了
书籍简介:最近在找工作的小伙伴们是不是也发现了,很多公司都要求会熟练使用Kubernetes,而
- Kubernetes以容器为重要组成部分,而容器的安全性如今越来越受到挑战。所幸,我们可以看到 …
在Kubernetes的实践中,开发者也逐渐在开始尝试引入零信任安全模型 (Zero Trust Security Model),甚至将它应用在Kubernetes集群内部,杜绝了大量来源于内部的安全隐患。 - 随着AI和机器学习技术的快速发展,越来越多的企业开始将AI和机器学习应用于自身的业务中。Kubernetes作为一个可扩展的容器编排平台,将为AI和机器学习应用提供更好的支持。企业可以利用Kubernetes来部署和管理AI和机器学习应用,提供更加稳定、可靠和高性能的服务。
这本书是 Kubernetes的从入门到实战应用,对于初学者来说是很好的学习资料;
书籍官方链接为:
当然,我也为我的粉丝们准备了福利,给大家免费送出一本!!!!。
抽奖方式:采用微信抽奖小程序进行抽奖。
活动时间:4月22日------4月25日十点半截至。
参与方式:关注微信公众号《欢喜躲在眉梢里333》,发送:我要学kubernetes,即可参与
抽奖二维码可扫描:
最后,觉得我的文章还不错的话,点赞、收藏、评论一波再走哦!爱心❤❤爱心
更多学习交流可来♥斯我哦,欢迎来撩~~~~
♥♥:-99yaobaofu
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj