当前位置: 首页 > news >正文

Linux架构篇、第1章_01架构的介绍HTTP HTTPS 协议全面解析

题目:HTTP/HTTPS 协议全面解析:原理、区别与状态码详解

版本号: 1.0,0
作者: @老王要学习
日期: 2025.04.30
适用环境: 服务器

文档说明

本文围绕 HTTP/HTTPS 协议展开,详细介绍了协议的基本概念、工作原理、两者之间的区别以及常见的状态码。旨在帮助读者深入理解 HTTP/HTTPS 协议,为网络开发和应用提供理论支持


一、HTTP/HTTPS介绍

HTTP

超文本传输协议是( Hyper Text Transfer Protocol)的缩写,是互联网应用最广泛的一种网络协议,用于万维网服务器传输超文本到本地浏览器,基于TCP/IP通信协议来传递数据(HTML、图片、查询结果);默认使用端口80

TCP:(传输控制协议)

可靠性:TCP为HTTP提供了可靠的传输机制;通过序列号、确认应答、重传机制等确保数据准确无误的从客户端传送到服务器,或从服务器传回客户端
连接管理:HTTP通信开始前,TCP会在客户端和服务器之间连接“三次握手”;通信结束后,还会通过“四次挥手”关闭连接,保障通信的有序进行

三次握手(建立连接)

第一次握手:客户端向服务器发送一个带有SYN(同步序列号)标志的TCP报文段,此时客户端进入等待状态,表示连接请求已发送

第二次握手:服务器收到客户端的SYN报文,向客户端发送SYN+ACK报文段(SYN同步服务器序列号、ACK标志确认收到SYN)随后进入等待客户端查收状态

第三次握手:客户端收到服务器的SYN+ACK,向服务器发送一个ACK报文段;双方进入活动状态,标识连接成功,双方开始进行数据传输

举例:

三次握手(建立连接)

第一次握手:好比你要去朋友家借书,你先给朋友打电话说:“我想去你家借本书,你在家不?” 这就是客户端(你)向服务器(朋友)发送带有 SYN 标志的请求,里面带着你这边的一个随机编号(就像你打电话用的电话号码) 。这时你在等朋友回复,处于 “等待回复” 状态。

第二次握手:朋友接到电话后说:“我在家呢,你来吧,我也给你准备了一本我觉得不错的书推荐给你。” 这相当于服务器回复了一个带 SYN 和 ACK 标志的消息,朋友告诉了你他自己的 “编号”(他的电话号码 ),还确认收到了你的请求(表示知道你要来借书 )。朋友进入 “等你出发” 状态。

第三次握手:你听到朋友这么说,就回复:“好嘞,我这就出发!” 这就是客户端再发一个 ACK 消息确认收到朋友的回复,告诉朋友你收到他准备推荐书的消息了。这时你和朋友都准备好,可以进行借书这个 “数据传输” 活动了,连接就建立成功啦。

四次挥手:(关闭连接)

第一次挥手:客户端发送一个带有FIN(结束标志)的TCP报文段,表示自己不再发送数据了,但依可以接收数据,客户端进入’等待服务器回复’状态

第二次挥手:服务器收到FIN报文后,发送一个ACK报文段,确认客户端确定要断开连接,客户端不会再发送数据,但服务器仍然可以继续发送数据

第三次挥手:服务器也没有数据要发送时,向客户端发送一个FIN报文段,表示自己不再发送数据了;服务器进入“等待客户端断开”状态

第四次挥手:客户端收到服务器的FIN报文后,客户端再向服务器发送一个ACK报文段,客户端进入“确认离开等待”状态,等待2倍最大段生存期(MSL)时间后,彻底关闭连接;服务器收到这个ACK报文后,立即关闭连接

举例:

第一次挥手:你在朋友家借完书,准备走了,就跟朋友说:“我书借到啦,我准备回家啦!” 这就是客户端(你)向服务器(朋友)发送带 FIN 标志的消息,表示你不再借新的书(不再发送数据),但还能听朋友说话(接收数据),你进入 “等朋友回应” 状态

