在浏览器输入网址,Enter之后发生了什么?

启动浏览器,在地址栏输入我们将要访问的网页,然后按一下回车,OK,成功进入!

在我们回车之后,发生了什么事情?为什么我们会访问到期待的网页,我们究竟访问了谁?如何访问到他的?

我简单的向大家介绍一下,并不深入讲解,只能算作小白科普,不过这个科普还是很有必要的,它不仅能让我们认识到计算机之间是如何沟通的,也能让我们知道很多网络危机、故障是大致怎样产生的,以后遇到问题也好有一个切入点。

你的名字叫什么?

启动浏览器是浏览网页的第一步,毕竟是世界之窗嘛,然后我们在地址栏中输入一个网址,比如百度(www.baidu.com),这里我们叫他“域名”,根据这个域名,是否可以找到百度公司的服务器?这得问问路由器了,在网络中路由器负责为我们传输数据。

你可能会问,这和路由器什么关系?我没有传输数据啊,只是输入一个网址啊,恩恩,没错,不过这相当于一次请求——请求百度的服务器返回一个搜索界面。

看看路由器怎么说:哦,我不用域名或者主机名,我只处理IP地址,我根据它找到目标地点(百度服务器),把数据传给他。

哦哦,看起来域名只是你的别称,你真正的名字叫IP。什么是IP?形如 w.x.y.z的数字,四个数字都是0~255(比如192.168.0.1),也就是四个字节,不过有的会有一些限制,这里不必考虑。

原来还有军师!

如此看来,域名对于路由器来说是不管用的,我们得想办法搞到对应的IP地址,当然,这件事情浏览器帮我们完成了,“你是说,浏览器有一个数据库,里面存储了各个域名到IP的映射?”,这个当然不是,初步算一下这个大约有40亿个,浏览器可存不下。原来在我们按下回车之后浏览器把域名发给他的军师,军师收到域名之后,返回给浏览器一个IP地址,这个就是我们想要的那个。

这位军师就是我们经常会看到的DNS,中文名字是域名系统服务器,一般位于ISP(互联网服务提供商,比如我们熟知的联通、移动、电信等)中。浏览器会首先发给离自己最近的DNS,DNS收到浏览器发来的域名,在自己的数据库和缓存中查找这个域名所对应的IP,如果没有他会询问其他的DNS,递归下去直到弄清楚IP。最后把结果返回给浏览器。

包裹运送 礼尚往来

浏览器既然获得了IP,就可以把包裹发给路由器了,路由器依据这个IP地址,多方周转,送到了百度服务器的手中。到这里还没有结束,百度服务器看到包裹中的请求,把百度的搜索页面发送回浏览器,回来的时候也是依据你主机的IP地址才能将包裹正确送达。

至此,在浏览器输入网址,Enter之后发生的事情简述完毕。再回顾一下:

1. 浏览器接收域名

2. 发送域名给DNS

3. DNS返回域名所对应的IP地址

4. 浏览器向因特网中发出请求

5. 路由器依据IP地址,把包裹送达IP所对应的服务器

看起来,DNS很重要啊,前几天我家附近的计算机部分网络无法访问,我想应该就是DNS那边解析出了问题。2014年有一次国内很多网络无法访问,问题就出在DNS服务器上。全球DNS根服务器只有13台,中国没有,看起来我们国家急需有自己的DNS根服务器啊!

时间: 2024-10-05 14:00:50

在浏览器输入网址,Enter之后发生了什么?的相关文章

在浏览器输入网址,Enter之后发生的事情

在浏览器输入网址,Enter之后发生的事情: 1. 浏览器接收域名 2. 发送域名给DNS,中文名字是域名系统服务器,一般位于ISP(互联网服务提供商,比如我们熟知的联通.移动.电信等) 中.浏览器会首先发给离自己最近的DNS,DNS收到浏览器发来的域名,在自己的数据库和缓存中查找这个域名所对应的IP,如果没有他会询问其他的DNS,递归下去直到弄清楚IP.最后把结果返回给浏览器. 3. DNS返回域名所对应的IP地址 4. 浏览器向因特网中发出请求 5. 路由器依据IP地址,把包裹送达IP所对应

在浏览器输入网址到页面加载完毕中间到底发生了什么?(Browser-->Server)

