当前位置: 首页 > 知识库问答 >
问题:

前端 - https 和 tcp 的关系?

强保臣
2023-09-18

个人背景:是一个准备深入了解网络知识的前端新人。

问题背景:在了解 osi 模型的时候,了解了 https 是跑在应用层的协议,而 tcp/ip 是传输层的协议,在了解相关知识的时候产生了一个疑问。

接下来的问题为谷歌浏览器背景。

问题1:是因为有了 tcp/ip 协议,才选用 https 这种传输方式?还是先选用了 https 协议,再有了 tcp/ip 呢?

问题2:在网址栏输入 www.baidu.com ,我目前的理解是,浏览器跑在应用层,会通过 https 请求到目标服务器,这个过程会建立 tcp 链接。但是这个建立了 tcp 链接的时候是在 osi 的哪一层呢?

共有4个答案

魏煜祺
2023-09-18

TCP提供了可靠的数据传输服务,而HTTPS在TCP的基础上增加了SSL/TLS协议的安全功能,确保数据在传输过程中的机密性和完整性。HTTPS使用TCP的443端口进行通信,并通过SSL/TLS握手过程建立安全连接。
先有了TCP/IP协议,才有了HTTPS这种传输方式。

TCP/IP协议是互联网通信的基础协议,它定义了数据在网络中的传输和路由方式,包括IP地址分配、数据分组、数据包传输等。HTTP协议是在TCP/IP协议的基础上发展起来的应用层协议,用于在Web浏览器和Web服务器之间传输超文本数据。

随着互联网的发展和应用的广泛性,人们对数据传输的安全性越来越关注。为了保护用户的隐私和数据安全,HTTPS协议应运而生。HTTPS通过在HTTP协议上加入SSL/TLS协议,实现了数据的加密和身份验证,提供了更高的安全性。

因此,HTTPS是在HTTP协议的基础上发展出来的,而HTTP协议本身则是建立在TCP/IP协议之上的。TCP/IP协议提供了可靠的数据传输机制,而HTTPS利用了TCP/IP协议提供的传输能力,并通过SSL/TLS协议增加了数据加密和身份验证的功能,从而实现了更安全的数据传输。

郑声
2023-09-18

问题1:
在网络通信的早期阶段,TCP/IP 协议已经存在了,它是网络通信的基础。HTTPS 是后来为了提供更安全的数据传输才开发的,在 TCP/IP 的基础上加了 SSL/TLS 加密层来保证数据的安全。
问题2:
企业微信截图_16950059222382.png

丁恩
2023-09-18

问题1:是因为有了 tcp/ip 协议,才选用 https 这种传输方式?还是先选用了 https 协议,再有了 tcp/ip 呢?

HTTPS 包含了 HTTP 和 TLS,HTTP 是应用层,SSL/TLS 在会话层

图片.png

图片.png


问题2:在网址栏输入 www.baidu.com ,我目前的理解是,浏览器跑在应用层,会通过 https 请求到目标服务器,这个过程会建立 tcp 链接。但是这个建立了 tcp 链接的时候是在 osi 的哪一层呢?

图片.png

秦毅
2023-09-18

根据您提供的信息,我可以为您回答以下问题:

问题1:因为 https 是一种传输层协议,它通过在应用层上建立安全通道来提供安全通信。而 tcp/ip 是一种网络层协议,它负责在计算机网络中传输数据包。因此,在选择使用 https 协议之前,需要先选择 tcp/ip 协议作为网络层协议。

问题2:在网址栏输入 www.baidu.com 时,浏览器会通过应用层向目标服务器发送 https 请求。在建立 tcp 链接时,这个链接是在 osi 的网络层建立的,也就是在 tcp/ip 协议栈中的网络层。

 类似资料:
  • 我有以下关于连接和TCP保持活动状态的查询: 对于TCP连接,TCP保持活动状态是强制性吗? 保持活动状态的持续时间是固定的还是可配置的? 假设“保持活动”间隔为每15秒一次,那么“保持活动”是始终每15秒发送一次,还是仅在15秒内未发送应用程序数据时才发送? 服务器(通过TCP与客户机连接)如何判断与客户机的连接是否完整?是否可以使用TCP keepalive完成?在这种情况下,是否是服务器需要

  • 我遇到了一个有趣的问题,HTTP 1.1 POST请求的TCP连接在请求之后立即关闭(即,在服务器可以发送响应之前)。 关于测试环境的一些细节: 客户端-Windows XP、Internet Explorer 8、Flash player 12。 服务器-Java 7 在上述行为之前,我们有几个长期存在的TCP连接,每个都被重用用于多个HTTP请求;我们打开一个长轮询,当这个轮询完成时,打开另一

  • 创建 TCP 客户端 最简单的方法来创建一个 TCP 客户端,使用默认选项如下所示: NetClient client = vertx.createNetClient(); 配置 TCP 客户端 如果你不想使用默认值,则创建TCP 客户端时,通过传入NetClientOptions实例可以配置: NetClientOptions options = new NetClientOptions().s

  • nextjs 提到了 React Server Components 使用的优点,并建议对于静态部分尽量使用 React Server Components。但是 React Server Components 是不支持 Context 的,那么就要求带 Context 的组件使用 "use client",而很多组件库使用了 Context 来提供主题设置,往往这个设置都放置在顶层上,这又导致了

  • tcp 服务端 tcp 服务端 源码/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * *//** 程序清单:tcp 服务端 * * 这是一个 tcp 服务端的例程 * 导出 tc

  • tcp 客户端例程 tcp 客户端例程 源码/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * *//* * 程序清单:tcp 客户端 * * 这是一个 tcp 客户端的例程 *