用户访问网站流程及整体框架图

版权声明:原创作品,谢绝转载!否则将追究法律责任。 ————— 作者:kirin
( 一 )
01.当浏览器输入域名之后,回车,浏览器就会查找本地的缓存,如果没有就会查找hosts文件,是否有解析。
有的话直接返回。在访问网站的时候,网站所认识的就是ip地址。
如果没有,就会查找本地的localDNS服务器。
如果有就直接返回;如果没有localDNS服务器就会从13台根域名服务器当中的某一台来查找,逐级的进行查找,顶级域、二级域。。。
最终会找到域名授权的DNS服务器,将查找的结果,localDNS服务器会缓存一份,还会将结果发送给客户端一份。localDNS服务器缓存一份是因为下一次查找的时候能够快速的返回给客户端。
( 二 )
02.客户端收到解析记录之后,就会去请求网站,如果是静态信息,CDN缓存就会处理请求,如果是动态的信息请求,就会访问到网站内部。
( 三 )
03.通过防火墙的规则,进入到网站内部。比如打开80端口 443端口还有一些其他授权的网段。
( 四 )
04.请求进入到内部,访问的是网站的VIP。高可用,能够给用户很好的体验感,不会出现宕机的状态。
请求通过负载均衡将动态请求发送到了后端的web服务,同是还伴随着头部信息,能够查找到后端所对应的哪一个server。每一个server代表一个虚拟主机。
( 五 )
05.在负载均衡的时候,就通过location的规则,将动态请求发送给动态服务器。
动态服务器将请求转给php。php-fpm 进程会通过fastcgi协议,解释器来连接后端的数据库服务器。
( 六 )
06.数据库将相应的结果返回,通过php,通过web服务器,返回给负载均衡,之后返回给客户端。
( 七 )
07.客户端请求断开的话就是四次挥手的过程:
客户端发送断开的请求,服务器接收到之后,会响应告诉客户端可以断开连接,之后,数据传输完成之后,服务端也会发出断开连接的请求,客户端确认断开。
( 八 )
08.三次握手过程:
1、第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。
2、第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。
3、第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。
( 九 )
09.四次挥手过程:
1、第一次挥手:客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。
2、第二次挥手:服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
3、第三次挥手:服务器B关闭与客户端A的连接,发送一个FIN给客户端A。
4、第四次挥手:客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。
本文来自博客园,作者:kirin(麒麟),转载请注明原文链接:https://www.cnblogs.com/kirin365/articles/16137210.html


浙公网安备 33010602011771号