面试中经常会被问到这个问题吧,唉,我最开始被问到的时候也就能大概说一些流程.被问得多了,自己就想去找找这个问题的全面回答,于是乎搜了很多资料和网上的文章,根据那些文章写一个总结. 写得不好,或者有意见的直接喷,不用走流程.也欢迎大佬指点 首先这不是小问题,能把里面的过程说清楚真的很麻烦,然后下面我把这些知识点,按流程的形式总结的: 从浏览器接收url到开启网络请求线程 开启网络线程到发出一个完整的http请求 从服务器接收到请求到对应后台接收到请求 后台和前台的http交互 http的缓存问题…
总体来说有两个大的方面: 一.网络通信连接部分.二.页面渲染展示部分. 细分详细过程: (网络通信) 1.输入url. 2.DNS解析域名. 3.拿到IP地址后,浏览器向服务器建立tcp连接. 4.浏览器向web服务器发送http请求. 5.服务器收到请求并响应. (页面渲染) 6.服务器返回相应文件,浏览器进行页面渲染. 详细描述之前,先拉个概念出来: 网络通信协议: 一.OSI模型(开放式系统互连) 1.应用层.文件传输,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Te…
经典面试题:从输入URL到页面显示发生了哪些事情 以前一直都记不住,这次自己理解了一下 用自己的话总结了一次,不对的地方希望大佬给我指出来 1.主机通过DHCP协议获取客户端的IP地址.子网掩码和DNS服务器的IP地址 2.然后开始向服务器发生请求,发生请求需要生产一个TCP套接字,生成这个套接字是需要网站域名对应的IP地址,要获取IP地址需要解析域名,这时候就用到了DNS解析协议 3.要使用DNS解析协议,需要通过网关路由器转发DNS解析请求,这时候通过ARP协议将DHCP获取到的网关路由器I…
1.输入网址 当你开始输入网址比如www.cnblogs.com时游览器就可以在书签或者历史记录里面去搜索相关的网址推荐给你. 2.游览器查找域名的IP地址 ① 请求发起后,游览器首先会解析这个域名,首先它会查看本地硬盘的 hosts 文件,看看其中有没有和这个域名对应的规则,如果有的话就直接使用 hosts 文件里面的 ip 地址. ② 如果在本地的 hosts 文件没有能够找到对应的 ip 地址,浏览器会发出一个 DNS请求到本地DNS(域名分布系统)服务器 .本地DNS服务器一般都是你的网…
去看经典是不会错的,如果觉得太长,那就休息一下继续看. 经验告诉我,读一篇经典足矣,不要浪费时间去搜索其他地方到处复制粘贴的博文. 所以奉上我过滤的经典: 1.How browser work 2.how browser work--中文版 3.酷壳总结版本---浏览器的工作原理 此篇仅为整理记录收集的资源.…
输入地址 浏览器查找域名的 IP 地址 这一步包括 DNS 具体的查找过程,包括:浏览器缓存->系统缓存->路由器缓存... 浏览器向 web 服务器发送一个 HTTP 请求 服务器的永久重定向响应(从 http://example.com 到 http://www.example.com) 浏览器跟踪重定向地址 服务器处理请求 服务器返回一个 HTTP 响应 浏览器显示 HTML 浏览器发送请求获取嵌入在 HTML 中的资源(如图片.音频.视频.CSS.JS等等) 浏览器发送异步请求 1.我…
总体来说分为以下几个过程:1. DNS 解析2. TCP 连接3. 发送 HTTP 请求4. 服务器处理请求并返回 HTTP 报文5. 浏览器解析渲染页面6. 连接结束…
从输入 URL 到浏览器接收的过程中发生了什么事情? 原文:http://www.codeceo.com/article/url-cpu-broswer.html 从触屏到 CPU  首先是「输入 URL」,大部分人的第一反应会是键盘,不过为了与时俱进,这里将介绍触摸屏设备的交互. 触摸屏一种传感器,目前大多是基于电容(Capacitive)来实现的,以前都是直接覆盖在显示屏上的,不过最近出现了 3 种嵌入到显示屏中的技术,第一种是 iPhone 5 的 In-cell,它能减小了 0.5 毫米…
输入url后浏览器干了些什么(详解) DNS(Domain Name System, 域名系统) 解析 DNS解析的过程就是寻找哪台机器上有你真正需要的资源过程.但你在浏览器张红输入一个地址时,例如:baidu.com,其实不是百度网站真正意义上的地址.互联网上每一台计算机的唯一标识是他的IP地址,但是IP地址并不方便记忆.用户更细化用方便记忆的网址去寻找互联网上的其他计算机.也就是上面提到的百度的网址.所以互联网设计者需要在用户的方便性与可用性做一个权衡,这个权衡就是一个网址到IP地址的转换,…
从输入 URL 到浏览器接收的过程中发生了什么事情? What really happens when you navigate to a URL 上面两篇文章都解读的很好,值得阅读. 接下来在总结一下这个过程: 1.首先,会查询缓存,如果缓存存在的话则直接响应,否则继续下面过程: 2.当发送一个URL请求时,不管这个URL是Web页面的URL还是Web页面上每个资源的URL,浏览器都会开启一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询.这能使浏览器获得请求对应的IP地址.D…
在浏览器中输入URL后,执行的全部过程.会用到哪些协议?(一次完整的HTTP请求过程) 整个流程如下: 域名解析 为了将消息从你的PC上传到服务器上,需要用到IP协议.ARP协议和OSPF协议. 发起TCP的三次握手 建立TCP连接后发起HTTP请求 服务器响应HTTP请求 浏览器解析html代码,并请求HTML代码中的资源(如js.css.图片等) 断开TCP连接 浏览器对页面进行渲染呈现给用户 域名解析 比如要查询www.baidu.com的IP地址: 1.浏览器搜索自己的DNS缓存(维护一…
从输入URL到渲染出整个页面的过程包括三个部分: 1.DNS解析URL的过程 2.浏览器发送请求与服务器交互的过程 3.浏览器对接收到的html页面渲染的过程 一.DNS解析URL的过程 DNS解析的过程就是寻找哪个服务器上有请求的资源.因为ip地址不容易记忆,一般会使用URL域名(如www.baidu.com)作为网址.DNS解析就是将域名翻译成IP地址的过程. 具体过程: 1)浏览器缓存:浏览器会按照一定的频率 缓存DNS记录 2)操作系统缓存:如果浏览器缓存中找不到需要的DNS记录,就会取…
1.域名解析 域名解析的过程:  1).查询浏览器自身DNS缓存 2).若上面没有查找到,则搜索操作系统自身的dns缓存 3).若上面没有找到,则尝试读取hosts文件 4).若上面没有找到,向本地配置的首选DNS服务器发送请求 5).win系统 如果上面没有找到,操作系统查找NetBIOS name cache 6).win系统 如果上面没有找到,查询wins服务器 7).win系统 如果上面没有找到,广播查找 8).win系统 如果上面没有找到,读取LMHOSTS文件 若以上多没有找到,解析…
1.首先,在浏览器地址栏中输入url 2.浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容.若没有,则跳到第三步操作 3.在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址 4.浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手 5.握手成功后,浏览器向服务器发送http请求,请求数据包 6.服务器处理收到的请求,将数据返回至浏览器 7.浏览器收到HTTP响应 8.浏览器解析渲染页面:解析html源码;生成Dom树.解析css样式…
一.输入设备(或粘贴)输入 URL,按下 Enter键 或其他按钮开始请求. 二.浏览器开始解析 URL 关于 URL 到相关知识点:什么是URI,URL以及URN,你真的理解了吗. 1.URL 是否合法 2.URL 中的字符转换 3.HSTS列表 协议升级.相关文章 HSTS详解.在现代浏览器中,这一步有可能导致请求中止. 三.检查本地缓存,根据缓存情况决定下一步的动作 1. 强缓存(Cache-Control 和 Expires)   直接从本地缓存读取资源(若是这步,便没有下面的步骤) 2…
整个流程如下: 域名解析 为了将消息从你的PC上传到服务器 上.需要用到1P协议.ARP协议和0SPF协议 发起TCP的3次握手 建立TCP连接后发起http请求 服务器响应htp请求 浏览器解析htm代码,并请求html代码中的资源(如js.css.图片等) 断开TCP连接 浏览器对页面进行渲染呈现给用户 一.域名解析的详细内部过程 例如,要查询www.baidu.com的IP地址(DNS解析url): 浏览器搜索自己的DNS缓存(维护一张域名与IP地址的对应表) 若没有,则搜索操作系统中的D…
大致能分成两个部分:网络通信与页面渲染 一.网络通信 互联网各个网络设备间的通信均基于TCP/IP协议,此协议将整个过程进行分层,由上至下分别为: 应用层.传输层.网络层和数据链路层 1.输入URL 2.应用层用DNS解析域名(DNS协议) 解析url域名,检查本地是否有对应的IP地址,有则返回,没有则请求上级DNS服务器 备注:DNS domain name system,由解析器和域名服务器组成,主要用于解析域名为IP地址 3.应用层发送http请求(HTTP协议) http请求由请求报头与…
整个流程如下: 域名解析 为了将消息从你的PC上传到服务器上,需要用到IP协议.ARP协议和OSPF协议. 发起TCP的三次握手 建立TCP连接后发起HTTP请求 服务器响应HTTP请求 浏览器解析html代码,并请求HTML代码中的资源(如js.css.图片等) 断开TCP连接 浏览器对页面进行渲染呈现给用户 域名解析协议 比如要查询www.baidu.com的IP地址: 1.浏览器搜索自己的DNS缓存(维护一张域名与IP地址的对应表): 2.若没有,则搜索操作系统中的DNS缓存(维护一张域名…
域名DNS解析,解析到真正的IP地址             | 客户端与服务端建立TCP连接,3次握手 | 客户端发送Http请求 | server接收到http请求,处理,并返回 | 客户端接收到返回数据,处理数据(渲染页面,执行js)…
总体来说分为以下几个过程: 1.  DNS解析 2. TCP连接 3. 发送HTTP请求 4. 服务器处理请求并返回HTTP报文 5. 浏览器解析渲染页面 6. 连接结束 参考资料:[https://segmentfault.com/a/1190000006879700#articleHeader6]…
超文本传送协议(HyperText Transport Protocol,HTTP)是互联网上应用最为广泛的一种网络协议,它工作在应用层,使用TCP的80号端口提供服务.并且HTTP是工作在客户/服务器(C/S)模式下.基于TCP的协议.客户端是终端用户,服务端是网站服务器. 客户端通过使用Web浏览器.网络爬虫或其他工具,发起一个到服务器上指定端口(默认端口为80)的HTTP请求.一旦收到请求,服务器向客户端发送响应消息,消息的内容可能是请求的文件.错误消息或一些其他信息.客户端请求和连接端口…
IE中:document.body.clientWidth ==> BODY对象宽度document.body.clientHeight ==> BODY对象高度document.documentElement.clientWidth ==> 可见区域宽度document.documentElement.clientHeight ==> 可见区域高度FireFox中:document.body.clientWidth ==> BODY对象宽度document.body.cli…
1. 域名DNS解析 - 浏览器DNS缓存 - 系统DNS缓存 - 路由器DNS缓存 - 网络运营商DNS缓存 - 递归搜索...... 2. TCP连接: TCP三次握手 - 第一次握手,由浏览器发起,告诉服务器我要发送请求了 - 第二握手,由服务器发起,告诉浏览器我准备接受了,你赶紧发送吧 - 第三次握手,由浏览器发送,告诉服务器,我马上就发了,准备接受吧 3. 发送请求 - 请求报文:HTTP协议的通信内容 4. 接受响应 - 响应报文 5. 渲染页面 (1.解析html内容 产生dom树…
In this article, I want my readers to get a picture of a very basic concept of the web world. Previously, I've written articles on the fancy stuff of today's market, i.e. Angular journey, basics of react, etc. But, today, I want my readers to get int…
过程 1.DNS解析 2.TCP连接 3.发送HTTP请求 4.服务器处理请求并返回HTTP报文 5.浏览器解析渲染页面 6.连接结束…
摘录部分一:https://www.cnblogs.com/kongxy/p/4615226.html 从输入URL到浏览器显示页面发生了什么 当在浏览器地址栏输入网址,如:www.baidu.com后浏览器是怎么把最终的页面呈现出来的呢? 这个过程可以大致分为两个部分:网络通信和页面渲染. 一.网络通信 互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信. 分层由高到低分别为:应用层.传输层.网络层.数据链路层.发送端从应用层往…
之前我们已经讨论过浏览器的渲染原理,今天我们来讨论下更广泛的从输入URL到渲染出页面的过程. 1. 查询该URL是否有缓存 如果有,则直接返回,没有的话,下一步 2. 查询URL对应的IP 首先,到 host 文件查找,如果找到则返回. 如果没有找到,去访问 DNS 服务器(一般先访问本地路由器,没有再访问更高级的 DNS 服务器),最终得到对应的 IP 3. 建立 TCP 连接 首先,通过 IP 协议,指定 出发地 和 目的地 然后,通过 OSPF 协议,计算路由的最佳路径,得到路过的每个路由…
当在浏览器地址栏输入网址,如:www.baidu.com后浏览器是怎么把最终的页面呈现出来的呢?这个过程可以大致分为两个部分:网络通信和页面渲染. 一.网络通信 互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信.分层由高到低分别为:应用层.传输层.网络层.数据链路层.发送端从应用层往下走,接收端从数据链路层网上走.如图所示: 1. 在浏览器中输入url 用户输入url,例如http://www.baidu.com.其中http为…
备注: 因为文章太长,所以将它分为三部分,本文是第三部分. 第一部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1 第二部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 2 第三部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 3 HTTP/HTTPS请求和响应 前面TCP连接已经建立好了,意味着桥已经搭好了,下一步就该传输HTTP消息了.因为HTTP我们都很熟悉,很常见,也不是那么底层,理解起来轻…
用户从输入 url 到浏览器响应,呈现给用户的具体过程 1.用户在输入栏输入地址 (1) 如果有 beforeunload 事件会先执行判断继续还是跳出操作 (2) 浏览器进程识别是 地址还是关键字检索 (3) 将正确的 url 地址发送给网络进程 2.网络进程查看有没有缓存 (1) 有缓存直接返回数据 (2) 没有缓存直接进入网络进程请求流程 3.浏览器进程查询 DNS 获取服务器 ip 地址 (1) 如果请求协议是 https 那么还需要建立TLS连接 (2) 利用ip地址和服务器建立 tc…