计算机网络之HTTP和HTTPS的区别(文末送书福利)

简介: 计算机网络之HTTP和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依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。具体是如何进行加密,解密,验证的,且看下图,下面的称为一次握手。

       

详细讲解可见文章:

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和机器学习应用,提供更加稳定、可靠和高性能的服务。


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
20天前
|
存储 网络协议 算法
从HPACK到多路复用,揭秘HTTP/2如何终结网络拥堵
HTTP/2通过HPACK压缩头部冗余信息,提升传输效率;并利用多路复用技术,在单个TCP连接上并行处理多个请求,避免队头阻塞,显著提升性能。同时支持服务器推送和流优先级设置,优化资源加载体验。
67 7
|
4月前
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
252 61
|
5月前
|
运维 安全 网络性能优化
工业路由器:企业网络的中流砥柱和个人路由器有什么区别?卓伊凡
工业路由器:企业网络的中流砥柱和个人路由器有什么区别?卓伊凡
459 11
工业路由器:企业网络的中流砥柱和个人路由器有什么区别?卓伊凡
|
4月前
|
JSON 编解码 API
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
|
5月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
147 18
|
5月前
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
432 20
|
5月前
|
安全 网络协议 算法
HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析
本文系统探讨了构建企业级双协议隧道代理系统的挑战与实现。首先对比HTTP/HTTPS和SOCKS5协议特性,分析其在工作模型、连接管理和加密方式上的差异。接着提出兼容性架构设计,包括双协议接入层与统一隧道内核,通过协议识别模块和分层设计实现高效转换。关键技术部分深入解析协议转换引擎、连接管理策略及加密传输方案,并从性能优化、安全增强到典型应用场景全面展开。最后指出未来发展趋势将更高效、安全与智能。
188 1
|
6月前
|
安全 网络安全 数据安全/隐私保护
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
303 3
|
6月前
|
网络安全
网络问题解析:如何解决CondaHTTPError HTTP 000 CONNECTION FAILED错误。
以上就是斯诺普为你准备的解决Conda出现HTTP连接错误的手术室。希望这辆小车可以顺利驶出棘手的泥潭,再次在自由的大路上疾驰。一切的尝试和努力,只为更好的探索与开发。
220 17
|
12月前
|
缓存 安全 网络协议
HTTP和HTTPS的区别有哪些?
本文简要总结了 HTTP 和 HTTPS 的区别,从概念、端口、连接方式、使用场景、安全性等多个角度进行了对比。HTTP 是无状态的、无连接的应用层协议,适用于一般性网站和性能要求较高的应用;HTTPS 则通过 SSL/TLS 层提供加密、认证和完整性保护,适用于涉及敏感信息和高安全性的场景。文章还讨论了两者在性能上的差异,包括握手和加密开销、缓存效果以及 HTTP/2 的多路复用技术。最终,根据具体需求选择合适的协议能够更好地平衡安全性和性能。
4085 2
HTTP和HTTPS的区别有哪些?

热门文章

最新文章