Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ajax] 16.一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么? #77

Open
qiilee opened this issue Sep 29, 2019 · 1 comment
Labels

Comments

@qiilee
Copy link
Member

qiilee commented Sep 29, 2019

答案:

1.浏览器地址栏输入 url

2.浏览器会先查看浏览器缓存--系统缓存--路由缓存,如有存在缓存,就直接显示。如果没有,接着第三步

3.域名解析(DNS)获取相应的 ip

4.浏览器向服务器发起 tcp 连接,与浏览器建立 tcp 三次握手

5.握手成功,浏览器向服务器发送 http 请求,请求数据包

6.服务器请求数据,将数据返回到浏览器

7.浏览器接收响应,读取页面内容,解析 html 源码,生成 DOm 树

8.解析 css 样式.浏览器渲染,js 交互绑定多个域名,数量不限;

@qiilee qiilee added the Ajax label Sep 29, 2019
@qiilee
Copy link
Member Author

qiilee commented Aug 12, 2021

1 浏览器查询DNS,获取域名对应的ip地址,具体包括浏览器搜索自身DNS缓存,搜索操作系统DNS缓存,读取本地host文件,向本地DNS服务器进行查询。

2 浏览器获得域名对应的ip地址以后,浏览器向服务器请求建立连接,发起三次握手。

3 TCP/IP连接建立后,浏览器想服务器发送HTTP请求。

4 服务器接收到这个请求,并根据路径参数映射到特定的请求处理器进行处理,并将处理结果及相应的视图返回给浏览器。

5 浏览器解析并渲染视图,若遇到对js文件,css文件及图片等静态资源的引用,则重复上述步骤并向服务器请求这些资源。

6 浏览器根据其请求到的资源和数据渲染问好,最终向用户呈现一个完整的页面。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant