大家都知道平时我们在做开发时,为了测试接口会测试你的url,再观察返回数据验证你写的代码是否有bug。
那么问题来了,你知道当你输入一个url到浏览器栏中,到最后呈现页面到你眼帘,这个过程发生了什么,以及浏览器本身做了什么??
下面就让我们一起探索这个奇妙的过程。
从浏览器输入一个url的全过程,大致是:
1.解析DNS域名找到ip地址。
2.根据ip建立TCP连接(三次握手)。
3.连接建立成功相应http请求。
4.服务器响应http请求。
5.浏览器解析HTML代码请求静态资源。
6.关闭tcp连接。
7.渲染页面。
那么从浏览器角度来看呢,HTTP的请求过程是怎么样的?
1.1浏览器缓存(首先搜索浏览器自身的DNS缓存)
1.2系统缓存:浏览器会搜索操作系统自身的DNS缓存。
1.3路由器缓存:如果系统缓存也没有找到,则会向路由器 发送 查询请求。
2.浏览器与WEB服务器建立一个TCP连接(三次握手)。
3.建立TCP连接后发起http请求。
4.服务器端响应http请求,浏览器得到html代码。
最后提下为什么TCP连接要三次握手?
两次握手只能保证单向连接是畅通的,只有经过第三次握手才能确保双向都可以接收到对方的发送的 数据。