当前位置: 首页 > wzjs >正文

百度网站地图百度快照功能

百度网站地图,百度快照功能,开县网站制作,wordpress简易商城查询缓存 其实从填写上url按下回车后,我们就进入了第一步就是 DNS 解析过程,首先需要找到这个 url 域名的服务器 ip,为了寻找这个 ip,浏览器首先会寻找缓存,查看缓存中是否有记录缓存的查找记录为:浏览器缓存>系统…

查询缓存

其实从填写上url按下回车后,我们就进入了第一步就是 DNS 解析过程,首先需要找到这个 url 域名的服务器 ip,为了寻找这个 ip,浏览器首先会寻找缓存,查看缓存中是否有记录缓存的查找记录为:浏览器缓存=>系统缓存=>路由器缓存 缓存中没有则查找系统的 hosts 文件中是否有记录

如果缓存中没有就需要进行查询DNS服务器

如果没有缓存则查询 DNS 服务器,得到服务器的 ip 地址后,浏览器根据这个 ip 以及相应的端口号发送连接请求;当然如果DNS服务器中没有解析成功,他会向上一步获得的顶级DNS服务器发送解析请求。

 

TCP三次握手建立客户端和服务器的连接

因为HTTP是基于TCP的可靠传输,所以在发送http数据报之前,需要先进行TCP的三次握手建立连接。三次握手过程如下:

第一次握手:客户端--->服务端 ack=1,seq=x(x随机生成)

第二次握手:服务端--->客户端 ACK=1,ack=x+1,seq=y(y随机生成)

第三次握手:客户端--->服务端 ACK=1,ack=y+1,seq=x+1

完成第三次握手时,实际上客户端已经与服务器建立了连接,所以第三次握手的报文已经可以携带数据了。

发送HTTP请求

构造一个 http 请求,这个请求报文会包括这次请求的信息,主要是请求方法,请求说明和请求附带的数据,并将这个 http 请求封装在一个 tcp 包中;这个 tcp 包也就是会依次经过传输层,网络层, 数据链路层,物理层到达服务器,服务器解析这个请求来作出响应;返回相应的 html 给浏览器

服务器处理请求并返回HTTP报文

后端从在固定的端口接收到TCP报文开始,这一部分对应于编程语言中的socket。它会对TCP连接进行处理,对HTTP协议进行解析,并按照报文格式进一步封装成HTTP Request对象,供上层使用。这一部分工作一般是由Web服务器去进行

浏览器解析渲染页面

浏览器在收到HTML,CSS,JS文件后,它是如何把页面呈现到屏幕上的?下图对应的就是WebKit渲染的过程。

浏览器是一个边解析边渲染的过程。首先浏览器解析HTML文件构建DOM树,然后解析CSS文件构建渲染树,等到渲染树构建完成后,浏览器开始布局渲染树并将其绘制到屏幕上。这个过程比较复杂,涉及到两个概念: reflow(回流)和repain(重绘)。DOM节点中的各个元素都是以盒模型的形式存在,这些都需要浏览器去计算其位置和大小等,这个过程称为relow;当盒模型的位置,大小以及其他属性,如颜色,字体,等确定下来之后,浏览器便开始绘制内容,这个过程称为repain。页面在首次加载时必然会经历reflow和repain。reflow和repain过程是非常消耗性能的,尤其是在移动设备上,它会破坏用户体验,有时会造成页面卡顿。所以我们应该尽可能少的减少reflow和repain。

JS的解析是由浏览器中的JS解析引擎完成的。JS是单线程运行,也就是说,在同一个时间内只能做一件事,所有的任务都需要排队,前一个任务结束,后一个任务才能开始。但是又存在某些任务比较耗时,如IO读写等,所以需要一种机制可以先执行排在后面的任务,这就是:同步任务(synchronous)和异步任务(asynchronous)。JS的执行机制就可以看做是一个主线程加上一个任务队列(task queue)。同步任务就是放在主线程上执行的任务,异步任务是放在任务队列中的任务。所有的同步任务在主线程上执行,形成一个执行栈;异步任务有了运行结果就会在任务队列中放置一个事件;脚本运行时先依次运行执行栈,然后会从任务队列里提取事件,运行任务队列中的任务,这个过程是不断重复的,所以又叫做事件循环(Event loop)。

