精华内容
下载资源
问答
  • 在浏览器地址栏输入地址到按下回车之后到底都发生了什么?
    2020-08-04 22:04:03

    遇见这个题好久了,看到很多答案,有很多坑也有很多精华,在这里整理出自己的答案~如果有哪些步骤不合理或者存在问题希望小可爱们指正~

    • 在浏览器地址栏输入地址的时候,浏览器就已经在从书签或者历史记录等地方中查询并进行智能补全。同时浏览器对用户输入的网址做初步的格式化检查,只有通过以上检查才会进入下一步。
    • DNS查询:
      (1)按下回车后首先会检查浏览器中是否有缓存,如果有且未过期那么直接返回,否则
      (2)会去查找系统运行内存中的缓存,过程同上,如果依旧没有
      (3)会去查找本地的hosts文件配置,如果仍无对应地址的IP会去请求
      (4)本地的网络服务提供商(ISP),因为一些ISP也会提供缓存服务,如果依旧没有本地的DNS会去
      (5)请求根域名服务器 (比如baidu.com.其完整写法应该是后边有一个点,那个点叫根域名服务器,全球一共13台,DNS服务器知道这13台根域名服务器的地址。) ,但是根域名服务器并不知道具体的IP地址,它将会返回它下一级的域名服务器即顶级域名服务器 ( 顶级域名是国家通用比如.com.cn.org 等) 地址给本地的DNS,
      (6)本地的DNS会去请求顶级域名服务器,顶级域名服务器会返回给他下一级域名服务器的地址
      (7)本地域名服务器会通过迭代最终查询到网址对应的IP返回给客户端
    • 建立连接: 客户端与服务器通过三次握手建立连接(详情见之前的笔记)
    • 发送请求: 连接建立以后开始http请求,发送请求报文。请求报文一般包括请求行:包含请求的方法、协议等;请求头:一些附加的信息,一般以键值对的形式存在,比如设置服务器缓存等等;空行:是请求头和请求主体之间必须的;请求主体:传给后端的参数。
    • 接收响应:在接收到客户端的请求并解释之后会返回给客户端HTTP响应,响应报文格式类似请求报文。
    • 渲染页面:
      (1)解析html,构建DOM树
      (2)解析css,构建CSS规则树
      (3)合并DOM和CSS规则树,生成render渲染树
      (4)布局render树,包括位置、尺寸信息等
      (5)绘制render树,包括页面像素信息等等
      (6)浏览器会将各层的信息发送给 GPU,GPU 会将各层合成( composite ),显示在屏幕上
      ⚠️在文档请求不完全的情况下就开始渲染页面,同时,如果在解析的过程中遇到script的时候,文档的解析将会停止下来,立即解析执行脚本,如果脚本是外部的,则会等待请求完成并解析执行。所以,为了不阻塞页面地呈现,一般会把script脚本放在文档的最后。
    • 断开连接: 通过四次挥手断开连接(具体四次挥手过程详见之前的笔记)

    过程中用到的协议:
    (1) 应用层:HTTP(WWW访问协议),DNS(域名解析服务)
    (2) 传输层:TCP(为HTTP提供可靠的数据传输),UDP(DNS使用UDP传输)
    (3) 网络层:IP(IP数据数据包传输和路由选择),ICMP(提供网络传输过程中的差错检测),ARP(将本机的默认网关IP地址映射成物理MAC地址)

    更多相关内容
  • 这也是一个面试的时候经常出现的问题,下面说一下简略版和详细版的回答,以防止追问。...检查浏览器缓存看有没有对应与主机名(如www.taobao.com)的IP地址,有就返回,如果没有进行下一步 查找本机的

    这也是一个面试的时候经常出现的问题,下面说一下简略版和详细版的回答,以防止追问。
    简略版:

    1. 通过DNS(域名解析服务器)获得IP地址
    2. 首先尝试与http默认端口80建立TCP连接(http是是基于TCP之上的)
    3. 如果协议是https那么需要转换协议为https
    4. 连接建立后服务器发送html文本
    5. 浏览器显示html文本

    其中的一些解释:

    1. 域名解析:真实过程非常复杂,主要步骤如下:

      1. 检查浏览器缓存看有没有对应与主机名(如www.taobao.com)的IP地址,有就返回,如果没有进行下一步
      2. 查找本机的hosts文件,hosts文件就是存储了主机名和IP地址的映射关系的文件,有就返回,如果没有进行下一步
      3. 向本地DNS服务器查询(本地DNS服务器:一个居民区或一个机构的ISP都有一个DNS服务器),有就返回,如果没有进行下一步,这一步的查询是递归查询
      4. 本地DNS服务器查询不到,就去向根DNS服务器查询,根DNS服务器会向本地DNS服务器返回负责的顶级域DNS(TLD top-level domain DNS)IP列表,本地DNS服务器继续向TLD DNS服务器发送查询报文,TLD DNS服务器返回相应的权威服务器的IP,本地DNS服务器继续向权威服务器发送查询报文,权威服务器把最终查询到的结果返回给本地DNS服务器,本地DNS服务器将查询到的结果返回给请求主机。这一步的查询是迭代查询,因为所有的查询结果都返回给本地DNS服务器。
        上述过程就是计算机网络书中介绍的过程。
        在这里插入图片描述
    2. http重定向:参见https://blog.csdn.net/cswhl/article/details/110183132

    参考资料:
    计算机网络:自顶向下方法 7th edition

    展开全文
  • Content-Type的值),根据不同的资源类型采用不同的解析方式 渲染页面 一般来说从地址栏输入地址后,绝大多是情况下响应的都是 html文件,那么就说以说页面是如何渲染html页面的,html页面一般也会嵌入css,js,...

    作者 | peach
    来源 | https://juejin.cn/post/6896844956284125191

    这个问题是一个非常普遍且经典的问题,一个合格的web程序员必须要搞懂的问题!

    详解

    解析url

    浏览器通过地址栏捕获到url地址之后,首先对url地址进行解析。url的解析如下图所示:

    一个完整的url,包含上述几部分,协议部分一般都是 http或者https。域名部分可以是 一段域名例如:baidu.com 也可以是 ip地址,域名最后也会被解析为ip地址。

    该ip地址的作用就是在互联网中确定服务器的位置,紧接着是端口后,端口号确定的是在服务器中运行的具体的程序。路径部分表示的是在该程序中资源的具体标识,查询参数作用主要是为了发送数据。

    DNS解析

    一般域名都需要从运营商购买,因为ip地址不方便记忆,域名比较好记。域名都会和ip地址绑定,那么,在这里就需要做DNS解析,所谓DNS解析其实就是,根据域名找到其绑定的 ip地址。

    查找的顺序如下图:

    DNS的查找过程解析:

    1. 浏览器会先检查是否存在缓存,因为如果访问过一次该域名的话,会把结果缓存在浏览器中。

    2. 操作系统也会有自己的DNS缓存,但在这之前,会检查域名是否存在于本地的Hosts文件中。

    3. 路由器中也会有自己的缓存。

    4. IPS DNS缓存 就是在客户端电脑上设置的首选DNS服务器。

    5. 在前边所有的情况下都没有找到缓存的情况下,会连接互联网,把请求转发到互联网的根域。

    下图展示了DNS的一个查询过程

    TCP连接

    确定好目标服务器的ip地址和端口号后,就开始和远程服务器建立TCP链接。三次我说的过程如下:

    • 发送方:发送消息,等待...

    • 接收方:接收消息,并给发送方回信,此时发送方接收到消息后,从发送方的角度就可明白自己的消息是可以发过去的。但是接收方还不能确定自己的消息是否可以正常发送。

    • 发送方:接收到发送方的回信后,在给接收方发一个消息,此时从接收方的角度就能明白自己的消息可以可以正常发送。

    画成图如下:

    TCP三次握手的好处在于的好处在于,发送方可以确认接收方仍然在线

    发送http请求

    http协议是建立在tcp/ip协议之上的,tcp保证连接通畅,http就可以正常的进行请求和响应了。首先http请求是一个无状态的请求,且只能由浏览器主动发起,服务器进行响应。

    浏览器发送请求的报文会携带以下信息:

    • 请求路径

    • 查询参数

    • 请求方法

    • 请求头

    • 请求体

    服务器接收请求

    在服务端会监听浏览器端发送的http请求,当浏览器的请求发出后,服务端就会接受该请求,并解析出相应的信息,选择对应的逻辑进行处理(比如:查找对应的静态页面,保存文件,操作数据库,转发....),并将处理的结果响应给浏览器端。

    node服务器的一个简单例子如下:

    const http = require('http'); // 引入http模块
    const server = http.createServer((req, res) => {  // req保存了浏览器携带的信息    // 解析出req的相关信息,比如 路径 请求方法 请求头 请求体等    // 编写服务端逻辑处理代码    // 响应    res.end();})
    server.listen(3000, () => console.log('::3000'));
    // 假设该程序巡行在 ip地址为 140.143.201.230的服务器上// 假设 140.143.201.230 绑定的域名是 www.aabbcc.com// 那么请求地址 可以为   http://www.aabbcc.com:3000/home
    // 当浏览器请求 http://www.aabbcc.com:3000/home之后,会DNS解析到服务器的ip地址为140.143.201.230,那么上述http.createServer接收的回调函数就会执行。
    
    

    服务器响应

    服务器执行完逻辑之后,需要给浏览器响应内容(无论是要从服务器获取数据,还是在服务器做了什么操作,都需要给浏览器一个响应)

    响应一般包含以下几部分

    • 状态码

    • 状态文本

    • 响应头

    • 响应体

    服务器响应的同时肯定会伴随着浏览器端接收,等浏览器端彻底接收完毕之后,TCP就要进行4次挥手,并断开连接了。

    TCP链接断开

    TCP链接的断开需要经过"四次挥手",那么就需要一方主动的释放另外一方被动的释放。大体的过程如下:

    1. 浏览器端发消息通知服务器现在需要断开(第一次挥手)

    2. 服务器接到要断开的请求之后,给浏览器返回消息,告诉浏览器我正在准备释放(第二次挥手)

    3. 此时浏览器接到消息后正在等待服务器释放完成,而服务器正在准备释放的过程

    4. 当服务器释放完成后,再通知浏览器我已经释放完成了。(第三次挥手)

    5. 浏览器接收到服务器释放完成的消息后,再给服务器发送消息告诉服务器我已经知道你释放完成了,服务器收到消息后,就能确认自己释放完成的消息已经通知到了(第四次挥手)

    浏览器解析资源

    当浏览器接收到服务器响应的资源后,会对资源进行解析。

    1. 首先,查看Response Header,根据响应头的指示做不同的事情,比如重定向,存储cookie,解压gzip,缓存资源等等。

    2. 接下来获取MIME类型(查看响应头的 Content-Type的值),根据不同的资源类型采用不同的解析方式

    渲染页面

    一般来说从地址栏输入地址后,绝大多是情况下响应的都是 html文件,那么就说以说页面是如何渲染html页面的,html页面中一般也会嵌入css,js,图片等资源。

    因此如果解析到这些资源的时候,会再次向目标服务器发起请求,那么又会经历从解析url地址开始的各个步骤。

    整个页面的加载如下图所示:

    html页面的加载

    首先要知道浏览器解析是从上往下一行一行地解析的。

    1. 解码:传输回来的其实都是一些二进制字节数据,浏览器需要根据文件指定编码(例如UTF-8)转换成字符串,也就是HTML 代码

    2. 预解析:预解析做的事情是提前加载资源,减少处理时间,它会识别一些会请求资源的属性,比如img标签的src属性,并将这个请求加到请求队列中。

    3. 符号化:符号化是词法分析的过程,将输入解析成符号,HTML 符号包括,开始标签、结束标签、属性名和属性值。它通过一个状态机去识别符号的状态,比如遇到<,>状态都会产生变化。

    4. 构建树:在上一步符号化中,解析器获得这些标记,然后以合适的方法创建DOM对象并把这些符号插入到DOM对象中。

    浏览器的容错机制:你从来没有在浏览器看过类似”语法无效”的错误,这是因为浏览器去纠正错误的语法,然后继续工作。

    CSS解析

    一旦浏览器下载了 CSS,CSS 解析器就会处理它遇到的任何 CSS,根据语法规范解析出所有的 CSS 并进行标记化,然后我们得到一个规则表。

    在匹配一个节点对应的 CSS 规则时,是按照从右到左的顺序的,例如:div p { font-size :14px }会先寻找所有的p标签然后判断它的父元素是否为div。

    所以我们写 CSS 时,尽量用 id 和 class,千万不要过度层叠。

    javaScript编译执行

    大致流程如下:

    主要是三个阶段

    1. 词法分析:js脚本加载完毕后,会首先进入语法分析阶段,它首先会分析代码块的语法是否正确,不正确则抛出“语法错误”,停止执行。

    2. 预编译:js有三种运行环境分别是 全局环境,函数环境,eval。每进入一个不同的运行环境都会创建一个对应的执行上下文,根据不同的上下文环境,形成一个函数调用栈,栈底永远是全局执行上下文,栈顶则永远是当前执行上下文。

    3. 执行:js虽然是单线程的,但是实际参与工作的线程一共有四个:JS引擎线程(主),事件触发线程,定时器触发线程,HTTP异步请求线程

    总结

    从浏览地地址栏输入地址按下回车,可以看做是一次请求的发起,那么必然会经历以下几个步骤:

    1. 解析url地址

    2. DNS解析

    3. TCP链接

    4. 发送http请求

    5. 服务器接收请求

    6. 服务器响应

    7. TCP链接断开

    8. 浏览器解析资源

    那么我们需要明白,浏览器可以发送请求的方式不止地址栏输入地址这一种。比如a标签,img,link,script,form表单,ajax,fetch等等,这些方式都可以发出http请求,那么他们都会经历上述的过程,最终拿到资源,只是拿到资源的类型不一样,那么浏览器的处理方式也不一样。

    本文完~

    展开全文
  • 当我们在浏览器地址栏输入www.cnblogs.com,然后回车,回车到看到页面到底发生了什么呢? 域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 -...

     

    当我们在浏览器的地址栏输入 www.cnblogs.com ,然后回车,回车到看到页面到底发生了什么呢?

    域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户

    一、域名解析

    首先Chrome浏览器会解析www.cnblogs.com这个域名对应的IP地址。怎么解析到对应的IP地址?

    1. Chrome浏览器会首先搜索浏览器的DNS缓存(缓存时间比较短,TTL默认是1000,且只能容纳1000条缓存),看自身的缓存中是否有www.cnblogs.com对应的条目,而且没有过期,如果有且没有过期则解析到此结束。

      注:我们怎么查看浏览器的DNS缓存?可以使用 chrome://net-internals/#dns 来进行查看
    2. 如果浏览器自身的缓存里面没有找到对应的条目,那么Chrome会搜索操作系统的DNS缓存,如果找到且没有过期则停止搜索解析到此结束。

      注:怎么查看操作系统的DNS缓存,以Windows系统为例,可以在命令行下使用 ipconfig /displaydns 来进行查看
    3. 如果在Windows系统的DNS缓存也没有找到,那么尝试读取hosts文件(位于C:\Windows\System32\drivers\etc),看看这里面有没有该域名对应的IP地址,如果有则解析成功。
    4. 如果在hosts文件中也没有找到对应的条目,浏览器就会发起一个DNS的系统调用,就会向本地配置的首选DNS服务器(一般是电信运营商提供的,也可以使用像Google提供的DNS服务器)发起域名解析请求(通过的是UDP协议向DNS的53端口发起请求,这个请求是递归的请求,也就是运营商的DNS服务器必须得提供给我们该域名的IP地址),运营商的DNS服务器首先查找自身的缓存,找到对应的条目,且没有过期,则解析成功。如果没有找到对应的条目,则有运营商的DNS代我们的浏览器发起迭代DNS解析请求,它首先是会找根域的DNS的IP地址(这个DNS服务器都内置13台根域的DNS的IP地址),找打根域的DNS地址,就会向其发起请求(请问www.cnblogs.com这个域名的IP地址是多少啊?),根域发现这是一个顶级域com域的一个域名,于是就告诉运营商的DNS我不知道这个域名的IP地址,但是我知道com域的IP地址,你去找它去,于是运营商的DNS就得到了com域的IP地址,又向com域的IP地址发起了请求(请问www.cnblogs.com这个域名的IP地址是多少?),com域这台服务器告诉运营商的DNS我不知道www.cnblogs.com这个域名的IP地址,但是我知道www.cnblogs.com这个域的DNS地址,你去找它去,于是运营商的DNS又向www.cnblogs.com这个域名的DNS地址(这个一般就是由域名注册商提供的,像万网,新网等)发起请求(请问www.cnblogs.com这个域名的IP地址是多少?),这个时候cnblogs.com域的DNS服务器一查,果真在我这里,于是就把找到的结果发送给运营商的DNS服务器,这个时候运营商的DNS服务器就拿到了www.cnblogs.com这个域名对应的IP地址,并返回给Windows系统内核,内核又把结果返回给浏览器,终于浏览器拿到了www.cnblogs.com对应的IP地址,该进行一步的动作了。

    DNS递归解析图如下所示:
    DNS递归解析图
    DNS迭代解析图如下所示:
    DNS迭代解析图
    注:一般情况下是不会进行以下步骤的,如果经过以上的4个步骤,还没有解析成功,那么会进行如下步骤:

    1. 操作系统就会查找NetBIOS name Cache(NetBIOS名称缓存,就存在客户端电脑中的),那这个缓存有什么东西呢?凡是最近一段时间内和我成功通讯的计算机的计算机名和Ip地址,就都会存在这个缓存里面。什么情况下该步能解析成功呢?就是该名称正好是几分钟前和我成功通信过,那么这一步就可以成功解析。

    2. 如果第5步也没有成功,那会查询WINS 服务器(是NETBIOS名称和IP地址对应的服务器)

    3. 如果第6步也没有查询成功,那么客户端就要进行广播查找

    4. 如果第7步也没有成功,那么客户端就读取LMHOSTS文件(和HOSTS文件同一个目录下,写法也一样)

    如果第八步还没有解析成功,那么这次解析失败,那就无法跟目标计算机进行通信。只要这八步中有一步可以解析成功,那就可以成功和目标计算机进行通信。

    二、发起TCP的3次握手

    拿到域名对应的IP地址之后,User-Agent(一般是指浏览器)会以一个随机端口(1024 < 端口 < 65535)向服务器的WEB程序(常用的有tomcat,nginx等)80端口发起TCP的连接请求。这个连接请求(原始的http请求经过TCP/IP4层模型的层层封包)到达服务器端后(这中间通过各种路由设备,局域网内除外),进入到网卡,然后是进入到内核的TCP/IP协议栈(用于识别该连接请求,解封包,一层一层的剥开),还有可能要经过Netfilter防火墙(属于内核的模块)的过滤,最终到达WEB程序,最终建立了TCP/IP的连接。如下图:

    TCP三次握手

    注:TCP三次握手详解

    三、建立TCP连接后发起http请求

    HTTP请求报文的方法是get方式,如果浏览器存储了该域名下的Cookies,那么会把Cookies放入HTTP请求头里发给服务器。

    下面是Chrome发起的http请求报文头部信息:

    GET / HTTP/1.1
    Host: www.cnblogs.com
    Connection: keep-alive
    Cache-Control: max-age=0
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
    Referer: http://www.cnblogs.com/wupeixuan/
    Accept-Encoding: gzip, deflate, br
    Accept-Language: zh-CN,zh;q=0.9

    四、服务器端响应http请求,浏览器得到html代码

    服务器端WEB程序接收到http请求以后,就开始处理该请求,处理之后就返回给浏览器html文件。

    用Chrome浏览器看到的响应头信息:

    HTTP/1.1 200 OK
    Date: Sun, 08 Apr 2018 10:51:00 GMT
    Content-Type: text/html; charset=utf-8
    Transfer-Encoding: chunked
    Connection: keep-alive
    Vary: Accept-Encoding
    Cache-Control: public, max-age=29
    Expires: Sun, 08 Apr 2018 10:51:29 GMT
    Last-Modified: Sun, 08 Apr 2018 10:50:59 GMT
    X-UA-Compatible: IE=10
    Content-Encoding: gzip

    五、浏览器解析html代码,并请求html代码中的资源

    浏览器拿到index.html文件后,就开始解析其中的html代码,遇到js/css/image等静态资源时,就向服务器端去请求下载(会使用多线程下载,每个浏览器的线程数不一样),这个时候就用上keep-alive特性了,建立一次HTTP连接,可以请求多个资源,下载资源的顺序就是按照代码里的顺序,但是由于每个资源大小不一样,而浏览器又多线程请求请求资源,所以从下图看出,这里显示的顺序并不一定是代码里面的顺序。

    浏览器在请求静态资源时(在未过期的情况下),向服务器端发起一个http请求(询问自从上一次修改时间到现在有没有对资源进行修改),如果服务器端返回304状态码(告诉浏览器服务器端没有修改),那么浏览器会直接读取本地的该资源的缓存文件。
    image

    六、浏览器对页面进行渲染呈现给用户

    最后,Chrome浏览器利用自己内部的工作机制,把请求到的静态资源和html代码进行渲染,渲染之后呈现给用户。

     

    转自:https://www.cnblogs.com/wupeixuan/p/8747918.html

    展开全文
  • 这些Javascript代码段是友好的用户黑客,可以执行 直接从浏览器地址栏... 您只需要预先输入的前缀“ Javascript:”之后将代码复制/粘贴到地址栏中。 重要提示:请勿一次复制/粘贴带有前缀“ javascript:”的...
  • 1.客户端浏览器获取用户在地址栏输入的域名。 2.客户端浏览器将域名发送给DNS域名系统,请求解析。 3.DNS解析域名得到相应的IP,返回给客户端浏览器。 4.客户端浏览器根据IP向服务器发起TCP三次握手,建立TCP连接。 ...
  • 当用户主机A的浏览器中地址栏输入一个URL或网页点击一个超链接后,会发生一系列我们看不到操作,然后把网页内容呈现给用户。过程图如下: 图片参考...
  • 你知道当我们网页浏览器(Web browser)的地址栏中输入 URL时,Web 页面是如何呈现的吗? 首先你知道DNS吗? DNS(Domain Name System)服务是和 HTTP 协议一样位于应用层的协议。它提供域名到 IP 地址之间的解析...
  • 当我们在浏览器地址栏输入www.cnblogs.com,然后回车,回车到看到页面到底发生了什么呢? 域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 -...
  • 这个是参考了博文,总结下来的 这是一道面试会经常问的问题,平时虽然很常见的操作,但是探究其底层原理,可能并不是一件简单的事情,于是我从各处搜罗整理下全过程,这里做分享。 目录: 第一步:浏览器输...
  • 浏览器地址栏输入url到显示页面的步骤 最近看面试题,发现了一道非常经典且高频的题目,它是每个程序员都应该熟知的原理。 基础版本(面试笔试) 浏览器根据请求的 URL 交给 DNS 进行域名解析,找到真实 IP ...
  • 在浏览器输入一个网址 二.DNS 进行域名解析工作 对 www.baidu.com 这个网址进行 DNS 域名解析工作,得到对应的 IP 地址 1.Chrome浏览器会首先搜索浏览器的DNS缓存,看自身的缓存是否有www .baidu .com对应的条目...
  • 浏览器发现输入地址不是一个本地的文件路径时,浏览器会默认输入地址是一个网址,所以会尝试去查询他的ip地址。首先访问操作系统的本机域名,windows下,域名的配置文件C:\Windows\System32\drivers\etc\...
  • 文章目录输入URL后Web页面是如何呈现的?一、准备:DHCP、UDP、IP和以太网二、仍准备:DNS和ARP三、仍准备:域内路由选择到DNS服务器四、Web客户—服务器交互:TCP和HTTP 学习了《计算机网络——自顶向下》总结...
  • 浏览器地址栏输入url到显示页面的步骤 基础版本 浏览器根据请求的 URL 交给 DNS 域名解析,找到...1.在浏览器地址栏输入URL 2.浏览器查看缓存,如果请求资源缓存并且新鲜,跳转到转码步骤 如果资源未缓存,发
  • 1. 在浏览器地址栏输入URL 2. 浏览器查看缓存,如果请求资源缓存并且新鲜,跳转到转码步骤  2.1. 如果资源为缓存,发起新请求  2.2.如果已缓存,检验是否足够新鲜,足够新鲜直接提供给客户端,否则与服务器...
  • 一.浏览器解析出url的域名 url由通信协议+域名+端口号+资源路径组成,浏览器需要从url解析要请求的域名 二.DNS解析 找到域名对应的IP地址,...3.若操作系统缓存也没有找到,则查找本地DNS服务器缓存。 4...
  • 这个过程可以大致分为两个部分:网络通信和页面渲染。 一、网络通信 互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族...1.在浏览器地址栏输入url 用户输入url,例如http://www.baidu.com。其中htt...
  • 1、在浏览器地址栏输入URL 2、浏览器查看缓存,如果请求资源缓存并且新鲜,跳转到转码步骤  ①如果资源未缓存,发起新请求  ②如果已缓存,检验是否足够新鲜,足够新鲜直接提供给客户端,否则与服务器...
  • 文章目录1、输入地址(回车前)2、浏览器查看缓存(回车后)3、URL解析/域名解析4、浏览器与目标服务器建立TCP连接(tcp...当我们开始在浏览器中输入网址的时候,浏览器可能会做一些预处理,已经智能的匹配可能得 ...
  • 如题,这是一道非常常见的面试题。本文给出一个简单的答案参考。 一、DNS 解析   DNS 解析,即域名解析,将对人友好的域名解析成对路由器...浏览器缓存:浏览器会缓存之前拿到的DNS 2-30分钟时间。 操作...
  • 引言 简单的说可以分为六步:1.DNS查询 / 解析、2.TCP连接: TCP三次握手、3.发送请求、4.返回响应、5.渲染页面、6.... 从第一步到第六步,每一个知识点都...在浏览器中输入url 用户输入url,比如http://www.google....
  • 在浏览器地址栏中输入网址后,发生了以下几件: 1.DNS解析 2. TCP连接 3.发送HTTP请求 4.服务器处理请求并返回HTTP报文 5.浏览器解析渲染页面 6.断开tcp连接 具体每一步骤:1.DNS解析 DNS解析的过程...
  • 简述从浏览器地址栏输入url到显示页面的步骤?
  • 最近和许多同学交流面经的时候,发现有一个问题:无论你是前端开发,还是后端开发,被问到的概率很高,此,我想把这个问题记录一下总体来说,在浏览器地址栏中输入网址后,发生了如下的事情:DNS解析TCP连接...
  • 现在假设我们客户端浏览器中输入 http://www.baidu.com,而baidu.com为要访问的服务器,下面详细分析客户端为了访问服务器而执行的一系列关于协议的操作: 客户端浏览器通过DNS解析到www.baidu.com的IP地址220....
  • 获取浏览器地址栏中的参数值,这是很重要的一点,例如之前列表页跳转详情页,就必须会获取地址栏中的id值来获取相应数据。 下面图片顺序就是步骤 ...
  • 这个模型类似于 Photoshop 的图层模型,在 Photoshop ,每个设计元素都是一个独立的图层,多个图层以恰当的顺序在 z 轴空间上叠加,最终构成一个完整的设计图。 对于有位置重叠的元素的页面,这个过程尤其重要,...
  • 一些朋友看过网上零散的win10系统chrome内核浏览器地址栏变黑的处理方法,并没有完完全全明白win10系统chrome内核浏览器地址栏变黑是如何解决的,今天小编准备了简单的解决办法,只需要按照1、在浏览器地址栏输入:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,744
精华内容 20,297
关键字:

在浏览器地址栏中输入地址的顺序