-
浏览器检验URL, 判断协议, 解析域名
- dns 域名解析 : 浏览器缓存 - 本地host文件 - 本地dns 缓存 - 运营商dns 缓存 - 根域名服务器 - 顶级域名服务器 - 二级域名服务器 - ip返回到浏览器 (512字节) - 使用ip地址发起请求
-
建立 tcp 连接
- 三次握手 syc(发起同步) -> ack + syc (响应上一个请求,再发一个同步) -> ack + syc(响应上一个请求,确认同步)
-
建立http 连接
-
http 协议
按请求格式解析请求内容
http版本
请求方法
请求参数
请求头
-
https 协议 ( http +ssl )
-
ssl 协议
证书加密 : 非对称加密
数据加密 : 对称加密
-
-
请求到达反向代理服务器, 根据配置的负载算法进行分配, 请求转发到对应的服务器
服务器的php-fpm中, master进程负责监听请求, 空闲的worker竞争accpt请求获得本次请求处理; 如果没有空闲的worker, 根据fpm的配置回收空闲的子进程, 或者创建新的子进程
worker连接到php程序, 接收并解析请求参数
php接收到请求, 假设使用了mvc框架, 会进行路由解析
(待补充)
找到对应的控制器, 方法
因为php是解释型语言, 系统会读取对应的php脚本到缓冲区
Zend引擎对脚本进行语法分析, 输出Opcode(操作码), 如果开启了opcache对操作码进行缓存
执行操作码, worker得到执行结果, 关闭请求; worker又回到空闲状态, 等待下一次请求
master负责监听请求, 使用共享内存读取worker状态, 监听到worker完成请求
master将结果转发给反向代理服务器
反向代理服务器返回数据到用户主机
浏览器根据文件头决定行为, 下载文件, 渲染 还是解析脚本
-
样式相关
浏览器解析html 会生成DOM树, 请求资源文件
css 解析样式表,生成CSS规则树
将 CSS Rule Tree 附着到DOM Tree 上
-
发生渲染
发生reflow : 布局
repaint (重排和重绘) : 外观被改变
js 脚本 : 和dom 同步解析
worker处理请求的细节: https://blog.csdn.net/ST091ZSC/article/details/102150576
补充: 使用 dig +traceroute命令查看dns解析的过程
www.taobao.com
. 等价于www.taobao.com
, 省略了最高级域名www.taobao.com.
指向别名www.taobao.com.danuoyi.tbcache.com.
www.taobao.com.danuoyi.tbcache.com.
解析得到两个ip : 47.246.16.234 和 47.246.16.233 , 默认使用第一个cname 指的是别名记录, 使用cname可以解耦ip和访问域名的联系, 且支持了多域名访问同一ip地址
A记录, 指的是域名和ip之间的映射
NS记录, 指的是域名对应的dns解析器的映射
AAAA记录会将域名指向ipv6的ip地址
➜ ~ dig www.taobao.com
; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> www.taobao.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 760
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.taobao.com. IN A
;; ANSWER SECTION:
www.taobao.com. 75 IN CNAME www.taobao.com.danuoyi.tbcache.com.
www.taobao.com.danuoyi.tbcache.com. 60 IN A 47.246.16.234
www.taobao.com.danuoyi.tbcache.com. 60 IN A 47.246.16.233
;; Query time: 1 msec
;; SERVER: 183.60.82.98#53(183.60.82.98)
;; WHEN: Mon Dec 06 14:42:13 CST 2021
;; MSG SIZE rcvd: 109
接着trace路径
D:\>tracert -h 100 -4 www.taobao.com
Tracing route to www.taobao.com.danuoyi.tbcache.com [14.215.57.233] # 解析转移到www.taobao.com.danuoyi.tbcache.com这个别名,说明www.taobao.com.danuoyi.tbcache.com还存在其他ip
over a maximum of 100 hops:
1 * * * Request timed out.
2 2 ms 1 ms 1 ms 172.17.1.137
3 2 ms 1 ms 1 ms 10.0.16.1
4 1 ms 1 ms 1 ms 172.17.140.109
5 2 ms 1 ms 1 ms 172.17.140.210
6 1 ms <1 ms <1 ms 172.17.1.1
7 1 ms 1 ms 1 ms 10.10.10.1
8 1 ms * * 172.16.1.2
9 4 ms 3 ms 3 ms 172.16.1.244
10 2 ms 4 ms 2 ms 172.16.3.1
11 * 5 ms 4 ms 172.16.3.12
12 3 ms 2 ms 2 ms 172.16.1.253
13 * * * Request timed out.
14 5 ms 5 ms 5 ms 202.104.167.225
15 8 ms * 11 ms 125.176.37.59.broad.dg.gd.dynamic.163data.com.cn [59.37.176.125]
16 6 ms 5 ms 5 ms 113.98.6.57
17 33 ms 8 ms 8 ms 113.108.208.26
18 10 ms 10 ms 9 ms 94.96.135.219.broad.fs.gd.dynamic.163data.com.cn [219.135.96.94]
19 11 ms 11 ms 11 ms 14.215.32.178
20 7 ms 8 ms 7 ms 14.215.57.233