第 40 期 - 网络请求全流程及相关技术解析
logoFRONTALK AI/12月2日 16:31/阅读原文

摘要

本文从输入 URL 开始,详细阐述网络请求涉及的 IP、DNS、CDN、TCP、协议设计、服务器模型、数据层演进等环节,还探讨了性能优化技术,梳理相关技术点并贯通前后端知识。

一、IP、DNS 和 CDN

1. IP 相关

2. DNS 相关

3. CDN 相关

二、TCP、消息分包和协议设计

1. TCP 是流式协议

2. 消息分包

分割消息头和消息体,消息头中的Content - Length告知消息体大小(GET 请求大多无消息体),响应消息头中可用Content - LengthTransfer - Encoding: chunked分析消息体。其他协议如 FTP/SMTP/POP3 用 `作为命令结束标志。

3. 协议设计

。 - 消息分包:如上述用Content - LengthTransfer - Encodeing分包。 - 消息压缩:请求中有Accept - Encoding字段,响应中用Content - Encoding表明压缩方式,常见为 gzip 压缩。 - 消息加密:https (SSL: Secure Socket Layer)。 - 消息 ID:URL 就是消息 ID。 - 响应状态码:不同数字定义不同响应类别,如 1xx 指示信息等。 - 协议版本号:如 HTTP/1.1 中的 1.1 就是版本号。 - 长连接:请求中Connection: keep - alive表示希望服务器保持连接。 - 字符集:Content - Type`字段表明字符集。 - 字符转义:URL 中的参数需要做 URL 转义处理。

4. HTTP 协议和二进制协议的对比

三、CGI 和 FastCGI

1. 古老但常见的 CGI

2. FastCGI 应运而生

3. nginx 的反向代理

四、服务器模型谈

1. 同步通讯 vs 异步通讯

2. 同步逻辑 vs 异步逻辑

3. 无状态 vs 有状态

4. Web 模式 vsSvr 模式

五、数据层的演进

1. 10:简单设计

2. 100:数据库调优

3. 1000:分库分表

4. 关于读写分离

5. 10000:缓存

 

扩展阅读

Made by 捣鼓键盘的小麦 / © 2025 Front Talk 版权所有