查找域名对应的IP地址

包括DNS(根据域名查找IP地址)的查找过程:浏览器缓存-》系统缓存-》本地DNS服务器缓存

浏览器搜索自己的DNS缓存(维护一张域名与IP地址对应表)
搜索操作系统中的DNS缓存(维护一张域名与IP地址对应表)
搜索操作系统的hosts文件(windows环境下,维护一张域名与IP地址对应表)
操作系统将域名发送到本地区域服务器(LNDS),进行查找,成功则返回结果(递归查询),失败则发起一个迭代DNS请求(迭代查询)
本地域名服务器LDNS将得到的IP地址返回给操作系统,同时也将IP地址缓存起来
操作系统将IP地址返回给浏览器,同时将IP地址缓存起来
所以,浏览器得到了域名对应的IP地址

DNS迭代查询和递归查询

递归查询
客户端与服务器之间属于递归查询,即当客户机想DNS服务器发出请求后,若DNS服务器本身不能解析,会向另一个DNS服务器发出查询请求,最后将结果转交给客户端的过程。
服务器必须回答目标IP与域名的映射关系。


迭代查询
DNS服务器之间属于迭代查询。
服务器接收到一次迭代查询回复一次结果,这个结果不一定死目标IP与域名的映射关系,也可以是其他DNS服务器的地址。

本地域名服务器LDNS向根域名服务器(保存com.net.org等顶级域名服务器的地址)发起请求,根域名服务器返回com域的顶级域名服务器地址
本地域名服务器LDNS向com域的顶级域名服务器发起请求,返回biadu.com域名服务器的地址(主域名服务器)
本地域名服务器LDNS向baidu.com域名服务器发起请求,得到。。。的IP地址


建立连接(TCP的三次握手)

三次握手采用TCP协议,保证了信息传输的可靠性,三次握手过程中,若一方收不到确认信息,协议就会要求重新发送信号

构建网页

当服务器和主机建立连接之后,主机便于服务器进行通信。
页请求是一个单向请求的过程,即是一个主机箱服务器请求数据,服务器返回响应数据的过程。

  1. 浏览器根据URL内容生成http请求,请求中包含请求文件的位置,请求文件的方式(get,post)

  2. 服务器接到请求后,会根据http请求中的内容决定如何获取相应的html文件

  3. 服务器将得到的html文件发送给给浏览器

  4. 在浏览器还没完全接受到html文件时候就开始下载,解析,执行以便显示页面

  5. 在执行html文件中,根据需要会向服务器继续请求图片,css,js等文件,此过程跟请求html文件类似

参考:浏览器工作原理

断开连接(TCP的四次挥手)

等待2个报文传送周期的原因:
如果第四次握手的确认信息丢失,服务器将会重新发送第三次握手的断开连接的信号,而服务器发觉丢包与重新发送的断开连接到达主机的时间正好为 2 个报文传输周期。