浏览器在解析过程中,如果遇到请求外部资源时,如图像,iconfont,JS等。浏览器将重复1-6过程下载该资源。请求过程是异步的,并不会影响HTML文档进行加载,但是当文档加载过程中遇到JS文件,HTML文档会挂起渲染过程,不仅要等到文档中JS文件加载完毕还要等待解析执行完毕,才会继续HTML的渲染过程。原因是因为JS有可能修改DOM结构,这就意味着JS执行完成前,后续所有资源的下载是没有必要的,这就是JS阻塞后续资源下载的根本原因。CSS文件的加载不影响JS文件的加载,但是却影响JS文件的执行。JS代码执行前浏览器必须保证CSS文件已经下载并加载完毕。

总结起来就是

(1)解析html资源,构建DOM Tree

(2)解析css资源,构建CSS Rule Tree

(3)JS通过DOM API和CSS OM API来操作DOM Tree和CSS Tree

(4)解析完成后综合DOM Tree和CSS Tree会生成Render Tree,计算每个元素的位置,这个过程就是回流(layout or reflow)

(5)调用操作系统Native GUI的绘制

(6)页面绘制完成

连接结束

页面展示完成后,如果 TCP 连接不再需要复用,浏览器和服务器会通过 TCP 四次挥手来关闭连接,释放相关资源。不过在实际中,根据 HTTP 协议版本和设置等情况,连接可能会被保持复用,不一定立即关闭。

  • 第一次挥手:主机1(可以是客户端,也可以是服务器端),设置Sequence Number和Acknowledgment Number,向主机2发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态,表示主机1没有数据要发送给主机2了;
  • 第二次挥手:主机2接收到主机1发送的FIN报文段,向主机1回一个ACK报文段,Acknowledgment Number为Sequence Number + 1;主机1进入 FIN_WAIT_2状态;主机2告诉主机1,我同意你的关闭请求;
  • 第三次挥手:主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入LAST_ACK状态;
  • 第四次挥手:主机1收到主机2发送的FIN报文段,向主机2发送ACK报文段,然后主机1进入TIME_WAIT状态;主机2收到主机1的ACK报文段后,就关闭连接;此时,主机1等待主机2 MSL后依然没有收到回复,则证明主机2已正常关闭,那好,主机1也可以关闭连接了。

 文章参考

前端经典面试题: 从输入URL到页面加载发生了什么? - 我的前端之路 - SegmentFault 思否

 浏览器输入url到页面展示出来的全过程_浏览器从输入url到显示页面的过程-CSDN博客

「高频面试题」浏览器从输入url到页面展示中间发生了什么_用户输入网址到展示发生了什么 面试题-CSDN博客

http://www.dtcms.com/wzjs/416104.html

相关文章:

  • wordpress固定连接文件seo综合查询平台
  • 版面设计图片素材四川自助seo建站
  • 永康网站建设公司竞价排名的服务模式是
  • 学校门户网站流程建设方案天津天狮网络营销课程
  • 我的网站别人给黑链 攻击北京朝阳区优化
  • 哈尔滨建站系统报价交换友情链接的条件
  • 做外贸网站那家专业游戏推广对接平台
  • 2017民非单位年检那个网站做国外网站设计
  • 房产集团网站建设站长之家网站模板
  • 成都建设官方网站新产品推广方案怎么写
  • 山东省城乡建设部网站首页营销方案设计思路
  • 微网站 pc端网站开发北京seo优化费用
  • openssl 3漏洞补丁搜索引擎优化的基本方法
  • 淘宝网站上做代购的是正品吗企业门户网站的设计与实现
  • 商丘网站制作与设计seo优化中以下说法正确的是
  • 建设和谐社区网站百度热搜榜排名今日第一
  • 上海娱乐场所疫情最新规定西安seo服务外包
  • 阿里虚拟主机怎么做两个网站广东省广州市白云区
  • wordpress 清楚jq成都高薪seo
  • 嘉兴建设网站的快速网站搭建
  • 深圳网站优化软件西安全网优化
  • 0基础学app程序开发关于华大18年专注seo服务网站制作应用开发
  • 龙华网站建设方案表哈尔滨百度关键词优化
  • 政府网站集约化建设推进情况清远新闻最新
  • 哪个网站做海报好b站引流推广网站
  • 网站seo外链接如何免费做视频二维码永久
  • 用word做网站功能结构图百度收录的网页数量
  • 南京高端网站建设公司哪家好企业域名查询
  • 东莞南城网站设计友情链接也称为
  • 佛山网站建设的首选磐石网站seo