第二次挥手:朋友听到你说要走,就回复:“好的,我知道啦。” 这是服务器给你发一个 ACK 消息确认收到你要走的消息,朋友进入 “准备结束交流” 状态,你收到回复后进入 “等朋友也结束交流” 状态。这时朋友可能还有话跟你说,所以还能继续说话(发送数据)

第三次挥手:朋友说完想说的话,也跟你说:“我也没别的事儿啦,你路上注意安全!” 这是服务器给你发带 FIN 标志的消息,表示他也没什么要说的了(不再发送数据),朋友进入 “等你确认离开” 状态

第四次挥手:你听到朋友这么说,就回应:“行,我知道啦,拜拜!” 这是你给朋友发 ACK 消息确认收到他的告别,你进入 “确认离开等待” 状态,等一会儿确保没问题后就彻底离开朋友家(关闭连接)。朋友收到你的回复后,也关闭和你的交流(关闭连接)

IP:(网际协议)

IP负责在网络中寻址和路由数据包;它确定数据从源地址到目的地址的传输路径,为HTTP请求与响应找到正确的传输路径

HTTPS

安装超文本传输协议是(HyperText Transfer Protocol Secure)的缩写,在HTTP基础上加入SSL/TLS加密层,保障网络通信安全,防止数据在传输过程中被盗取、篡改,同时对服务器进行身份验证;默认使用端口443

SSL/TLS:

SSL及其继任者TLS是实现加密通信的关键;通信前客户端与服务器通过SSL/TLS握手协议加密算法、密钥等参数,之后的数据传输就会在这些规则下进行

二、HTTP/HTTPS原理

HTTP

建立连接:客户端向服务器发送一个TCP连接请求,服务器接受连接后。双发开始传输数据
发送请求:客户端按照 HTTP协议的格式,构造一个请求消息,包括请求方法(GET、POST)、请求路径、协议版本等可能的请求和请求体信息,将请求消息发送给服务器
处理请求:服务器收到请求后,根据请求的内容进行处理;解析客户端发来的信息,根据请求路径找到对应的资源与程序
发送响应:服务器处理结果按HTTP协议的格式封装成一个响应消息,包括响应状态码(200成功,404未找到)响应头与响应体等,将响应消息发送给客户端
关闭连接:客户端收到响应后,根据响应状态码与内容进行处理,当不需要继续和服务器通信,就会关闭TCP连接

HTTPS

SSL/TLS 握手:(四次握手)
第一次握手:客户端向服务器发送 “Client Hello”,告知自己支持的 SSL/TLS 版本、加密算法等信息,并给出一个随机数
第二次握手:服务器回复 “Server Hello”,确定使用的版本和算法,也给出一个随机数,同时发送自己的数字证书,可能还会请求客户端的证书
第三次握手:客户端验证服务器证书,生成一个特殊随机数并用服务器公钥加密发送,然后计算出会话密钥,通知服务器使用新密钥加密,并发送一个加密的 “Finished” 消息
第四次握手:服务器解密得到随机数并算出会话密钥,通知客户端使用新密钥,也发送一个加密的 “Finished” 消息,让客户端验证密钥是否正确

数据传输:握手完成后,客户端和服务器就可以使用会话密钥对数据进行加密传输。客户端将请求数据加密后发送给服务器,服务器收到后解密并处理请求,然后将响应数据加密发送给客户端,客户端再解密得到响应内容
连接关闭:当数据传输完成后,客户端或服务器可以发起关闭连接的请求,双方按照一定的步骤关闭 SSL/TLS 连接和底层的 TCP 连接

三、HTTP/HTTPS区别

3.1安全性

HTTP

HTTP以明文传输数据,传输中易被黑客窃取、篡改和监听,用户登录时用户名和密码有被盗取风险

HTTPS

对数据加密,传输时为密文,仅合法接收能够解密的数据,借助数字认证书验证服务器身份,可有效防止数据被窃改,避免中间人攻击,大幅提升了数据安全性

