(四)从输入URL到页面加载发生了什么

一、从输入URL到页面加载发生了什么

1、在浏览器中输入URL

如:https://www.cnblogs.com/loveapple/

URL分成协议、地址、路径三部分

  • 协议:http、https、ftp
  • 地址:www.cnblogs.com、localhost:4000
  • 路径:/loveapple/

2、通过DNS解析获得对应的IP地址

DNS作用:将域名转化成IP,域名是方面我们记忆的,但是网络上的资源最终是要通过ip取获得的。

DNS查找过程:

  • 浏览器缓存——浏览器会缓存DNS记录一段时间(2分钟到30分钟),你可以在chrome浏览器输入chrome://net-internals/#dns.可看到目前浏览器缓存了哪些ip
  • 系统缓存——如何浏览器缓存中没有,浏览器会做一个系统系统调用,查找系统缓存中的记录,常见的hosts文件
  • 路由缓存——如果系统缓存也没有需要的记录,会向本地路由器发送一条DNS查询请求,一般会有自己的dns缓存
  • ISP DNS缓存——如果本地路由器没有再查看本地网络提供商(移动啦、电信啦)的DNS服务器,一般都能找到相应的缓存记录
  • 递归查找——DNS服务器从根域名开始进行递归查找,从.com顶级域名服务器到facebook的域名服务器

3、浏览器向服务器发送一个HTTP请求

  • 首先通过三次握手建立TCP连接,
  • 浏览器通过TCP连接向服务器发送一个http请求

4、服务器发出重定向响应

  • facebook.com→www.facebook.com
  • 目的是提高搜索引擎www.facebook.com的权重,使www.facebook.com排名靠前

5、跟随重定向

  • 浏览器发起新的请求——www.facebook.com

6、服务器开始处理请求并返回响应

  • 响应:html、json、gzip

7、服务器返回HTML响应

  • gzip常表现为乱码,经过浏览器解压后可看到正常的html

8、浏览器开始渲染HTML

9、浏览器发送请求去获取HTML中的一些内嵌对象

  • 内嵌对象,页面资源中可见
  • 带src的如js文件,img文件
  • 不带src的如css文件

10、浏览器发送异步的ajax请求

  • 局部刷新

二、扩展知识

1、静态页面和动态页面的区别

2、简述TCP三次握手建立连接的过程

第一次握手:客户端对服务器说:“服务器哥哥,我想跟你说说话!(SYN联机请求)”

第二次握手:服务器对客户端说:“我知道了(ACK确认),我这边已经准备好了,你准备好了吗?(SYN联机请求)”

第三次握手:客户端对服务器说:“好的(ACK确认),咱们开始说话吧”

3、简述TCP四次挥手断开连接的过程

第一次挥手:客户端对服务器说:“我说完了(FIN结束请求)”

第二次挥手:服务器说:“我知道你说完了(ACK确认),我再给你说两句,&*……%¥”。

第三次挥手:服务器说完了,告诉客户端:“我说完了,咱们断了吧(FIN结束请求)”

第四次挥手:客户端说:“好的(ACK确认)”并礼貌地等服务端挂断电话后才挂电话(确保自己最后说的话服务器听到了)

4、AJAX

AJAX=异步JavaScript和xml

通过在后台与服务器进行少量数据交互,是网页实现异步更新。

原文地址:https://www.cnblogs.com/loveapple/p/9918025.html

时间: 2024-11-10 04:00:43

(四)从输入URL到页面加载发生了什么的相关文章

从输入URL到页面加载发生了什么

从输入URL到页面加载发生了什么 转自: https://segmentfault.com/a/1190000006879700 作者写得很不错,作者忽略了的,我加了上去,完善了一些,如get与post的区别等 总体来说分为以下几个过程: DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回HTTP报文 浏览器解析渲染页面 连接结束 1.DNS解析 DNS解析的过程就是寻找哪台机器上有你需要资源的过程.当你在浏览器中输入一个地址时,例如www.baidu.com,其实不是百度网站真正意

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

