HTTP解析/版本变化/TSL

ARP协议/Address Resolution Protocal地址解析协议:通过IP地址找到MAC地址

查看自己电脑的IP与MAC地址

整体过程

IP协议/Internet Protocol: 网络层用来"标识一台主机在网络中位置"的逻辑编号

IPv4:4段,32位,占用四字节

IPv6:8段,128位,占用2*8=16字节,解决IPv4数量紧缺问题

IP与MAC的关系

IP 用来找网络,MAC 用来找设备

HTTP超文本传输协议

状态码:

1XX:提示消息,目前是协议处理的中间状态,还有后续的操作

2XX:服务器成功处理了客户端请求

3XX:重定向,资源位置有变动,需要客户端重新发送新的请求

4XX:客户端错误,请求错误服务器无法处理

5XX:服务器错误,服务器在处理请求时内部发生错误

HTTP常见字段

|--------------------------|------------------------|-----------------------------------------------------------------------------------------------------------|-------------------------------------|
| 类别 | 作用 | 常用字段 / 示例 | 说明 |
| 请求行(Request Line) | 告诉服务器要做什么 | 方法:GET、POST、PUT、DELETE、PATCH...URL:请求的资源路径HTTP版本:HTTP/1.0、1.1、2 | 描述请求类型、目标资源及协议版本 |
| 请求头(Request Headers) | 携带附加信息(客户端信息、授权、内容类型等) | Host:服务器域名Accept:可接受响应数据类型Content-Type:请求体数据类型Content-Length:请求体长度Connection:长连接机制Content-Encoding:数据压缩方法 | 用于传递客户端信息、身份验证、内容描述等 |
| 请求体(Request Body,可选) | 发送数据给服务器 | - | 常用于POST、PUT、PATCH请求中,传输表单数据、JSON等内容 |

Get/Post:

|----------|------------------------------|---------------------|
| 特性 | GET 请求 | POST 请求 |
| 作用 | 获取资源 | 提交数据 |
| 参数位置 | URL | 请求体(Body) |
| 请求体 | 通常为空 | 可以包含数据(表单、JSON、文件等) |
| 长度 | Http协议本身不会对URL做限制,但浏览器会限制数据量 | 大,几乎无限(受服务器限制) |
| 安全性 | 不安全,敏感数据暴露在 URL | 相对安全,不暴露在 URL |
| 是否缓存 | 可以被缓存 | 不缓存 |

HTTP缓存

有两种实现方式

强制缓存,协商缓存。不过协商缓存时间里在强制缓存上的,也就是说只有强制缓存过期的时候,才会触发协商缓存。

强制缓存

只要浏览器判断数据没有过期,就只直接使用浏览器缓存的数据。

具体实现headers字段:

Cache-Control相对时间/Expires绝对时间,前者优先级大于后者。

协商缓存

通过与服务器协商,判断是否使用本地浏览器缓存。

Last-Modified/If-Modified_Since
  1. 客户端会将上一次服务器响应中的 Last-Modified 作为 If-Modified-Since 放入请求头中发送给服务器。
  2. 服务器收到请求后,会将 If-Modified-Since资源当前的最后修改时间进行比较:
  • 如果资源在该时间之后发生过修改 ,则返回 200 OK 和最新资源;
  • 如果资源在该时间之后未发生修改 ,则返回 304 Not Modified,浏览器直接使用本地缓存。
Etag/If-None-Match
  1. 客户端在首次请求资源时,会缓存服务器返回的资源数据以及 ETag
  2. 当资源再次被请求且强缓存失效时,客户端会在请求头中携带 If-None-Match,其值为上一次响应中的 ETag
  3. 服务器收到请求后,会将 If-None-Match 的值与当前资源的 ETag 进行比较:
  • 若两者一致,说明资源未发生变化,返回 304 Not Modified
  • 若不一致,说明资源已发生变化,返回 200 OK 和最新资源,并更新 ETag

HTTP

|----------|------|--------------|-------------------------|-------------------------------|-------------|------------|
| HTTP 版本 | 发布时间 | 传输层协议 | 连接特性 | 核心改进 | 主要问题 | 典型关键词 |
| HTTP/1.0 | 1996 | TCP | 短连接 | 基本请求/响应模型 | 每次请求都建连,性能差 | 短连接、原始 |
| HTTP/1.1 | 1997 | TCP | 默认长连接***(Keep-Alive)*** | Host 头,多种缓存机制,分块传输,解决请求对头阻塞 | 队头阻塞、连接数受限 | 长连接、缓存 |
| HTTP/2.0 | 2015 | TCP | 单连接多路复用 | 二进制协议、Header 压缩[HPack]、多路复用 | TCP 层队头阻塞 | 多路复用、HPACK |
| HTTP/3.0 | 2022 | QUIC(基于 UDP) | 多路复用 | 解决队头阻塞、0-RTT、连接迁移 | 实现复杂、部署成本高 | QUIC、UDP |

长连接:

管道化技术:

解决了队头阻塞问题,也就是说之前我们在建立长连接后,只能一个一个发送请求,也就是只有服务端应答后,客户端才能发送下一个请求。虽然引入了管道化技术,但是服务端的数据读取还必须是顺序响应,也就是只能请求1处理完之后,请求2才能处理

SSL/TSL

介绍

|--------------------------------|-------------------------------------------|
| 名称 | 含义 |
| SSL (Secure Sockets Layer) | 由 Netscape 早期设计的安全套接层协议,现在已经不安全,已被弃用 |
| TLS (Transport Layer Security) | SSL 的升级版,更安全,现代网络通信用 TLS 1.2 / 1.3 替代 SSL |

主要功能

|---------------------|----------------------------|
| 风险 | TLS/SSL 如何解决 |
| 窃听(Confidentiality) | 非对称加密 + 对称加密(混合加密)保证传输内容加密 |
| 篡改(Integrity) | 摘要算法 + MAC / AEAD,保证数据完整性 |
| 冒充(Authentication) | 数字证书 + CA 验证,保证服务器身份真实 |

相关推荐
LaoZhangGong123几秒前
学习TCP/IP的第9步:客户端和服务端综合测试
网络·学习·tcp/ip
aesthetician2 小时前
WebSocket: 实时通信的脉动:深度解析与 TypeScript 实践
websocket·网络协议·typescript
云小逸3 小时前
【网络通信】TCP核心原理深度解析:三次握手/四次挥手为基,拥塞控制与慢启动核心精讲
网络·网络协议·tcp/ip
深蓝电商API3 小时前
httpx 异步客户端处理 WebSocket 数据
websocket·网络协议·httpx
苏渡苇3 小时前
用 Spring Boot 项目给工厂装“遥控器”:一行 API 控制现场设备!
java·人工智能·spring boot·后端·网络协议·边缘计算
北京耐用通信4 小时前
电子制造行业:耐达讯自动化Profinet转DeviceNet网关助力工业相机高效互联
人工智能·数码相机·物联网·网络协议·自动化·信息与通信
2601_949146534 小时前
APP语音通知接口集成实战:移动端应用接入语音提醒API的开发手册
macos·objective-c·cocoa
希赛网4 小时前
华为认证数通备考,以太网交换机的基础原理与应用
网络协议·华为认证·数通·希赛·交换路由·交换机基础与应用·以太网交换
小李独爱秋4 小时前
计算机网络经典问题透视:无线局域网名词中DCF和PCF的含义是什么?
网络协议·计算机网络·网络安全·信息与通信·dcf·pcf
酣大智4 小时前
FTP--文件传输协议
运维·网络·网络协议·tcp/ip·华为