正常人已经习惯于每天输入URL就能展示网页,仿佛天经地义,但是作为一个程序员必须清楚其中复杂的变化,在我看来这个过程可以分成五部
1.输入URL
基本URL包含协议、域名、路径和文件名,例如本人主页URL http://www.jianshu.com/u/a3af03b28b9e
其中‘http’是协议,'jianshu.com'是域名等等
国内一般选择baidu或者BING,国外选贼Google居多
2.解析URL
如果我们使用的不是直接的IP地址而是URL的话,就需要查找DNS来找出IP地址。从浏览器缓存查找,系统缓存查找(host文件),路由器缓存,到ISP(运营商)缓存,最后到根域名查找IP
3.服务器处理
由于可能一个服务器上会有多个域名的存在,我们设置了一个负责负载均衡的机器,让它对不同的请求进行分类和识别,加强安全性的同时还提高了效率。
最终,服务器接收到了经过归类的要求并且做出了回应
4.浏览器处理
html的字符串会被一字一字的解析,例如link会被重新发请求以获取css。script发送请求获取js并执行,img发送请求获取图片资源等等
5.生成页面
最终各种数据经过浏览器渲染成型成可视图,不再是抽象的数据