LNMP
-
L代表linux操作系统
-
N代表nginx
nginx可以作为反向代理服务器、WEB服务器等 -
M代表数据库Mysql
-
P代表脚本语言PHP
一个HTTP request请求从浏览器发出到渲染出页面的过程
1. 浏览器中输入网页地址,在浏览器缓存中查找,找不到进入下一步
2. 通过域名查找对应的服务器IP
- 在本地vhosts文件中查找
- 在本地DNS服务器中查找
- 本地DNS服务器向根DNS服务器发送请求,根DNS服务器会返回一个域服务器(.com服务器)地址
- 本地DNS服务器向域服务器发送请求,域服务器返回一个域名解析服务器地址
- 本地DNS服务器向域名解析服务器发送请求,获得服务器ip地址
- 本地DNS服务器缓存查询结果,并告知浏览器
3. 三次握手,浏览器与服务器建立TCP连接
注意:三次握手的目的是确保通讯双发的发送、接收消息的功能都正常
4. 发送HTTP请求到达服务器,nginx作为反向代理服务器会将请求分发给web服务器
5. nginx作为web服务器处理请求,如果是静态请求js、css、图片等,直接将静态资源返回给客户端;如果是动态请求.php,通过fast-cgi转交给php-fpm,php-fpm调用cgi脚本解释器解析脚本,得到的结果再经由fast-cgi返回给nginx,nginx将结果返回给客户端
6. 客户端接收到response返回结果,开始解析html,以及内嵌资源。发现有远程资源,继续向服务器请求资源
7. 四次挥手断开TCP连接
四次挥手的目的:确认双发都收到断开连接的请求。
- C 发出断开连接的请求
- S ack 这个断开请求,确保自己的数据传输完毕,再发送断开连接的请求,
- C 收到断开请求进入TIME-WAIT状态,发送ack,等待2MSL后没有再收到S的请求则完全断开连接
- S 收到C的ack后关闭连接