面试经典题--URL加载 一.涉及基本知识点: 1. 计算机网络 五层因特尔协议栈: 应用层(dns.http):DNS解析成IP并完成http请求发送: 传输层(tcp.udp):三次握手四次挥手模式建立tcp连接: 网络层(IP.ARP):IP寻址: 数据链路层(PPP):将请求数据封装成帧: 物理层:利用物理介质传输比特流(传输的时候通过双绞线.电磁波等) OIS七层框架:多了两层即,会话层(处理两个通信系统中交换信息的表示方式)和表示层(管理不同用户和进程之间的对话). get和post…
1.首先,在浏览器地址栏中输入url 2.浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容.若没有,则跳到第三步操作 3.在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址 4.浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手 5.握手成功后,浏览器向服务器发送http请求,请求数据包 6.服务器处理收到的请求,将数据返回至浏览器 7.浏览器收到HTTP响应 8.浏览器解析渲染页面:解析html源码;生成Dom树.解析css样式…
首先,当浏览器接收到url,会查看本地缓存(浏览器缓存-系统缓存-路由器缓存)中是否有,有则直接显示 没有则进行DNS域名解析,将域名解析成IP地址,通过ip地址去访问相应的服务器, 浏览器访问服务器的时候,会先进行tcp连接,发生三次握手 握手成功,浏览器向服务器发送http请求,请求数据 服务器收到请求,进行处理,返回相应的数据至浏览器 浏览器接收服务器的响应, 读取页面内容,浏览器渲染,解析html源码 生成Dom树.解析css样式.js交互 以上就是大致经历的过程 三次握手的意思大致就是…
第一种解释: 一般会经历以下几个过程: 1.首先,在浏览器地址栏中输入url 2.浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容.若没有,则跳到第三步操作. 3.在发送http请求前,需要域名解析(DNS解析)(DNS(域名系统,Domain Name System)是互联网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住IP地址.),解析获取相应的IP地址. 4.浏览器向服务器发起tcp连接,…
一个页面从输入URL到页面加载完成发生了... 1.查找浏览器缓存 2.寻址:DNS解析 查找该域名对应的IP地址, 如果需要重定向(301),则再次发起请求 3. 进行HTTP协议会话 4.客户端发送请求报头 5. 服务器响应报头 html文档开始下载 文档树建立,根据标记请求所需指定MIME类型的文件 文件显示 ------------------- 浏览器这边的工作大致分为: 加载: 根据请求的URL进行域名解析,想服务器发起请求,接收文件(HTML.css.js.图片等). 解析:对加载…
对于网址栏的URL不同的操作方式有不同的加载资源.获取数据的方式,下面的详细过程针对"在地址栏输入URL,按enter(回车)键加载资源"此种操作方式做解析,其它的方式的过程大同小异,差异会在后面再做分析. 1. 浏览器开启一个线程来处理这个请求,对URL判断如果是http协议就按照web方式处理: 2. 浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容(此时没有向服务端发请求).若没有,则进行下一步操作(后面需要向服务端发送请求): 3. 通过D…
本人经参考谢希仁著<计算机网络(第 5版)>.<HTTP权威指南>和网络上关于浏览器渲染原理的介绍,结合自己理解,整理出以下结论,如有不正确或者不完善之处欢迎指正: 当用户在浏览器的地址栏输入要找的页面的url后,如输入http://www.tsinghua.edu.cn/chn/yxsz/index.html,具体发生了以下步骤: 1.浏览器向DNS服务器请求解析www.tsinghua.edu.cn的IP地址: 具体来说: 浏览器调用解析程序,并成为DNS服务器的一个客户,把待…
前端面试/笔试必考问题,越详细越好 先简单得讲: 浏览器根据请求的URL交给DNS域名解析,找到真实IP,向服务器发起请求: 服务器交给后台处理完成后返回数据,浏览器接收文件(HTML.JS.CSS.图象等): 浏览器对加载到的资源(HTML.JS.CSS等)进行语法解析,建立相应的内部数据结构(如HTML的DOM): 载入解析到的资源文件,渲染页面,完成. 详细得说: 1.当发送一个URL请求时,不管这个URL是Web页面的URL还是Web页面上每个资源的URL,浏览器会开启一个线程来处理这个…
下面以访问baidu页面来做一个过程分析 输入 URL:http://www.baidu.com DNS 域名解析 计算机无法识别域名,计算机与计算机之间要想进行通信,必须通过ip地址用来定位该计算机所在的位置 在浏览器中,输入的ip地址或者域名,默认给你加了一个80端口号(对方的服务器监听的就是80端口) 158.12.25.652 域名就是为了好记 为了好记,所以我们的万维网提供了 一个 域名这样的概念 当你输入了 ip 地址后,浏览器会自动去 找DNS域名解析服务器, 建立 TCP 连接(…
注:这题胜在区分度高,知识点覆盖广,再不懂的人,也能答出几句, 而高手可以根据自己擅长的领域自由发挥,从URL规范.HTTP协议.DNS.CDN.数据库查询. 到浏览器流式解析.CSS规则构建.layout.paint.onload/domready.JS执行.JS API绑定等等:    详细版: 1.浏览器会开启一个线程来处理这个请求,对 URL 分析判断如果是 http 协议就按照 Web 方式来处理;          2.调用浏览器内核中的对应方法,比如 WebView 中的 load…
1.当发送一个URL请求时,浏览器会开启一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询,解析获取网址的IP地址:2.浏览器与远程Web服务器通过TCP三次握手协商来建立一个TCP/IP连接.该握手包括一个同步报文,一个同步-应答报文和一个应答报文,这三个报文在浏览器和服务器之间传递.该握手首先由客户端尝试建立起通信,而后服务器应答并接受客户端的请求,最后由客户端发出该请求已经被接受的报文:3.一旦TCP/IP连接建立,浏览器会通过该连接向远程服务器发送HTTP的GET请求.远…
过程概述 浏览器查找域名对应的 IP 地址: 浏览器根据 IP 地址与服务器建立 socket 连接: 浏览器与服务器通信: 浏览器请求,服务器处理请求: 浏览器与服务器断开连接. 以下为详细解析: 根据域名查找 IP 地址 概念解释 IP 地址:IP 协议为互联网上的每一个网络和每一台主机分配的一个逻辑地址.IP 地址如同门牌号码,通过 IP 地址才能确定一台主机位置.服务器本质也是一台主机,想要访问某个服务器,必须先知道它的 IP 地址: 域名( DN ):IP 地址由四个数字组成,中间用点…
分为4个步骤: 1)  当发送一个 URL 请求时,不管这个 URL 是 Web 页面的 URL 还是 Web 页面上每个资源的 URL,浏览器都会开启一个线程来处理这个请求,同时在远程 DNS 服务器上启动一个 DNS 查询.这能使浏览器获得请求对应的 IP 地址. 2)  浏览器与远程 Web 服务器通过 TCP 三次握手协商来建立一个 TCP/IP 连接.该握手包括一个同步报文,一个同步-应答报文和一个应答报文,这三个报文在 浏览器和服务器之间传递.该握手首先由客户端尝试建立起通信,而后服…
如今移动互联网风靡全球,移动页面的元素也是丰富多彩,一个移动页面的图片超过10张已经是再正常不过的事情了.但是相对,很多移动用户还停留在2G,3G这样的网络中.那么这样带宽的用户,在浏览这样的页面时,要把页面加载完毕,可能就需要10s,20s甚至更多,严重影响用户的体验.针对这样的问题,让页面中的图片滚动加载(图片出现在显示器屏幕上时再加载图片)显得非常重要!这样也可以有效地节省我们服务器的带宽和解决请求大并发的问题. 1.效果图.     这是加载过程中的图片菊花显示            …
大家好,在这里分享一下flash里边处理redirect的方法. 一般而言,大家不会遇到这个问题,毕竟图片地址一般杠杠的,不会redirect.但昨天在拉取空间的照片就会出现redirect.神啊!!! 而且这个不是必现的,空间某些照片会突然redirect,例如从aXX.photo.qq.com域名转到sXX.photo.qq.com. 这个redirect,对于页面来说,当然是没问题的,反正浏览器解决了.但是在Flash里边,如果需要对下载回来的图片进行处理(放缩.平滑等),你就肯定会遇到 …
最近在网上到一个关于loadrunner遍历一个页面中的url并进行访问的脚本,就把它用我们自己的项目实践了一下,发现有一点不完善. 原始版本: Action(){char temp[64];int num = 0 ;int i = 0 ;char *str ;// char *temp ;//获取函数,是一个数组web_reg_save_param(“UrlList”,“LB/ALNUMIC=<a href=\”",“RB=\”",“ORD=all”,LAST); web_ur…
基于JQuery实现滚动到页面底端时自动加载更多信息 关键代码: 代码如下: var stop=true; $(window).scroll(function(){ totalheight = parseFloat($(window).height()) + parseFloat($(window).scrollTop()); if($(document).height() <= totalheight){ if(stop==true){ stop=false; $.post("ajax.…
我们经常看到浏览器在加载某个页面时,部分内容先显示出来,又有些内容后显示.那么浏览器加载显示html究竟是按什么顺序进行的呢 其实浏览器加载显示html的顺序是按下面的顺序进行的:1.IE下载的顺序是从上到下,渲染的顺序也是从上到下,下载和渲染是同时进行的.2.在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(并不是说所有相关联的元素都已经下载完).3.如果遇到语义解释性的标签嵌入文件(JS脚本,CSS样式),那么此时IE的下载过程会启用单独连接进行下载.4.并且在下载后进行解析,解析过…
chrome://inspect调试html页面空白,DOM无法加载的解决方案 先描述一下问题 有一段时间没碰huilder hybird app 开发了,今天调试的时候 chrome://inspect/#devices 可以发现页面,但是打开后空白 解决方案 翻墙后就可以了,下次就不需要翻墙了 估计原因 1.chrome升级后原有配置失效 2.浏览器缓存被软件管家清掉了…
bootstrap模态框modal使用remote动态加载内容,第二次加载显示相同内容解决办法 bootstrap的modal中,使用remote可以动态加载页面到modal-body中,并弹窗显示 如果提供的是 URL,将利用 jQuery 的 load 方法从此 URL 地址加载要展示的内容(只加载一次)并插入 .modal-content 内.如果使用的是 data 属性 API,还可以利用 href 属性指定内容来源地址.下面是两个实例: <a data-toggle="modal…
可以将下列任何外部显示资源加载到 ActionScript 3.0 应用程序中: 在 ActionScript 3.0 中创作的 SWF 文件 — 此文件可以是 Sprite.MovieClip 或扩展 Sprite 的任何类.在 iOS 上的 AIR 应用程序中,只能加载不包含 ActionScript 字节代码的 SWF 文件.这意味着可以加载包含嵌入数据(如图像和声音)的 SWF 文件,但不能加载包含可执行代码的 SWF 文件. 图像文件 — 包括 JPG.PNG 和 GIF 文件. AV…
bootstrap的modal中,使用remote可以动态加载页面到modal-body中,并弹窗显示 如果提供的是 URL,将利用 jQuery 的 load 方法从此 URL 地址加载要展示的内容(只加载一次)并插入 .modal-content 内.如果使用的是 data 属性 API,还可以利用 href 属性指定内容来源地址.下面是两个实例: <a data-toggle="modal" href="remote.html" data-target=…
本文本内容拷贝至:https://blog.csdn.net/xuanwuziyou/article/details/48199123 当一个网页中有大量图片时,浏览器会逐个去下载这些图片,等全部下载完毕再执行其它操作,而浏览器本身的http请求的最大并发数量(通常是2个,最多的也只是8个)又限制了全部图片完成下载的时间,这样网页的速度会很慢,导致很差的用户体验. 一个好的实践是当用户向下滚动页面时,在图片出现在用户的可视范围内的时候,去请求相应图片并加载,比如淘宝的页面,这样按需加载图片可省去…
SDWebImage 加载显示 GIF 与性能问题 SDWebImage 4.0 之前,可以用 UIImageView 显示 GIF 图.如果 SDWebImage 4.0 还这么做,只会显示静态图.SDWebImage 4.0 用 FLAnimatedImageView 通过 FLAnimatedImage 显示 GIF 图.本文的这两个库的版本分别为 SDWebImage 4.0.0 和 FLAnimatedImage 1.0.12. CocoaPods 安装 pod 'SDWebImage…
SDWebImage 加载显示 WebP 与性能问题 本文包含自定义下载操作 SDWebImageDownloaderOperation 与编码器 SDWebImageCoder.SDWebImage 的版本为 4.2.3. 静态图片 对于静态图片来说,WebP 比 PNG 体积小,可以省流量,但是解码时间长.如果不需要 WebP 的原图数据,可以把 WebP 静态图片保存为 PNG 或 JPEG,加快解码速度.这一步可以通过自定义下载操作 SDWebImageDownloaderOperati…
问题: bmap第一次加载显示没问题: 第二次 再次加载这个页面时,地图的显示出现了问题: . 分析问题出现原因:你要确保dom创建后且处于显示状态(即display不能为none)才能再次初始化地图,否则会出现你这种情况(关键:确定在dom创建后再初始化地图). 解决方法: //错误代码:在js里面直接调用initMap()方法. initMap(); //改正后代码:设置延时,再初始化 setTimeout(function(){initMap();},); 有时候延时300毫秒不一定够,可…
jquery预加载显示百分比 <pre> <img class="bj loadimg" loadimg="/weiqingshu/images/1/bj.jpg"/></pre> <script type="text/javascript" src="/caigeci/js/jquery.imgpreload.min.js"></script><pre>…
VS 2017 mscorlib.dll 加载元数据时发生严重错误,需要终止调试 C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll…
这是一个前端的经典面试题,很多大公司面试时都会被问及,涉及的面也是非常多. 一般会经历以下几个过程: 1.首先,在浏览器地址栏中输入url 2.浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容.若没有,则跳到第三步操作. 3.在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址. 4.浏览器向服务器发起tcp连接(TCP是一种面向有连接的传输层协议),与浏览器建立tcp三次握手. 三次握手过程: 第一次握手,请求建立连接,发送端发送连接请…
一个http请求的过程 简要介绍一下一个http请求的网络传输过程: DNS Lookup先获得URL对应的IP地址 Socket Connect浏览器和服务器建立TCP连接 Send Request浏览器发送HTTP请求 Content Download服务器发送响应 接下来讲讲这里存在的性能问题: 如果你对DNS的查询还有印象的话现在反思一下,DNS Lookup就是为了获取遗传IP地址要和无数个DNS服务器通信,要消耗多少时间呢? TCP连接要三次握手,如果服务器很远的话这三次我说要花多少…