浏览器输入url后发生了什么?
1、解析URL
得到里面的参数,将域名和请求的资源分离,从而了解请求的是哪个服务器,请求服务器的什么资源等等。
2、浏览器封装HTTP请求报文
对URL进行解析后,浏览器确定了服务器和资源位置后,准备将这些信息封装成HTTP报文发送出去。
3、域名解析获得IP地址
先从本地浏览器缓存、操作系统缓存查找,再到hosts文件查找,再到*域名服务器查找,操作系统将找到的ip地址缓存起来,并返回给浏览器
4、三次握手建立TCP连接
三次握手简单地说就是确认客户端和服务端的发送、接收都正常。
- 客户端-------->服务端(此时服务端知道客户端发送正常,自己接收正常)
- 客户端<--------服务端(此时客户端知道自己接收正常,服务端发送正常,并不知道客户端是否接收正常)
- 客户端-------->服务端(此时服务端知道客户端接收正常,于是建立连接)
5、浏览器发送HTTP请求
建立连接后,浏览器与服务器之间就建立了一个虚拟通道,浏览器就可以发送HTTP请求了。
6、通过IP协议传输数据
浏览器发送请求(get\post),服务器返回html和css等静态资源
7、处理数据
浏览器接收到html,渲染,显示页面。
8、关闭连接
四次挥手
-
客户端--------->服务器(客户端发送断开请求)
-
客户端<---------服务器(服务器回应已收到断开请求)
<---------------------------(如果服务器不想断开连接,还有数据传输,则继续传输)
-
客户端<---------服务器(服务器也发出断开请求)
-
客户端--------->服务器(客户端收到断开请求后回复服务器,断开连接)