背景 “从浏览器中输入URL到页面加载的发生了什么“,这是一道经典的面试题,涉及到的知识面非常多,但作为一个自认为对网络知识掌握的比较好的老码农来说,回答这个问题自然不在话下.如果这道题目如果在面试出现,对我来说就是送分题啊.尽管如此,我还是愿意花一些时间根据我自己的理解回答一下这个题目,看我自己到底掌握的有多深,同时也把自己的知识梳理一下. 这让我想起另外一件往事,这道题有点类似于“在手机上浏览器上输入一个URL,手机做了一些什么”,我当时学习通信里的核心网时就给自己提出过这个问题. 我非常愿

从输入URL到页面加载发生了什么?

总体来说分为以下几个过程: DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回HTTP报文 浏览器解析渲染页面 连接结束 具体内容点这里 原文地址:https://www.cnblogs.com/lulin1/p/9228785.html

从输入URL 到页面加载完成的过程

转载自:http://www.tuicool.com/articles/V7JN32Z 根据 URL 请求页面过程 说实话,这类文章网上一抓一大把,而我仍想写这篇博客,一方面是想再仔细缕一下这个过程,另一方面是希望用清晰的语言和结构来解释,也算是小小地挑战一下自己. 过程概述 浏览器查找域名对应的 IP 地址: 浏览器根据 IP 地址与服务器建立 socket 连接: 浏览器与服务器通信: 浏览器请求,服务器处理请求: 浏览器与服务器断开连接. 天啦撸,结束了?也太简单了吧...各位看官,不急,

从输入 URL 到页面加载完成的过程中都发生了什么(转)

从输入 URL 到页面加载完成的过程中都发生了什么 过程描述 浏览器查找域名对应的 IP 地址: 浏览器根据 IP 地址与服务器建立 socket 连接: 浏览器与服务器通信: 浏览器请求,服务器处理请求: 浏览器与服务器断开连接. 根据域名查找IP地址 概念解析 IP地址:IP协议为互联网上的每一个网络和每一台主机分配的一个逻辑地址.IP地址如同门牌号码,通过 IP地址才能确定一台主机位置.服务器本质也是一台主机,想要访问某个服务器,必须先知道它的IP地址: 域名(HOST):IP 地址由四个

从输入URL到页面加载的全过程

前面的话 本文将详细介绍从输入URL到页面加载的全过程 概述 从输入URL到页面加载的主干流程如下: 1.浏览器构建HTTP Request请求 2.网络传输 3.服务器构建HTTP Response 响应 4.网络传输 5.浏览器渲染页面 构建请求 1.应用层进行DNS解析 通过DNS将域名解析成IP地址.在解析过程中,按照浏览器缓存.系统缓存.路由器缓存.ISP(运营商)DNS缓存.根域名服务器.顶级域名服务器.主域名服务器的顺序,逐步读取缓存,直到拿到IP地址 这里使用DNS预解析,可以根

一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?

一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了: 1.浏览器补全URL地址 在输入完URL之后,浏览器会自动检查该地址是否完整,例如是否有添加https协议,若发现不完整,会自动补全. 2.向DNS查询IP地址 每个域名都对应一个或多个提供相同服务服务器的 IP 地址,只有知道服务器 IP 地址才能建立连接,所以需要通过 DNS 把域名解析成一个 IP 地址. 3.得到IP地址后,建立连接,进行三次握手 即每次建立连接前,客户端和服务端都要先进行三次对话才开始正式传输内容,三次对

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

文章首发于公众号:软件测试er 输入url到页面加载都发生了什么事情?这是一道软件测试面试题,且相关知识其实还有多种问法: Question 1请讲一下tcp三次握手 OK等你把这个记好了,下次面试:Question 2 tcp和http有什么区别?? Question 3 http和https区别? Question 4 http请求方法? Question 5常见的返回状态码有哪些?都是什么含义?...一开始我也只是应付面试,去了解这些问题,但是发现自己并不能很好的理解.而在平时测试中需要定

【转】 从输入 URL 到页面加载完成的过程中都发生了什么事情?

该问题总结 一. 往浏览器输入URL后给你一个页面,你天天在使用的东西,学过计算机网络的知道是怎么回事,就DNS解析然后页面的回馈,不过要讲好还是有难度. 之前fex团队的nwind专门写过这个问题的博客: http://fex.baidu.com/blog/2014/05/what-happen/ 厉害的地方是将整个计算机体系和硬件都涉及进来,很广很深,太强大了. 然后找到一个StackOverFlow的答案: what happens when you type in a URL in br