我们在进入一个网站时究竟发生了什么?这可能会有很多答案,但这也包含了很多的技术,不只是单纯的html,js,css,还有计算机网络,服务器技术等等,本文会逐步进行说明。
一、在浏览器中输入网址
如我们进入www.baidu.com
在我们进入百度的时候Developer Tools中的net work就会发现我们浏览器中的行进步骤如下图
那么这些步骤都有什么具体意义呢
首先是第一步,我们输入了一个url www.baidu.com浏览器根据你的访问域名找到其IP地址,我们默认这是第一次浏览,先不提缓存,这时ISP的DNS服务器从跟域名服务器开始进行递归搜索,我们就可以向服务器得到一个具体的文件或者一个重定向,
这时首先说一下Status这一列,我们可以看到除了第一行的307剩下的都是200,其中200就是ok,3XX的意思就是服务器再返回一个地址,你的浏览器会立即自动访问这个地址,很多大型网站可能不止一个域名,比如.cn .com.net这时他们都会重定向一个具体的地址,就像上图我们被重定向到下面的地址,然后我们就访问下面的地址了
在下面的地址中我们可以得到我们想要的大部分信息,浏览器会给web服务器一个http请求,服务器也会返回浏览器一个永久定向的响应,之后服务器得到了这个地址之后访问这个地址,这样服务器和浏览器就彻底建立齐了相应的链接。
大部分服务器处理了连接的请求后会处理这个响应并发回一个Html响应,这就是浏览器的得到的第一个200。接下来浏览器会逐行解析这个html文件,如果我们查询网页源代码的话
会发现有许多具体的链接,这些链接就是我们接下来要获取的资源也就是第一个200下面的那些200。
这些地址都会像html经历了读取,浏览器查找这些域名,然后进行发送请求等操作。
当浏览器把HTML文件读完的时候,我们就可以得到这个页面的全部资源加载页面了。
至于缓存,有机会我会在下文中说明。