深入解析:TCP三次握手/四次握手-TCP/IP四层模型-SSL/TLS-HTTP-HTTPS

news/2025/10/5 11:40:40/文章来源:https://www.cnblogs.com/slgkaifa/p/19126417

深入解析:TCP三次握手/四次握手-TCP/IP四层模型-SSL/TLS-HTTP-HTTPS

重要概念

seq ( Squence Number ) 序列号,用于数据排序、去重,防止数据包乱序

ack ( Acknowledgement Number ) 确认好,表示期望接受的下一个字节序号,用于确认数据包被对方接受

TCP三次握手是建立可靠连接的过程,确保客户端和服务器都能正常收发数据

第一次握手(SYN:Synchronize 同步的缩写)

SYN表示请求建立连接

从客户端向服务器发送 SYN=1,序列号seq=x ,客户端进入 SYN_SENT 状态

第二次握手(SYN+ACK:ACK是 Acknowledgement 确认的缩写)

ACK表示“收到了你发的数据”

从服务器端向客户端发送 SYN=1,ACK=1,序列号seq=y,ack=x+1 ,服务器进入 SYN_RCVD (received)状态

第三次握手(ACK)

从客户端向服务器端发送 ACK=1,seq=x+1,ack=y+1

双方进入 ESTABLISHED 状态,表示双方的连接已经成功建立了,可以进行数据传输了

三次握手的意义
  • 确认双方收发能力:验证客户端和服务器都能正常发送和接收数据
  • 防止历史连接:避免因网络延迟导致的重复连接
  • 同步序列号:建立可靠的数据传输基础

TCP四次握手是断开连接的过程,确保数据完整传输后安全关闭连接

第一次握手(FIN)

从客户端向服务器端发送 FIN=1(表示客户端主动关闭不再发送数据),seq=u

客户端进入 FIN_WAIT_1 状态

第二次握手(ACK)

从服务器端向客户端发送 ACK=1(表示收到关闭请求),seq=v,ack=u+1

服务器进入 CLOSE_WAIT 状态,客户端进入 FIN_WAIT_2 状态

第三次握手(FIN)

从服务器端向客户端发送 FIN=1 (服务器也准备关闭), ACK=1 ,ack=u+1

服务器进入LAST_ACK状态

第四次握手(ACK)

从客户端向服务器端发送 ACK=1(最后确认完成关闭)seq=u+1 ,ack=w+1

客户端进入 TIME_WAIT 状态,服务器进入 CLOSED 状态

为什么是四次而不是三次?
  • 半关闭状态:TCP连接是全双工的,需要分别关闭两个方向的数据流
  • 数据完整性:服务器可能还有数据要发送,需要时间处理
  • ACK和FIN分离:服务器的ACK和FIN可能不能同时发送

应用层 ← HTTP、FTP、SMTP、DNS、HTTPS
传输层 ← TCP、UDP、TLS/SSL
网络层 ← IP、ICMP、ARP
链路层 ← 网卡驱动、以太网协议等

层级

名称

主要功能

举例

应用层

用户用的

定义通信内容与格式

HTTP、FTP、SMTP、DNS

传输层

快递员

控制数据传输的可靠性、完整性和顺序

TCP、UDP、TLS

网络层

地图

确定数据从哪儿到哪儿(IP地址)

IP、ICMP、ARP

链路层

路线

实际在网卡之间传输比特流

Ethernet、WiFi 等

SSL 是建立在 TCP 之上的安全协议,负责加密通信内容,而 TCP 负责可靠传输。

TCP是在传输层,SSL在传输层和应用层si

 ( 现在一般更新为 TLS)

HTTP 是一种应用层协议,全称为:

HyperText Transfer Protocol(超文本传输协议)

它定义了 浏览器与服务器之间如何传输网页数据,是万维网(WWW)中最核心的协议之一。


? HTTP 是干什么的?

  • ? 浏览网页

  • ? 提交表单

  • ? 加载图片、音频、视频

  • ? 请求 API 接口

简而言之:

浏览器和服务器之间“说话”的语言就是 HTTP。