最近在学习韩老师的php视频,中间有讲到发送请求到服务器返回内容,以前对这个理解并不深刻,虽然以前也知道一部分,这次听了之后收获良多:所以我就画了个流程图,从浏览器输入网址到服务器返回信息,浏览器渲染,呈现页面的具体过程. 今天是国庆节,明天才会出去玩,所以今天还是得学习,学习根本不能停啊,哈哈! 中间有错误的欢迎各位,不吝赐教,谢谢! 下面这个是韩老师画的图,内容也比较相似,所以我也放在上面,以便以后回顾: 其中有涉及到,http的状态码,我这个好多也确实记不住,所以为了以后需要的时候来看,我

Jupyter Notebook启动不会自动打开浏览器,每次都要自己打开浏览器输入网址

今天在使用jupyter 时,已启动服务,但每次都需要手动去浏览器 输入网址才可以, 最好找了好久才解决了. 去cmd 命令窗口执行jupyter notebook --generate-config  可以找到  Jupyter_notebook_config.py文件 在文件中 找到 #c.NotebookApp.notebook_dir = '' 注意这里的谷歌路径是自己安装的谷歌路径,路径必须时双” \\ “否则报错 这样就成功的解决了这个问题 原文地址:https://www.cnbl

HTTP-点开浏览器输入网址背后发生的那点事

前言 Internet最早来源于美国国防部ARPANet,1969年投入运行,到现在已有很长一段路了,各位想要了解发展史可以百度下,这里就不多说了. 现如今当我们想要获取一些资料,首先是打开某个浏览器,在地址栏输入地址,想要的信息出现在你的面前. 大家有没有想过输入地址就能返回给你想要的信息是怎么实现的呢? 下面就来简单说下它的实现流程,不过在这之前先来了解下HTTP基本概念如下 HTTP基本概念 在这引用http://www.zsythink.net/archives/76 这是一篇为初学者准

浏览器输入网址回车发生的事情?--

 输入网址回车 执行的过程. 1.DNS解析 域名解析2.找到相对应的服务器3.TCP三次握手4.找到相对应的资源库5.返回相对应的页面并进行页面解析6.解析完毕后,返回客户端 原文地址:https://www.cnblogs.com/yuanjili666/p/11376861.html

浏览器输入网址到浏览器渲染页面的过程

1) 在客户端浏览器中输入网址URL. 2) 发送到DNS(域名服务器)获得域名对应的WEB服务器的IP地址. 3) 客户端浏览器与WEB服务器建立TCP(传输控制协议)连接. 4) 客户端浏览器向对应IP地址的WEB服务器发送相应的HTTP或HTTPS请求. 5) WEB服务器响应请求,返回指定的URL数据或错误信息:如果设定重定向,则重定向到新的URL地址. 6) 客户端浏览器下载数据,解析HTML源文件,解析的过程中实现对页面的排版,解析完成后,在浏览器中显示基础的页面. 7) 分析页面中

在浏览器输入网址到网页打开数据经过的过程

<1>客户端输入网址,请求与服务器的80端口建立连接. <2>服务器收到请求,并响应客户端: <3>客户端接收到服务器的响应,准备开始接收数据.服务器开始发送数据. (三次握手) 第1次握手:客户端通过将一个含有"同步序列号(SYN)"标志位的数据段发送给服务器 请求连接. 第2次握手:服务器用一个带有"确认应答(ACK)"和"同步序列号(SYN)"标志位的 数据段响应客户端. 第3次握手:客户端发送一个数据段

当你在浏览器输入网址后,回车后发生了什么

假设你用一个全新的浏览器(第一次启动的那种),访问百度(http://www.baidu.com/),在你敲入网址并按下回车之后,将会发生以下神奇的事情: (1)浏览器先尝试从Host文件中获取http://www.baidu.com/对应的IP地址,如果能取到,自然好,如果不能,就使用DNS协议来获取IP. 在DNS协议中,PC会向你的本地DNS服务器求助(一般是路由器),希望从本地DNS服务器那里得到百度的IP,得到就好,得不到还得向更高层次的DNS服务器求助,最终总能得到百度的IP. (2

浏览器输入URL后,发生了什么?(打开一个网页会使用哪些协议?)

简单说来分为6个过程 1.DNS解析 互联网每一个服务器都是以ip地址作为界限的,并不是我们平时输入的url地址,就比如www.ccc.com这一个网址,当输入进浏览器之后就会由DNS解析将它转化成一个ip地址,所以DNS实际上担任的是一个翻译者的角色.下面放一个大佬的图,看了之后估计你就会更加深入的了解DNS域名解析的原理了. 从图上可以看出域名解析其实是一个从右到左的过程也就是从-.到-com到-ccc.com到-www.ccc.com.第一个.表示的就是根域名服务器的域名解析.那了解了这个