3.2连接方式

HTTP

连接简单,客户端向服务器发送请求,服务器响应请求后连接即结束

HTTPS

连接时需要先进行SSL/TLS握手,以验证服务器身份、协商加密算法和生成加密密钥等,握手成功后才会进行数据传输

3.3端口

HTTP

默认使用80端口进行数据传输

HTTPS

默认使用443端口进行数据传输

3.4证书

HTTP

不需要数字证书来验证身份

HTTPS

要求服务器拥有由权威机构颁发的数字证书,客户端可以通过验证证书来确定服务器的身份是否可信

3.5性能

HTTP

因为没有加密和解密的过程,所以性能相对较高,响应速度较快

HTTPS

因为需要进行加密和解密操作,以及SSL/TLS握手,所以消耗一定性能和时间,导致访问速度相对较慢;不过,随着现代科技的飞速发展,性能差异在大多情况下并不明显

3.6兼容性

HTTP

兼容性较好,几乎所以的浏览器和设备都支持HTTP协议

HTTPS

虽然现在大多数浏览器和设备都支持HTTPS,但是一些旧设备和特殊环境,可能会存在兼容性的问题

3.7成本

HTTP

运行成本较低,不需要购买和维护数字证书

HTTPS

需要购买数字证书,证书的价格因证书类型和颁发机构而异

四、HTTP/HTTPS状态码

4.1信息性状态码

状态码功能
100客户端继续提交剩余请求
101协议切换请求已受理

4.2成功状态码

状态码功能
200请求成功
201上传文件成功
202接受请求但未处理完毕
203请求成功,但信息不一定准确
204请求成功,但无返回内容
205请求成功,但要求重置请求内容
206范围请求成功

4.3重定向状态码

状态码功能
301资源永久迁移,需更新访问地址
302资源临时转移,后续仍可用原地址
304资源未变更,可直接使用缓存

4.4客户端错误状态码

状态码功能
400请求格式错误
401身份认证失败
403权限不足禁止访问
404资源不存在

4.5服务器错误状态码

状态码功能
500服务器内部错误
502上游服务器响应异常
503服务器临时不可用

相关文章:

  • 2025华东杯ABC题赛题已出速拿
  • LabelVision - yolo可视化标注工具
  • 【mysql】执行过程,背诵版
  • Linux-04-用户管理命令
  • JAVA:使用 iTextPDF 处理 PDF 的技术详解
  • 树的序列化 - 学习笔记
  • 【自然语言处理与大模型】如何获取特定领域的微调数据集?
  • iview 如何设置sider宽度
  • 论文阅读:2024 ACM SIGSAC Membership inference attacks against in-context learning
  • 多模态大语言模型arxiv论文略读(五十一)
  • 自主采集高质量三维重建数据集指南:面向3DGS与NeRF的图像与视频拍摄技巧【2025最新版!!】
  • 活动回顾 | 「招商大脑 · 运营引擎」解码大数据招商与智慧园区运营新模式
  • Qt -DFS可视化
  • 91.首次使用Maui的体验与建议 C#例子 Maui例子
  • 系统思考:局部最优与全局失衡
  • windows远程服务器数据库的搭建和远程访问(Mysql忘记密码通过Navicat连接记录解密密码)
  • 量化交易之数学与统计学基础2.3——线性代数与矩阵运算 | 线性方程组
  • 加速LLM大模型推理,KV缓存技术详解与PyTorch实现
  • 车辆检测新突破:VFM-Det 如何用大模型提升识别精度
  • Spring 框架中的常见注解讲解
  • 对谈|《对工作说不》,究竟是要对什么说不?
  • 贵州锦屏县委原书记舒健已任黔东南州政府办主任
  • 中国金茂向滨江集团提供11.21亿元诚意金借款,拟合作开发3月获取的地块
  • 宁波市纪委监委通报4起违反中央八项规定精神典型问题
  • 习近平就伊朗发生严重爆炸事件向伊朗总统佩泽希齐扬致慰问电
  • “杭州六小龙”的招聘迷局