浏览器输入BAIDU.com|浏览器输入BAIDU.com 回车后
用户打开浏览器,输入buidu.com页面展示百度首页。整个过程发生了什么?
大体过程:一、输入baidu.com 回车 二、 域名解析
1.输入baidu.com enter
2.DNS域名解析
3.浏览器与服务器建立连接
4.web浏览器发送HTTP请求
5.web服务器处理请求并返回HTTP响应
6.浏览器接受HTTP响应
7.浏览器渲染页面
域名系统DNS互联网的一项服务,它作为将域名和IP地址互相映射的一个分布式数据库三、浏览器与服务器建立连接
能够使人更方便的访问互联网 ---- 维基百科
浏览器首先安装包一下顺序检查缓存中的DNS记录,如果存在即返回对应的IP
1.浏览器缓存
2.系统文件缓存(host文件)
(hosts文件作用是定义IP地址和主机名的映射关系,是一个映射IP地址和主机名的规定。可以用文本文件打开!当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,浏览器会立即打开对应网页,如果没有找到,则浏览器会将网址提交DNS服务器进行IP地址解析。这也是提高快速打开网页的方法!)
3.路由器缓存
4.ISP缓存(宽带运营商)
如果请求的URL不在以上缓存中,本地域名服务器会向根域名服务器发送一个请求。如果不存在,转发给下一级,顺序如下:
1.根域名服务器
2.COM顶级域名服务器
3.baidu.com域名服务器
浏览器收到正确的IP地址,它将与服务器建立TCP连接,使用称为TCP/IP三次握手的过程建立此链接以进行数据传输四、浏览器发送HTTP请求
建立TCP连接后,就可以开始传输数据了,浏览器将发送HTTP请求五、服务器处理HTTP请求
web服务器接收HTTP请求,由控制层处理逻辑,从数据库取得模型,将视图层组装到页面,返回HTTP响应六、服务器返回HTTP响应
http响应 返回状态码七、浏览器渲染页面
【浏览器输入BAIDU.com|浏览器输入BAIDU.com 回车后】浏览器自上而下解析HTML 字符串,碰到linl,src,img等外部资源时发起请求加载静态资源并缓存。但是碰到一般的JS 会挂起渲染过程等待下载并执行完毕。浏览器根据HTML和CSS计算得到模型树,绘制到屏幕上
推荐阅读
- Node.js中readline模块实现终端输入
- 操作系统|[译]从内部了解现代浏览器(1)
- 分享!如何分分钟实现微信扫二维码调用外部浏览器打开指定页面的功能
- 大语文4
- http请求与响应
- 带你了解NodeJS事件循环
- 用输出倒逼输入,加油!
- 解决在微信下载app需要点击右上角在浏览器中打开下载的问题
- 剑指offer——最小的K个数
- window.navigator.userAgent用来区分设备和浏览器