1.輸入網址 www.php.netphp
http 默認訪問的是80端口
https 默認訪問的是443端口css
2.DNShtml
1.在瀏覽器的緩存裏查找
2.若是沒有,就去查看hosts文件是否有對應的ip
3.若是hosts文件沒有,就去查詢本地DNS服務器html5
3.socketmysql
找到域名對應的ip地址,開始三次握手,創建鏈接nginx
4.瀏覽器發送請求web
GET / HTTP/1.1
Host: php.net
[其餘頭部]sql
5.web服務器監聽 端口(80或者其餘)數據庫
1.web服務器根據瀏覽器發送的Request Header 看出緩存時間還沒到 返回, 304 NOT Modified
2. 請求php-pfm,成功返回 200 okapache
6.CGI
cgi : common gateway interface 公共網關接口 ,是一個web server(nginx,apache)與腳本語言的一個通訊標準 ,是一個協議
fastcgi : 是cgi的升級版本,也是一個協議
php-cgi: 實現cgi的php腳本解析器,是一個程序
php-fpm: 是一個fastcig的進程管理器,是一個程序
7.php-fpm啓動進程將請求的query,header,url,數據傳遞給php腳本,php腳本處理
8.若是須要數據,在請求mysql數據庫,再把結果返回給php腳本
9.fastcig進程將標準輸出和一些錯誤信息返回給web服務器
10.web服務器返回給瀏覽器,關閉socket鏈接
11.瀏覽器加載html->解析dom,css,js->渲染dom->繪製dom(繪製在瀏覽器上)
css ,解析css,產生規則樹
js ,腳本解析
https://www.html5rocks.com/zh/tutorials/internals/howbrowserswork/
12.用戶看到了瀏覽器繪製的結果。