qidao123.com技术社区-IT企服评测·应用市场

标题: Linux架构篇、第1章_01架构的先容HTTP HTTPS 协议全面解析 [打印本页]

作者: 罪恶克星    时间: 2025-5-6 22:36
标题: 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服务器临时不可用
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/) Powered by Discuz! X3.4