论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
大数据
›
数据仓库与分析
›
消息队列篇--通信协议篇--理解HTTP、TLS和TCP怎样协同工 ...
消息队列篇--通信协议篇--理解HTTP、TLS和TCP怎样协同工作 ...
欢乐狗
论坛元老
|
2025-4-1 02:23:32
|
显示全部楼层
|
阅读模式
楼主
主题
1855
|
帖子
1855
|
积分
5565
前面先容了HTTP/HTTPS,SSL/TLS以及TCP和UDP,这些在网络传输上分别有着自己的作用。为了深入理解下这些概念,本篇重点先容下HTTP、TLS 和 TCP是怎样协同工作的?我们从底层到上层逐步分析每个协议的作用及其相互关系。这些协议共同协作确保数据在网络中的可靠传输和安全性。
1、TCP(Transmission Control Protocol)
TCP是一种面向连接的传输层协议,负责在客户端和服务器之间建立可靠的通信通道。
重要功能:
可靠性:通过序列号和确认机制确保数据包按顺序到达且不丢失。
流量控制:防止发送方发送过多的数据导致接收方溢出。
拥塞控制:监控网络状态,制止网络拥塞。
错误检测与改正:通过校验和检测传输中的错误,并在必要时重传数据包。
2、TLS(Transport Layer Security)
TLS是一种加密协议,用于在客户端和服务器之间提供安全通信。它运行在TCP之上。
重要功能:
加密:利用对称加密算法(如AES)加密数据,确保数据在传输过程中不被窃听。
身份验证:通过数字证书验证服务器的身份,防止中心人攻击。
完备性查抄:利用消息认证码(MAC)确保数据未被篡改。
密钥互换:通过握手过程天生共享的秘密密钥,用于后续的加密通信。
3、HTTP(HyperText Transfer Protocol)
HTTP是一种应用层协议,用于在客户端(通常是Web欣赏器)和服务器之间传输超文本(如HTML文档)。它基于请求-响应模型工作,客户端发送请求,服务器返回响应。
4、三者协作工作流程
当用户在欣赏器中输入一个URL并发起请求时,整个通信过程涉及以下几个步骤:
(1)、建立TCP连接
首先,客户端需要与服务器建立一个TCP连接。这个过程称为“三次握手”(Three-Way Handshake),确保双方都预备好进行通信。
三次握手的过程:
1、SYN:客户端向服务器发送一个SYN(同步)消息,表现希望建立连接,并包罗一个初始序列号。
2、SYN-ACK:服务器回应一个SYN-ACK消息,表现同意建立连接,并包罗自己的初始序列号。
3、ACK:客户端发送一个ACK(确认)消息,确认收到服务器的SYN-ACK消息,并完成连接建立。
此时,客户端和服务器之间的TCP连接已经建立,可以开始传输数据。
(2)、TLS握手(可选)
如果客户端请求的是HTTPS(即HTTP over TLS),则需要在TCP连接的基础上进行TLS握手,以建立安全的通信通道。
TLS握手的过程:
1、Client Hello:客户端向服务器发送一个Client Hello消息,包罗支持的TLS版本、加密套件列表、客户端随机数等信息。
2、Server Hello:服务器回应一个Server Hello消息,选择一个双方都支持的加密套件,并发送服务器的数字证书(之后利用CA公钥验证),服务器公钥、服务器随机数等信息。
3、客户端验证证书:客户端验证服务器的数字证书,确保其真实性。如果验证失败,握手终止。(客户端利用利用CA的公钥验证证书签名的精确性和时效性等)
4、密钥互换:客户端天生一个预主密钥,并利用服务器的公钥对其进行加密,然后发送给服务器。服务器利用自己的私钥解密预主密钥,双方根据Client Random、Server Random和Pre-Master Secret计算出会话密钥。
5、加密通信预备就绪:双方互换Finished消息,确认握手乐成。此后,全部通信都将利用会话密钥进行加密。
此时,客户端和服务器之间的TLS连接已经建立,可以开始加密通信。
(3)、HTTP请求与响应
一旦TCP连接(或TLS 连接)建立完成,客户端就可以通过HTTP协议向服务器发送请求,服务器返回响应。
HTTP请求的示例:
GET /index.html HTTP/1.1
Host: www.example.com
复制代码
HTTP响应的示例:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 137
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
复制代码
如果利用了HTTPS,则全部HTTP请求和响应都会在TLS加密通道中传输,确保数据的安全性。
(4)、流程图示例
以下是HTTP、TLS和TCP协同工作的详细流程图:
表明:
1、TCP连接建立:
客户端通过三次握手与服务器建立TCP连接。(SYN,SYN-ACK,ACK)
这一步确保了双方能够可靠地传输数据。
2、TLS握手(仅HTTPS):
如果是HTTPS请求,客户端和服务器将进行TLS握手。(Client Hello-到-Client Finished)
双方协商加密套件,验证服务器证书,天生会话密钥。
此后,全部通信将利用会话密钥进行加密。
3、HTTP请求与响应:
客户端通过已建立的TCP或TLS连接发送HTTP请求。
服务器处理请求并返回HTTP响应。
如果利用了HTTPS,全部请求和响应都在加密通道中传输。
4、关闭连接:
当数据传输完成后,客户端和服务器可以通过四次挥手关闭TCP连接。
四次挥手确保双方都能精确关闭连接,释放资源。
5、总结
TCP提供了底层的可靠传输服务,确保数据包按顺序到达且不丢失。
TLS在TCP之上增长了加密和身份验证功能,确保数据的安全性和完备性。
HTTP是应用层协议,负责定义客户端和服务器之间的请求和响应格式。
通过这种分层结构,HTTP、TLS和TCP协同工作,确保了网络通信的可靠性、安全性和效率。如果你利用的是HTTPS,那么全部的HTTP请求和响应都会在TLS加密通道中传输,从而保护数据免受窃听和篡改。
逆风翻盘,Dare To Be!!!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
欢乐狗
论坛元老
这个人很懒什么都没写!
楼主热帖
C# 读写文件从用户态切到内核态,到底 ...
我的 Java 学习&面试网站又又又升级了 ...
LeetCode刷题100道,让你滚瓜烂熟拿下S ...
SQL server 2008 r2 安装教程
不到一周我开发出了属于自己的知识共享 ...
基于梯度优化的混沌PSO算法matlab仿真 ...
x64dbg 配置插件SDK开发环境
SAP集成技术(十一)SAP混合集成平台 ...
KubeEdge在边缘计算领域的安全防护及洞 ...
graphhopper-ios 编译过程详解
标签云
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
Oracle
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表