精华内容
下载资源
问答
  • * 在浏览器地址栏输入地址后 敲回车 经历哪些过程 * https://news.163.com/index/html * 如果想访问一个服务器,咱们必须要知道的就是这个的服务器的IP地址 * DNS 域名系统 把访问的 域名对应的IP地址返回 ...

    /*
    * 在浏览器地址栏输入地址后 敲回车 经历哪些过程
    * https://news.163.com/index/html
    * 如果想访问一个服务器,咱们必须要知道的就是这个的服务器的IP地址
    * DNS 域名系统 把访问的 域名对应的IP地址返回
    * 1-输入网址后,浏览器(客户端)会先去 自己的缓存中查找对应的IP;若缓存中没有对应的IP
    * 则会去 本地区的DNS服务器中查找 对应的IP;若还没有 则去上级的DNS中查找,直到找到这个域名对应的IP地址;返回的时候,浏览器会对这个域名进行缓存,本地区的DNS服务器也会做一个缓存;下次本机再去访问时,直接从本地缓存区获取IP;
    * 2-通过对应的IP访问对应的服务器
    * 3-服务器通过对应的路径 把客户端请求的 内容返回给客户端(html.css这些源代码给服务端)
    * 4-客户端接受到源代码后 会先进行DOM树的计算;然后再根据加载的css文件渲染DOM树
    * 最后再根据加载过来的JS对DOM进行修改
    *
    *
    * 从请求开始 到 请求结束 的整个过程 我们称为一次‘http事务’
    * */

    展开全文
  • 面试的时候,面试官经常会问这样的问题,我在浏览器地址栏输入”www.baidu.com”,之后发生了哪些事情呢,这个问题其实是想问你与网页访问有关的网络协议,下面我们就来简单梳理一下,如何比较得体的回答这个问题。...


    面试的时候,面试官经常会问这样的问题,我在浏览器地址栏输入”www.baidu.com”,之后发生了哪些事情呢,这个问题其实是想问你与网页访问有关的网络协议,下面我们就来简单梳理一下,如何比较得体的回答这个问题。

    Step 1:地址解析。

    如果是首次访问百度,输入地址回车后,浏览器访问系统Host文件从中寻找www.baidu.com对应的IP地址(Windows默认的host文件基本是空的,所以这步执行不会成功)。没有找到对应IP地址,则主机向DNS服务器发送请求,DNS服务器解析到域名对应的IP并返回。事实上,你在地址栏输入百度的IP而不是域名也可以实现访问。DNS服务既提供从域名到IP的解析,也提供从IP到域名的解析。

    DNS服务详解:
    http://blog.csdn.net/Solo95/article/details/78524886

    这里写图片描述

    Step 2:建立TCP连接

    拿到百度的IP后,浏览器通过TCP协议建立TCP连接。TCP是一种可靠的传输协议,其建立要经过三次握手,其释放要经历四次挥手

    TCP连接的三次握手和四次挥手:
    http://uule.iteye.com/blog/2213562

    Step 3:使用HTTP协议请求网页内容。

    HTTP是一种请求/应答协议,通过客户机和服务器相互发送信息的方式工作。通常HTTP消息包括客户机向服务器的请求消息服务器向客户机的响应消息。使用HTTP消息头,可以实现客户机与服务器之间的HTTP请求和HTTP应答。消息头分为通用头、请求头、相应头、实体头。

    Step 4:渲染。

    客户端收到服务器的HTTP应答后,从其中提取出HTML文件,然后进行渲染,之后就可以看到百度的首页了。


    查看知乎讨论:
    用户用浏览器访问一个网站的时候背后的过程与步骤是怎样的?
    https://www.zhihu.com/question/20513729

    展开全文
  • 1.在浏览器地址栏输入网址 2.浏览器通过用户地址栏中输入的URL构建HTTP请求报文 3.浏览器发起DNS解析请求,将域名转换为IP地址 4.浏览器将请求报文发给服务器 5.服务器接收请求报文,并解析 6.服务器处理...

    1.在浏览器地址栏中输入网址


    2.浏览器通过用户在地址栏中输入的URL构建HTTP请求报文

    3.浏览器发起DNS解析请求,将域名转换为IP地址

    4.浏览器将请求报文发给服务器
    5.服务器接收请求报文,并解析
    6.服务器处理用户请求,并将处理结果封装成HTTP相应报文
     

    7.服务器将HTTP相应报文发送给浏览器
    8.浏览器将接收服务器响应的HTTP报文,并解析
    9.浏览器解析HTML页面并展示,在解析HTML页面时遇到新的资源需要再次发起请求
    10.最终浏览器展示出了页面 

    展开全文
  • 本文主要探究 在浏览器地址栏输入地址到页面渲染完成发生了什么 这个问题。通过对这个问题的探究,详细的梳理http、https、tcp及前端性能优化相关的问题。本文涉及到前端、后台、运维相关的工作,也会涉及到很多专有...

    本文主要探究 在浏览器地址栏输入地址到页面渲染完成发生了什么 这个问题。通过对这个问题的探究,详细的梳理http、https、tcp及前端性能优化相关的问题。本文涉及到前端、后台、运维相关的工作,也会涉及到很多专有名词及其衍生知识。我只能尽可能简单详尽的描述每一步的细节,最大的期望就是让小白明白,让老司机透彻,这篇文章本来想要一气呵成写完,单中途一些工作上的事耽搁了以下,写着写着发现一篇已经太长了,不得不拆分开,所以这篇就变成了上篇。

    当我们在浏览器网址中输入一个地址,点击回车后发生了以下事情。分为两种情况,http事务和https事务。先讲http事务:

    1、浏览器(客户端)进行了地址解析。

    2、将解析出的域名进行dns解析。

    3、通过ip寻址和arp,找到目标(服务器)地址。

    4、进行tcp三次握手,建立tcp连接。

    5、浏览器发送数据,等待服务器响应。

    6、服务器处理请求,并对请求做出响应。

    7、浏览器收到服务器响应,得到html代码。

    8、渲染页面。


    通过以上这些步骤,就完成了一次完整的http事务。下面,将详细的讲述每一个步骤发生了什么。

        一、浏览器(客户端)进行了地址解析

    当我们在浏览器中输入一个地址,按下回车后,浏览器获取到的是一个字符串。浏览器此时要对这个地址进行解析,获取协议,主机,端口,路径等信息。

    URL的一般格式为(手记会自动过滤尖括号,所以只能上传图片了): 
     

    例如: 


    http://www.imooc.com/article/draft/id/430 这个网址缺少了一些东西,端口号,用户名,密码,query和flag都没有。这些东西都是非必须的,甚至协议、路径都可以不要,最简洁的方式为imooc.com,浏览器会对一些默认的东西进行补齐。例如:互联网url默认端口号为80,浏览器默认补齐功能会补齐协议http,有些还会直接在域名前面补上www。所以实际上,即使我们输入的是imooc.com,然而实际访问的却是http://www.imooc.com。

        二、将解析出的域名进行dns解析。

    第一步地址解析中我们已经获取到服务器的域名。此时就需要将域名换成对应的ip地址,这就是dns解析。dns解析分为以下几个步骤:

    1、先查看浏览器dns缓存中是否有域名对应的ip。

    2、如果没有,则产看操作系统dns缓存中是否有对应的ip(例如windows的hosts文件)。

    3、依旧没有就对本地区的dns服务器发起请求,

    4、如果还是没有,就直接到Root Server域名服务器请求解析。

    这里面有几点需要关注:

    <1>、DNS在进行区域传输的时候使用TCP协议,其它时候则使用UDP协议;

    <2>、全球只有十三台**逻辑**根服务器,为什么是十三台,请参考https://www.zhihu.com/question/22587247?answer_deleted_redirect=true。 其中任何一次解析成功就返回对应的ip地址。

        三、通过ip寻址和arp,找到目标(服务器)地址。

    第二步获取到了ip,此时直接通过ip寻址找到ip对应的服务器,然后通过arp协议找到服务器的mac地址。

    这里有几点需要注意:

    1、ip地址(ipv4, 32位)。ip地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。ip地址分为A、B、C、D、E五大类:

    A类地址:一个字节(8位)的网络地址和三个字节的主机地址。地址范围为:1.0.0.0~126.255.255.255。

    B类地址:二个字节的网络地址和二个字节的主机地址。地址范围为:128.0.0.0~191.255.255.255。

    C类地址:三个字节的网络地址和一个字节的主机地址。地址范围为:192.0.0.0~223.255.255.255。

    D类地址:D类地址用于多点广播(Multicast),D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。地址范围为:224.0.0.0~239.255.255.255。

    E类地址: E类IP地址 以“llll0”开始,为将来使用保留。地址范围为:240.0.0.0~255.255.255.254。,255.255.255.255用于广播地址。

    其中缺失了两部分,一个是0开头的,“0”表示该地址是本地主机,不能传送。一个是127开头的,127开头的是网卡自身,常用于测试。这里为什么是十进制的数字,为什么中间有‘.’,其实这都是为了方便人类而人为加上去的。转化为计算机语言就是二进制的,每一个字节八位,八位二进制能表示的最大数字就是255,这样ip地址就齐全了。可能有些人还发现ip地址为 10.170.8.61/23 ,这里涉及到局域网、保留地址和子网掩码。这里的意思是,前23位表示为该台主机的网络地址,该网络有 2^(32-23) = 512台主机。具体就不展开讲了,涉及的内容太深,太多。感兴趣的可以参考https://www.zhihu.com/question/56895036

    2、IP寻址如何工作?

    ip寻址主要有两种方式,一种是同一网段,一种是不同网段。要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码做与运算,得到的结果一网络号,如果网络号相同,就在同一子网,否则,不在同一子网。

    同一网段的情况:

    主机A和主机B,首先主机A通过本机的hosts表或者wins系统或dns系统先将主机B的计算机名  转换为Ip地址,然后用自己的 Ip地址与子网掩码计算出自己所出的网段,比较目的主机B的ip地址与自己的子网掩码,发现与自己是出于相同的网段,于是在自己的ARP缓存中查找是否有主机B 的mac地址,如果能找到就直接做数据链路层封装并且通过网卡将封装好的以太网帧发送有物理线路上去:如果arp缓存中没有主机B的的mac地址,主机A将启动arp协议通过在本地网络上的arp广播来查询主机B的mac地址,获得主机B的mac地址厚写入arp缓存表,进行数据链路层的封装,发送数据。

    不同网段的情况:

    不同的数据链路层网络必须分配不同网段的Ip地址并且由路由器将其连接起来。和上面一样,主机A发现和主机B不在同一个网段,于是主机A将知道应该将次数据包发送给自己的缺省网关,即路由器的本地接口。主机A在自己的ARP缓存中查找是否有缺省网关的MAC地址,如果能够找到就直接做数据链路层封装并通过网卡 将封装好的以太网数据帧发送到物理线路上去,如果arp缓存表中没有缺省网关的Mac地址,主机A将启动arp协议通过在本地网络上的arp广播来查询缺省网关的mac地址,获得缺省网关的mac地址后写入arp缓存表,进行数据链路层的封装,发送数据。数据帧到达路由器的接受接口后首先解封装,变成ip数据包,对ip 包进行处理,根据目的Ip地址查找路由表,决定转发接口后做适应转发接口数据链路层协议帧的封装,并且发送到下一跳路由器,次过程继续直至到达目的的网络与目的主机。整个过程有点像dns解析,只是dns服务器换成了下一跳路由器,udp编程了tcp,其他差别不大。

    3、arp。arp就是地址转化协议,也就是把ip地址转化为mac地址。和dns很像,先查缓存,然后查路由器。

    4、mac地址。mac地址就是计算机的物理地址,每个网卡出厂时,被生产厂家烧制在网卡上。采用十六进制数表示,共六个字节(48位)。三个字节是由IEEE的注册管理机构RA负责给不同厂家分配的代码(高位24位),也称为“编制上唯一的标识符”(Organizationally Unique Identifier),后三个字节(低位24位)由各厂家自行指派给生产的适配器接口,称为扩展标识符(唯一性)。如何修改mac地址呢?一个方法就是直接修改网卡上烧制的mac地址,自己烧制。这个基本不靠谱,失误性也高。另一个方法就是修改注册表中的mac地址,因为网络中访问的mac地址都是访问的注册表中的mac地址,不会直接访问网卡。这个比较简单直接。

    5、为什么有了ip地址,还要mac地址?这个问题很关键,就像是我有驾驶证了你非要让我提供身份证。这个涉及一些历史问题,因为一开始没有互联网的时候就只有mac地址,还不存在ip地址。后来互联网越来越大之后,发现mac地址找起来太麻烦,并且耗时也越来越久,就发明了ip地址。并且mac地址在一个局域网中还是很有用的,所以就两个一起存在了。详细的信息,大家可以参考https://www.zhihu.com/question/21546408。

    上篇先到这里了,后续的环节在后续章节,感兴趣的可以接着往下看~

    展开全文
  • 这是一道面试会经常问的问题...第二步:浏览器查找域名的IP地址 浏览器会把输入的域名解析成对应的IP,其过程如下: 1.查找浏览器缓存:因为浏览器一般会缓存DNS记录一段时间,不同浏览器的时间可能不一样,一般2-...
  • 这是一道面试会经常问的问题...第二步:浏览器查找域名的IP地址(DNS解析) 浏览器会把输入的域名解析成对应的IP,其过程如下: 1.查找浏览器缓存:因为浏览器一般会缓存DNS记录一段时间,不同浏览器的时间可能不...
  • 在浏览器输入www.baidu.com后执行的全部过程 从一道百度面试题到分析输入url到页面返回的过程(或者查询返回过程) 在浏览器输入www.baidu.com后执行的全部过程 作为一个软件开发者,你一定会对网络应用...
  • 3. 浏览器根据IP地址与目标web服务器80端口上建立TCP连接4. 浏览器获取请求页面的html代码。5. 浏览器在显示窗口内渲染HTML。6. 窗口关闭时,浏览器终止与服务器的连接。 这其中最有趣的是第1步和第2步(域名...
  • 作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,...1. 首先嘛,你得在浏览器输入要网址: 2. 浏览器查找...
  • 当我们在浏览器网址中输入一个地址,点击回车后发生了以下事情。分为两种情况,http事务和https事务。先讲http事务:1、浏览器(客户端)进行地址解析。2、将解析出的域名进行dns解析。3、通过ip寻址和arp,找到目标...
  • **有些小可爱可能会遇到Eclipse里面启动Tomcat后在浏览器输入“localhost:8080”报错的情况,**这是因为Eclipse配置完Tomcat后本地创建了一个Tomcat的映射,实际项目运行时并没有将项目配置到Tomcat安装...
  • 浏览器向DNS服务器查找输入URL对应的IP地址。DNS服务器返回网站的IP地址浏览器根据IP地址与目标web服务器80端口上建立TCP连接浏览器获取请求页面的html代码。浏览器在显示窗口内渲染HTML。 窗口关闭时,...
  • 找到域名对应的IP地址,该过程分为如下10步: 1.查询浏览器的DNS缓存 2.若浏览器缓存中未找到该域名对应的ip,则查找操作系统的DNS缓存,即hosts文件中的域名与ip的映射关系 3.若操作系统缓存中也没有找到,则...
  • 作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里...1. 首先嘛,你得在浏览器输入要网址: 2. 浏览器查找域名的IP地址 导航的第一步是通过访问的域名找出其IP地址。DNS查
  • 网络通信是靠IP地址和端口号,当我们在地址栏输入主机名之后,浏览器会将主机名转换为IP地址才可以发送数据接受数据。 IP地址是主机和主机之间通信,端口号是应用程序和应用程序之间通信。 一、DNS解析(把主机名...
  • 作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里... 首先嘛,你得在浏览器输入要网址: 2. 浏览器查找域名的IP地址 导航的第一步是通过访问的域名找出其IP地址。DNS查找过程如下:
  • 在浏览器地址栏键入URL,按下回车之后会经历哪些流程? 1、DNS解析,得到IP地址; DNS是什么? DNS是一种组织成域层次结构的计算机和网络服务命名系统,用于TCP/IP网络,所提供的服务是用来将主机名和域名转换成...
  • 1. 首先嘛,你得在浏览器输入要网址: 2. 浏览器查找域名的IP地址 导航的第一步是通过访问的域名找出其IP地址。DNS查找过程如下: 浏览器缓存 –  浏览器会缓存DNS记录一段...
  • 从今天开始我将抽出空闲时间复习asp.net相关知识。此篇博文只是为了记录学习当中的知识点和感觉到比较重要的知识点。... 一、那么用户输入地址后,浏览器就将请求报文发送给百度的服务器了。我们可以看到请求
  • 这个过程可以大致分为两个部分:网络通信和页面渲染。 一、网络通信 互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族...1.在浏览器地址栏输入url 用户输入url,例如http://www.baidu.com。其中htt...
  • 1、在浏览器地址栏输入URL 2、浏览器查看缓存,如果请求资源缓存中并且新鲜,跳转到转码步骤  ①如果资源未缓存,发起新请求  ②如果已缓存,检验是否足够新鲜,足够新鲜直接提供给客户端,否则与服务器...
  • chrome浏览器地址栏输入以下代码: data:text/html,<html contenteditable> 或者 浏览器开发者控制台console处输入 document.body.contentEditable = true css placeholder 文字颜色 ...
  • chrome浏览器地址栏输入过的记录该怎么删除? 1、电脑上找到chrome浏览器应用程序,并点击打开应用软件。 2、跳转的界面中,输入网站的开头,会出现输入的记录。 3、按下电脑键盘上的方向键,将光标移动到需要...
  • 浏览器地址栏输入url到显示页面步骤 查看缓存 无缓存,发起请求 有缓存,且可用(cache-control:max-age, expires过期时间),直接解析转码 有缓存,过期(Etag+If-None-Match, Last-Modified+If-Modified-since...
  • 当我们在浏览器地址栏输入一个地址后,接下来到底会发生什么呢? 当你在浏览器中输入一个地址的时候,浏览器会从浏览历史记录,或者书签等地方模糊匹配出你想要的地址,提示补全url,对于Chrome来说,可以做到你...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 174,249
精华内容 69,699
关键字:

在浏览器地址栏输入