输入url后的加载过程相关推荐

  1. 从输入 URL 到页面加载完的过程中都发生了什么事情 —— 网络优化篇

     转自从输入 URL 到页面加载完的过程中都发生了什么事情 -- 网络优化篇 想到这不就是我这两年来研究的东西么,于是就接受一下挑战.网上已经有很多版本的答案了.这道题可以从浏览器端,网络传输和服 ...

  2. 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 3

    备注: 因为文章太长,所以将它分为三部分,本文是第三部分. 第一部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1 第二部分:深入浅出经典面试题:从浏览器中输入URL ...

  3. 前端学习之浏览器从输入URL到页面加载的全过程

    浏览器从输入URL到页面加载的全过程 从输入URL到页面加载的主干流程如下: 1.浏览器的地址栏输入URL并按下回车. 2.浏览器查找当前URL的DNS缓存记录. 3.DNS解析URL对应的IP. 4 ...

  4. 从输入url到页面加载完成中间都发生了什么?

    从输入 URL 到页面加载完成的过程中都发生了什么事情? nwind | 24 May 2014 背景 本文来自于之前我发的一篇微博: 不过写这篇文章并不是为了帮大家准备面试,而是想借这道题来介绍计算 ...

  5. 从输入 URL 到页面加载完成中间都经历了什么

    摘要 目录 1.chrome浏览器资源加载时序分析 2.w3c提供的接口performance.timing分析 3.一个完整的URL 解析过程细分介绍 3.1.缓存相关 3.1.1.URL解析 3. ...

  6. 前端面试总结(2)--从输入URL到页面加载完成,都发生了什么

    目录 序言 从输入URL到页面加载完成,都发生了什么 1. 一个极其粗糙且简化的流程 2. 每个步骤都只是摘要 2.1 浏览器中输入URL 2.1.1 URL的概念 2.1.2 浏览器对URL的长度限 ...

  7. 从浏览器输入url到页面加载(六)前端必须了解的路由器和光纤小知识

    前言 上一章我们说到了数据包在网线中的故事,说到了双绞线,还说到了麻花.这一章继续沿着这条线路往下走,说一些和cdn以及路由器相关,运营商以及光纤相关的小知识,前端同学应该了解一下的 目录 前言 1. ...

  8. 输入URL后浏览器的渲染过程

    铅笔头课堂,有态度的前端培训 输入URL后浏览器的渲染过程 背景 作为前端开发,浏览器是与我们日常相伴的工具,以chrome为例,我们可以利用它调试页面的element节点.network网络.con ...

  9. 输入url到页面加载都发生了什么事情?(一道软件测试面试题)

    文章首发于公众号:软件测试er 输入url到页面加载都发生了什么事情?这是一道软件测试面试题,且相关知识其实还有多种问法: Question 1请讲一下tcp三次握手 OK等你把这个记好了,下次面试: ...

  10. layui 如何动态加载局部页面_从输入URL到页面加载的过程?如何由一道题完善自己的前端知识体系!

    前言 见解有限,如有描述不当之处,请帮忙指出,如有错误,会及时修正. 为什么要梳理这篇文章? 最近恰好被问到这方面的问题,尝试整理后发现,这道题的覆盖面可以非常广,很适合作为一道承载知识体系的题目. ...

最新文章

  1. POJ 1017 Packets 贪心 模拟
  2. mysql 连接 分组_详解MySQL中的分组查询与连接查询语句
  3. java优先队列PriorityQueue修改队列内元素排序问题
  4. sqlserver browser无法启动_SQL Server中非sysadmin权限用户在SQL Agent的权限
  5. python第三周测试_python第三周小测
  6. mysql打错了怎么办_数据库出错了怎么办?
  7. flutter中使用图标(含自制图标库方案)
  8. 判断上三角矩阵--C语言
  9. Verilog 任意分频器设计
  10. matlab命令行运行,命令行运行matlab
  11. 微信小程序vtabs
  12. 《tkinter实用教程二》tkinter的子模块ttk
  13. 生活家健康指南:创可贴使用四大误区
  14. VMware虚拟机nat模式详解
  15. (《机器学习》完整版系列)附录 ——7、有趣的距离与范数(距离是两点之间的,如果将一个点固定在原点,则为向量的范数)
  16. 计算机键盘重复,win7系统电脑键盘打字时总是出现重复字符的解决方法
  17. pyqt win32发送QQ消息
  18. 天翼云无法连接mysql_天翼云Linux主机异常
  19. D3D11 MD5骨骼动画模型的加载
  20. 阅读笔记--操作系统(清华大学公开课)

热门文章

  1. c#的内存管理(托管及未托管对象管理)
  2. C#導出Excel源碼
  3. linux安装启动svn
  4. javascript--方法(函数)
  5. 2014年07月21日
  6. 标准Dispose实现 (转)
  7. Linux下生产者与消费者问题
  8. mybatis ${}使用注意事项
  9. 前端学习 第二弹: JavaScript中的一些函数与对象(1)
  10. logstash multiline