面试第一天,面试官问我,浏览器输入url后怎么进行请求的,我一想,诶,回车不就向后台发送请求就行了吗,卒.
当按下回车后发生了以下步骤:
1.ip地址解析寻址
2.建立tcp连接(三次握手)
3.发送一个http请求
4.服务器处理并返回响应请求
5.关闭tcp连接(四次挥手)
6.浏览器解析HTML文件并进行渲染布局
1.ip地址的解析寻址
我们一般在浏览器输入的是域名,首先会对浏览器缓存进行查找有没有这个域名对应的ip地址,如果有就会直接执行步骤2(如果你直接输入ip地址也是一样).
然后将进行hosts文件里面查找有没有这个ip地址(hosts文件作用为屏蔽设定网址)
当posts文件没有设定当前访问ip,前往路由缓存查找.
路由缓存找不到,将前往DNS服务器查找,如果找不到将前往更高一级DNS服务器查找.(DNS服务器全称DNS域名解析器,一般我们在浏览器地址栏输入的是域名不是直接的ip地址,如查找百度,我们会输入域名www.baidu.com,而不是ip地址110.242.68.4,而域名是不能直接访问的,这时候就需要用到DNS域名解析器对其进行解析得到ip地址,再对ip地址进行访问)
2.建立TCP连接(三次握手)
当得到ip地址后进行连接请求,客户端会向服务端发送一个SYN包,服务端得到SYN包后会返回SYN加ACK包,客户端收到SYN加ACK包后向服务端返回一个ACK包,至此,传