美文网首页
【面试题】http相关

【面试题】http相关

作者: 南慕瑶 | 来源:发表于2018-05-15 11:00 被阅读0次

    1.从输入url到页面展示发生了什么?(个人简化版答案)

    【No1】输入地址

    我们输入的过程中,浏览器会智能的匹配可能的url(从历史记录、书签等地方),给出智能提示。

    chrome甚至会直接从缓存中把网页展示出来。

    【No2】浏览器查找域名的ip地址

    (1)查找本地hosts文件。

    (2)如果hosts没有相应配置。浏览器发送DNS请求,到本地DNS服务器。本地DNS服务器查找自己的缓存。

    (3)如果本地DNS服务器没有缓存。本地DNS服务器会向DNS根服务器进行查询。

    (4)DNS根服务器没有记录域名和ip的对应关系。它会告诉本地DNS服务器,可以到域服务器上去查询,并给出域服务器地址。

    (5)本地DNS服务器向域服务器发送请求。(.com就是一个域服务器)域服务器接到请求后,会告诉本地DNS服务器,你的域名的解析服务器地址。

    (6)本地DNS服务器向域名的解析服务器发送请求,这时,可以收到一个域名和ip的对应关系。本地DNS服务器把这个对应关系保存在本地缓存中,并把ip地址返回给用户电脑。

    总体查询流程:

    本地hosts —> 本地DNS服务器 —> 根DNS服务器 —> 域DNS服务器 —> 域名的解析服务器

    【No3】浏览器向web服务器发送一个HTTP请求

    浏览器以一个随机端口向服务器的WEB程序80端口发起TCP连接请求。

    经过三次握手,建立起TCP连接。

    http请求发送。

    【No4】服务器的永久重定向响应

    服务器给浏览器响应一个301永久重定向响应。

    如,输入jd.com时,会返回http://www.jd.com/

    【No5】浏览器跟踪重定向地址

    浏览器向重定向的地址再发送一个http请求。

    【No6】服务器处理请求

    这里,一些大一点的网站会在浏览器和服务器之间加一层反向代理,即Nginx。

    作用:

    当访问量大的时候,将用户请求分配到不同的应用服务器上处理。这里,同一个应用会事先部署到多台服务器上。

    此时,客户端的请求会发送到Nginx,Nginx再请求应用服务器,然后将结果返回给客户端。

    【No7】服务器返回一个HTTP响应

    【No8】浏览器进行页面渲染

    浏览器在接收全部HTML文档前就开始进行显示。

    DOM Tree + style rules ——> render tree

    render tree(渲染树)构建完成后,浏览器进行布局、绘制,最后合成。

    (1)html加载过程中遇到js文件,会挂起渲染(加载解析渲染同步)的线程。这里,要等到js文件加载、解析、执行完毕,才可以恢复html文档的渲染线程。

    (2)html加载过程中,遇到需要获取的外部资源,会再次向服务器发起请求。如:图片、css、js文件等。

    #待续......

    相关文章

      网友评论

          本文标题:【面试题】http相关

          本文链接:https://www.haomeiwen.com/subject/vhphdftx.html