? HTTP 工作流程(简化):

每次你访问一个网页(如 http://example.com)时,背后其实发生了:

浏览器 → 请求数据(HTTP 请求)
服务器 → 响应数据(HTTP 响应)


? HTTP 请求结构:

包含 3 部分:

1. 请求行: GET /index.html HTTP/1.1
2. 请求头: Host, User-Agent, Cookie ...
3. 请求体: (POST请求时的表单数据或JSON)


? HTTP 响应结构:

也分为 3 部分:

1. 状态行: HTTP/1.1 200 OK
2. 响应头: Content-Type, Set-Cookie, Content-Length ...
3. 响应体: HTML 页面、JSON 数据等


✅ 常见 HTTP 方法(请求方式):

方法

含义

举例用途

GET

获取资源

浏览网页

POST

提交数据

登录、注册表单

PUT

更新资源

修改用户信息

DELETE

删除资源

删除账号


? 常见 HTTP 状态码:

状态码

含义

200

请求成功

301

永久重定向

404

资源未找到

500

服务器内部错误

403

禁止访问


❌ HTTP 的缺点:

  • 数据 明文传输(不安全)

  • 无法验证服务器身份

  • 易受中间人攻击(MITM)

所以后来出现了 HTTPS(加密版 HTTP) ? 就是 HTTP + SSL/TLS


? 小结:

协议

层级

是否加密

用途

HTTP

应用层

❌ 明文

浏览网页、接口通信

HTTPS

应用层

✅ 加密

安全地传网页数据

TCP

传输层

可靠传输数据

HTTPS = HTTP + SSL/TLS 的组合协议,用于实现 加密的网页通信

? HTTPS 建立过程(简化图解):

  1. TCP 三次握手:建立连接

  2. TLS 握手:协商加密算法、密钥,验证服务器身份(SSL的核心)

  3. HTTP 数据加密传输:正式发送加密的 HTTP 请求/响应

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025测振仪厂家最新企业品牌推荐排行榜,自动诊断测振仪,防爆测振仪,智能测振仪,诊断故障测振仪推荐!

在工业生产领域,设备振动监测是保障生产安全、提升生产效益的关键环节,测振仪作为核心监测工具,其性能与品质直接影响设备故障诊断的准确性和及时性。当前市场上测振仪品牌数量众多,产品质量参差不齐,部分品牌存在…

西安建站价格谷歌seo关键词排名优化

目录 一、方法一 采用qrcodejs2生成1.1、安装二维码插件qrcodejs21.2、在vue文件中,引入生成二维码插件1.3、构建二维码对象qrCodeDiv 一、方法二 -采用qrcode生成2.1、安装qrcode2.2、页面引入2.3、方法里边使用2.4、options 三、方法三 vue-qr3.1、安装3.2、页面引…

DeepSeek 赋能教育新生态,智能教育机器人开启智慧教学新篇章 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:第1天:认识RNN及RNN初步实验(预测下一个数字)

深入解析:第1天:认识RNN及RNN初步实验(预测下一个数字)2025-10-05 11:35 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !importan…

如何创建一个属于自己的网站什么叫手机网站

涉及技术: 1.使用NMdbus4 库 2.ushort[]转int 记得之前刚学习的时候,是ushort[] → Hex字符串→byte[] → 翻转byte[] →BitConverter.ToInt32(),饶了一大圈;实际上可以直接转;这里也有小细节:使用BitCo…

2025 铜覆钢厂家最新企业品牌推荐排行榜单,铜覆钢接地棒,铜覆钢圆钢,铜覆钢扁钢,铜覆钢圆线公司推荐

在当今的电力、石油化工、通讯等众多领域,铜覆钢圆钢作为重要的接地材料,其质量与性能直接关系到相关工程的安全与稳定。然而,当前铜覆钢圆钢行业却面临着诸多问题。市场上产品质量参差不齐,部分生产商为追求利润,…

【JNI】JNI环境搭建

1 前言 ​ JNI (Java Native Interface) 是 JDK 提供的一种机制,用于实现 Java 代码与其他语言(主要是 C 和 C++)编写的本地代码之间的交互。 ​ JNI 接口详见 JDK 安装目录中的 include/jni.h 文件,Android…

CS自学笔记

上一次那么郑重其事地打开博客园,打算记录一些什么的时候,还是高二牛客多校的记录。 那时的我还不知道几个月后我会因为保守策略差一点再次失去省一; 还不知道之后社交关系崩坏的种种; 还不知道首考的跌宕起伏; 还…

JDBC - Wrapper接口

java.sql.Wrapper javax.sql.DataSource java.sql.Connection java.sql.Statement java.sql.ResultSet java.sql.ResultSetMetaData java.sql.DatabaseMetaData java.sql.ParameterMetaData

asp做网站基本过程商标设计图片

在之前写过一篇关于虚拟环境使用的文章,但是还没有好好的介绍一下 Python 的用户环境,原因是自己一直没遇到要使用 用户环境 的使用场景,所以就一直懒得写。恰巧这两天,自己遇到了一个使用用户环境的体验可以完爆虚拟环境的案例&a…

深入解析:[论文阅读]Poisonprompt: Backdoor attack on prompt-based large language models

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

fasthx fastapi服务器端渲染看框架

fasthx fastapi服务器端渲染看框架fasthx 是一个fastapi 的服务器端渲染框架 包含的特性基于装饰器的语法 内置htmx 支持任何模版引擎,htmy,jinja2,dominate 对于装饰器路路由渲染引擎支持访问所有依赖 支持异步以及…

vue: 报错: vue ResizeObserver loop completed with undelivered notifications.

一,报错信息: vue ResizeObserver loop completed with undelivered notifications. 如图:我没有专门截图,转一张别人发的二,原因 ResizeObserver 警告解释这条警告源于 ResizeObserver 的实现机制。它表示监听了 D…

成都 企业 网站建设计算机多媒体辅助教学网站开发

文章目录 前言一、Bean 的作用域1.1 被修改的 Bean 案例1.2 作用域的定义1.3 Bean 的六种作用域1.4 Bean 作用域的设置 二、Spring 的执行流程 和 Bean 的生命周期2.1 Spring 的执行流程2.2 Bean 的生命周期2.3 Bean 生命周期的演示 前言 Bean 是 Spring 框架中的一个核心概念…

ds调度mssql多个T-SQL语句同步阻塞实现

ds调度mssql多个T-SQL语句,默认异步非阻塞,发送到mssql服务器即认为任务成功,立马开始节点的下一个任务;导致依赖失效,数据产出异常,上一个任务没正常跑完,下一个任务就开始了; 解决方案: 多个T-SQL语句,包装…

站点建设网站线上平面设计兼职

在java中,每个class都有一个相应的Class对象,当编写好一个类,编译完成后,在生成的.class文件中,就产生一个Class对象,用来表示这个类的类型信息。获得Class实例的三种方式: 1). 利用对象调用get…

个人专业制作网站html做网站需要服务器吗

昨天想着看一些图形学方面的知识,在CSDN上看到说Gabor函数可以精确是被图形细微处。于是从网上找了下面这么一篇文章看看: 二、Gabor函数 Gabor变换属于加窗傅立叶变换,Gabor函数可以在频域不同尺度、不同方向上提取相关的特征。另外Gabor函数…

福州网站快速排名提升凡客诚品市场份额

摘要:在看别人单片机程序时,你也许是奔溃的,因为全局变量满天飞,不知道哪个在哪用了,哪个表示什么,而且编写极其不规范。自己写单片机程序时,也许你也是奔溃的。总感觉重新开启一个项目&#xf…

C# 文档 I/O 操作详解:从基础到高级应用

C# 文档 I/O 操作详解:从基础到高级应用pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

做企业网站需要哪些材料摄影的网站设计特点

使用HTML,CSS及JS实现注册功能中密码强度的显示&#xff0c;根据输入的密码判断并显示用户输入密码的强度等级是高还是低等。 效果演示 代码演示 html内容 <div class"container"><div class"userName-wrapper"><label for"userN…