首先在浏览器输入一个网址
浏览器通过DNS去查找对应的IP地址
DNS的查找过程如下:
a. 浏览器先查找缓存的DNS记录有没有,没有就做一个系统调用,获取系统缓存的记录;
b. 接着会去路由器的缓存DNS里面找;
c. 如果没有记录就会到ISP的DNS缓存中查看记录;(ISP缓存,本身是一种宽带接入提供商给网页批量访问加速的技术。ISP会将当前访问量较大的网页内容放到ISP服务器的缓存中,当有新的用户请求相同内容时,可以直接从缓存中发送相关信息,不必每次都去访问真正的网站,从而加快了不同用户对相同内容的访问速度,同时也能节省网间流量结算成本。)
d. 从跟域名服务器开始进行递归搜索,从顶级域名到二级三级域名,最终得到一个IP地址-
浏览器给服务器发送HTTP请求,请求头header信息如下图:
由于输入的原因,可能服务器会发送301重定向响应,这时浏览器继续请求重定向访问的地址
为什么服务器一定要重定向而不是直接发会用户想看的网页内容呢?这个问题有好多有意思的答案。
其中一个原因跟搜索引擎排名有 关。你看,如果一个页面有两个地址,就像http://www.igoro.com/ 和http://igoro.com/,搜索引擎会认为它们是两个网站,结果造成每一个的搜索链接都减少从而降低排名。而搜索引擎知道301永久重定向是 什么意思,这样就会把访问带www的和不带www的地址归到同一个网站排名下。
还有一个是用不同的地址会造成缓存友好性变差。当一个页面有好几个名字时,它可能会在缓存里出现好几次。
服务器处理请求
服务器会查看请求的参数和cookie等,来进行一些数据的操作-
服务返回HTML响应
Response Headers说明了如何去解释响应信息
浏览器显示HTML
在浏览器没有完整接受全部HTML文档时,它就已经开始显示这个页面了;
当浏览器显示的时候发现获取其他一些内容(如图片、css样式表、js文件),浏览器会再次发送请求