从输入URL到页面加载完成的过程中都发生了什么事情?--这是一个经典的面试题: 主要是关于计算机网络方面的知识基础,对于非科班计算机自学web开发的同学可能理解起来就很困难. StackOverFlow上有一个简要回答: http://stackoverflow.com/questions/2092527/what-happens-when-you-type-in-a-url-in-browser Piskvor的回答: 作一个简单粗暴的描述,假设是简单的HTTP请求,IPV4,没有代理. 1.…
这个问题是老生常谈的问题啦,虽然说到处百度都有的答案,还是希望自己能总结一下. 如今有很多答案,都是从硬件开始讲起,比如键盘的响应或者触屏的响应,然后CPU处理到OS的内核等等.这里不作为重点来讲,要是有兴趣的同学给你一个传送门:FEX--从输入 URL 到页面加载完成的过程中都发生了什么事情? 解析url 首先很多浏览器会做预处理,特别是Chrome.预处理也就是,通过分析您将要访问的url,提前建立TCP链接或者渲染.而给用户的体验,就是输入完Url后页面瞬间加载完成,怪不得Chrome会给…
该问题总结 一. 往浏览器输入URL后给你一个页面,你天天在使用的东西,学过计算机网络的知道是怎么回事,就DNS解析然后页面的回馈,不过要讲好还是有难度. 之前fex团队的nwind专门写过这个问题的博客: http://fex.baidu.com/blog/2014/05/what-happen/ 厉害的地方是将整个计算机体系和硬件都涉及进来,很广很深,太强大了. 然后找到一个StackOverFlow的答案: what happens when you type in a URL in br…
第一个问题:从输入 URL 到浏览器接收的过程中发生了什么事情? 从触屏到 CPU 首先是「输入 URL」,大部分人的第一反应会是键盘,不过为了与时俱进,这里将介绍触摸屏设备的交互. 触摸屏一种传感器,目前大多是基于电容(Capacitive)来实现的,以前都是直接覆盖在显示屏上的,不过最近出现了 3 种嵌入到显示屏中的技术,第一种是 iPhone 5 的 In-cell,它能减小了 0.5 毫米的厚度,第二种是三星使用的 On-cell 技术,第三种是国内厂商喜欢用的 OGS 全贴合技术,具体…
为了便于理解,我将整个过程分为了六个问题来展开. 第一个问题:从输入 URL 到浏览器接收的过程中发生了什么事情? 从触屏到 CPU 首先是「输入 URL」,大部分人的第一反应会是键盘,不过为了与时俱进,这里将介绍触摸屏设备的交互. 触摸屏一种传感器,目前大多是基于电容(Capacitive)来实现的,以前都是直接覆盖在显示屏上的,不过最近出现了 3 种嵌入到显示屏中的技术,第一种是 iPhone 5 的 In-cell,它能减小了 0.5 毫米的厚度,第二种是三星使用的 On-cell 技术,…
1) 把URL分割成几个部分:协议.网络地址.资源路径.其中网络地址指示该连接网络上哪一台计算机,可以是域名或者IP地址,可以包括端口号:协议是从该计 算机获取资源的方式,常见的是HTTP.FTP,不同协议有不同的通讯内容格式:资源路径指示从服务器上获取哪一项资源. 例如:http://www.guokr.com/question/554991/ 协议部分:http 网络地址:www.guokr.com 资源路径:/question/554991/ 2)如果地址不是一个IP地址,通过DNS(域名…
想要更加了解http协议,猛戳这里 1)把URL分割成几个部分:协议.网络地址.资源路径.其中网络地址指示该连接网络上哪一台计算机,可以是域名或者IP地址,可以包括端口号:协议是从该计算机获取资源的方式,常见的是HTTP.FTP,不同协议有不同的通讯内容格式:资源路径指示从服务器上获取哪一项资源.例如:http://www.guokr.com/question/554991/协议部分:http网络地址:www.guokr.com资源路径:/question/554991/ 2)如果地址不是一个I…
这是一个前端的经典面试题,很多大公司面试时都会被问及,涉及的面也是非常多. 一般会经历以下几个过程: 1.首先,在浏览器地址栏中输入url 2.浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容.若没有,则跳到第三步操作. 3.在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址. 4.浏览器向服务器发起tcp连接(TCP是一种面向有连接的传输层协议),与浏览器建立tcp三次握手. 三次握手过程: 第一次握手,请求建立连接,发送端发送连接请…
原帖地址:http://www.guokr.com/question/554991/ 1)把URL分割成几个部分:协议.网络地址.资源路径.其中网络地址指示该连接网络上哪一台计算机,可以是域名或者IP地址,可以包括端口号:协议是从该计算机获取资源的方式,常见的是HTTP.FTP,不同协议有不同的通讯内容格式:资源路径指示从服务器上获取哪一项资源.例如:http://www.guokr.com/question/554991/协议部分:http网络地址:www.guokr.com资源路径:/que…
过程概述 浏览器查找域名对应的 IP 地址: 浏览器根据 IP 地址与服务器建立 socket 连接: 浏览器与服务器通信: 浏览器请求,服务器处理请求: 浏览器与服务器断开连接. 以下为详细解析: 根据域名查找 IP 地址 概念解释 IP 地址:IP 协议为互联网上的每一个网络和每一台主机分配的一个逻辑地址.IP 地址如同门牌号码,通过 IP 地址才能确定一台主机位置.服务器本质也是一台主机,想要访问某个服务器,必须先知道它的 IP 地址: 域名( DN ):IP 地址由四个数字组成,中间用点…
把URL分割成几个部分:协议(http, https).网络地址(xxx.xxx.xxx.xxx).资源路径(/xxx/xxx.xx).端口号(默认80). 如果地址不是一个IP地址,通过DNS(域名系统)将该地址解析成IP地址. 向2和3确定的IP和端口号发起网络连接. 根据http协议要求,组织一个请求的数据包,里面包含大量请求信息(包括请求的资源路径.你的身份等). 服务器响应请求,将数据返回给浏览器.数据可能是根据HTML协议组织的网页,里面包含页面的布局.文字.数据也可能是图片.脚本程…
从输入 URL 到页面加载完成的过程中都发生了什么 过程描述 浏览器查找域名对应的 IP 地址: 浏览器根据 IP 地址与服务器建立 socket 连接: 浏览器与服务器通信: 浏览器请求,服务器处理请求: 浏览器与服务器断开连接. 根据域名查找IP地址 概念解析 IP地址:IP协议为互联网上的每一个网络和每一台主机分配的一个逻辑地址.IP地址如同门牌号码,通过 IP地址才能确定一台主机位置.服务器本质也是一台主机,想要访问某个服务器,必须先知道它的IP地址: 域名(HOST):IP 地址由四个…
这篇文章是转载自:安度博客,http://www.itbbu.com/1490.html 在很多地方看到,感觉不错,理清了自己之前的一些思路,特转过来留作记录. 一个HTTP请求的过程 为了简化我们先从一个HTTP请求开始,简要介绍一下一个HTTP求情的网络传输过程,也就是所谓的“从输入 URL 到页面下载完的过程中都发生了什么事情”,直白点就是:输入网址到打开网页这个过程中都发生了什么,你不知道的事情. ● DNS Lookup 先获得URL对应的IP地址 ● Socket Connect 浏…
从输入 URL 到页面加载完成的过程中都发生了什么事情? 这是一道经典的面试题,涉及面非常广,要答出来并不困难,当要将问题回答好却不是那么容易 过程概述 浏览器查找域名对应的 IP 地址: 浏览器根据 IP 地址与服务器建立 socket 连接: 浏览器与服务器通信: 浏览器请求,服务器处理请求: 浏览器与服务器断开连接. 详细解析 1.浏览器接收URL URL包含的信息:协议.网络地址:端口号.资源路径.查询字符串?.片段标识符# 2.将URL与缓存进行比对如果请求的页面在缓存中且未过期,则直…
一.前言 这道题的覆盖面可以非常广,很适合作为一道承载知识体系的题目.每一个前端人员,如果要往更高阶发展,必然会将自己的知识体系梳理一遍,没有牢固的知识体系,无法往更高处走! 二.主干流程 在将浏览器渲染原理.JS运行机制.JS引擎解析流程梳理一遍后,感觉就跟打通了任督二脉一样,有了一个整体的架构,以前的知识点都连贯起来了. 1.从浏览器接收url到开启网络请求线程(涉及到:浏览器机制,线程和进程之间的关系等) 2.开启网络线程到发出一个完整的http请求(涉及到:dns查询,tcp/ip请求,…
过程概述 1.浏览器查找域名对应的IP地址 2.浏览器根据IP地址与服务器建立socket连接 3.浏览器与服务器通信:浏览器请求,服务器处理请求和响应 4.浏览器与服务器断开连接 具体过程 1.搜索自身的DNS缓存 2.搜索操作系统自身的DNS缓冲 3.读取本地的HOST文件 4.浏览器发起一个DNS的系统调用 DNS叫做域名系统:由解析器和域名服务器组成,域名服务器保存着该网络中所有主机的域名和对应的IP地址,域名有唯一对应的IP地址,但是IP地址不一定对应一个域名,我们就是根据DNS来上网…
转:https://www.cnblogs.com/confach/p/10050013.html 背景 “从浏览器中输入URL到页面加载的发生了什么“,这是一道经典的面试题,涉及到的知识面非常多,但作为一个自认为对网络知识掌握的比较好的老码农来说,回答这个问题自然不在话下.如果这道题目如果在面试出现,对我来说就是送分题啊.尽管如此,我还是愿意花一些时间根据我自己的理解回答一下这个题目,看我自己到底掌握的有多深,同时也把自己的知识梳理一下. 这让我想起另外一件往事,这道题有点类似于“在手机上浏览…
[ASP.NET Core]EF Core - “影子属性”   有朋友说老周近来博客更新较慢,确实有些慢,因为有些 bug 要研究,另外就是老周把部分内容转到直播上面,所以写博客的内容减少了一点. 老周觉得,视频直播可能会好一些,虽然我的水平一般,不过直播时,老周可以现场演示,可能会比看博客效果要好(因为现场演示,有时候会有失误,没办法,水平有限).还有一个,就是.NET 的资料其实很多,毕竟也发展了十几年了,有些东西如果别人都写过了,那我也不好意思重复了..NET Core 尽管是跨平台版本…
前面的话 本文将详细介绍从输入URL到页面加载的全过程 概述 从输入URL到页面加载的主干流程如下: 1.浏览器构建HTTP Request请求 2.网络传输 3.服务器构建HTTP Response 响应 4.网络传输 5.浏览器渲染页面 构建请求 1.应用层进行DNS解析 通过DNS将域名解析成IP地址.在解析过程中,按照浏览器缓存.系统缓存.路由器缓存.ISP(运营商)DNS缓存.根域名服务器.顶级域名服务器.主域名服务器的顺序,逐步读取缓存,直到拿到IP地址 这里使用DNS预解析,可以根…
备注: 因为文章太长,所以将它分为三部分,本文是第三部分. 第一部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1 第二部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 2 第三部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 3 HTTP/HTTPS请求和响应 前面TCP连接已经建立好了,意味着桥已经搭好了,下一步就该传输HTTP消息了.因为HTTP我们都很熟悉,很常见,也不是那么底层,理解起来轻…
第一种解释: 一般会经历以下几个过程: 1.首先,在浏览器地址栏中输入url 2.浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容.若没有,则跳到第三步操作. 3.在发送http请求前,需要域名解析(DNS解析)(DNS(域名系统,Domain Name System)是互联网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住IP地址.),解析获取相应的IP地址. 4.浏览器向服务器发起tcp连接,…
大体过程 浏览器的地址栏输入URL并按下回车 浏览器检查当前URL是否存在缓存,并比较缓存是否过期 DNS解析URL对应的IP 根据IP建立TCP连接(三次握手) HTTP发起请求 服务器处理请求,浏览器接收HTTP响应 渲染页面,构建DOM树 关闭TCP连接(4次挥手) 具体过程的理解 浏览器缓存 大体上来说,可以分为强缓存和协商缓存 强缓存 强缓存主要通过http响应头中的==Cache-Control==和==Expires==两个字段来控制的 Expires: Wed, 21 Oct 2…
一个页面从输入URL到页面加载完成发生了... 1.查找浏览器缓存 2.寻址:DNS解析 查找该域名对应的IP地址, 如果需要重定向(301),则再次发起请求 3. 进行HTTP协议会话 4.客户端发送请求报头 5. 服务器响应报头 html文档开始下载 文档树建立,根据标记请求所需指定MIME类型的文件 文件显示 ------------------- 浏览器这边的工作大致分为: 加载: 根据请求的URL进行域名解析,想服务器发起请求,接收文件(HTML.css.js.图片等). 解析:对加载…
一.从输入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记录一段时…
很多初学网络或者前端的初学者大多会有这样一个疑问:从输入URL到页面加载完成到底发生了什么?总的来说,这个过程分为下面几个步骤:1.DNS解析2.与服务器建立连接3.服务器处理并返回http报文4.浏览器解析渲染页面 过程 DNS解析 DNS解析的过程就是寻找哪台机器上有你需要资源的过程.当你在浏览器中输入一个地址时,例如www.baidu.com,其实不是百度网站真正意义上的地址.互联网上每一台计算机的唯一标识是它的IP地址,但是IP地址并不方便记忆.用户更喜欢用方便记忆的网址去寻找互联网上的…
前言 见解有限,如有描述不当之处,请帮忙指出,如有错误,会及时修正. 为什么要梳理这篇文章? 最近恰好被问到这方面的问题,尝试整理后发现,这道题的覆盖面可以非常广,很适合作为一道承载知识体系的题目. 关于这道题目的吐槽暂且不提(这是一道被提到无数次的题,得到不少人的赞同,也被很多人反感),本文的目的是如何借助这道题梳理自己的前端知识体系! 窃认为,每一个前端人员,如果要往更高阶发展,必然会将自己的知识体系梳理一遍, 没有牢固的知识体系,无法往更高处走! 展现形式:本文并不是将所有的知识点列一遍,…
这是一道经典的面试题,这道面试题不光前端面试会问到,后端面试也会被问到.这道题没有一个标准的答案,它涉及很多的知识点,面试官会通过这道题了解你对哪一方面的知识比较擅长,然后继续追问看看你的掌握程度.当然我写的这些也只是我的一些简单的理解,从前端的角度出发,我觉得首先回答必须包括几个基本的点,然后在根据你的理解深入回答. 1.浏览器的地址栏输入URL并按下回车. 2.浏览器查找当前URL是否存在缓存,并比较缓存是否过期. 3.DNS解析URL对应的IP. 4.根据IP建立TCP连接(三次握手).…
这是一道经典的面试题,这道题没有一个标准的答案,它涉及很多的知识点,面试官会通过这道题了解你对哪一方面的知识比较擅长,然后继续追问看看你的掌握程度.当然我写的这些也只是我的一些简单的理解,从前端的角度出发,我觉得首先回答必须包括几个基本的点,然后在根据你的理解深入回答. 1.浏览器的地址栏输入URL并按下回车. 2.浏览器查找当前URL是否存在缓存,并比较缓存是否过期. 3.DNS解析URL对应的IP. 4.根据IP建立TCP连接(三次握手). 5.HTTP发起请求. 6.服务器处理请求,浏览器…
对于网址栏的URL不同的操作方式有不同的加载资源.获取数据的方式,下面的详细过程针对"在地址栏输入URL,按enter(回车)键加载资源"此种操作方式做解析,其它的方式的过程大同小异,差异会在后面再做分析. 1. 浏览器开启一个线程来处理这个请求,对URL判断如果是http协议就按照web方式处理: 2. 浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容(此时没有向服务端发请求).若没有,则进行下一步操作(后面需要向服务端发送请求): 3. 通过D…
前端面试/笔试必考问题,越详细越好 先简单得讲: 浏览器根据请求的URL交给DNS域名解析,找到真实IP,向服务器发起请求: 服务器交给后台处理完成后返回数据,浏览器接收文件(HTML.JS.CSS.图象等): 浏览器对加载到的资源(HTML.JS.CSS等)进行语法解析,建立相应的内部数据结构(如HTML的DOM): 载入解析到的资源文件,渲染页面,完成. 详细得说: 1.当发送一个URL请求时,不管这个URL是Web页面的URL还是Web页面上每个资源的URL,浏览器会开启一个线程来处理这个…