当前位置:首页 » 网站资讯 » 网站从输入到显示经历了什么
扩展阅读
手机网络黑爪怎么解除 2025-01-16 02:29:34
操作系统和计算机网络 2025-01-16 02:27:22

网站从输入到显示经历了什么

发布时间: 2022-07-01 06:44:07

㈠ 输入域名点击回车,中间经历了什么过程

当我们开始在浏览器中输入网址的时候,浏览器其实就已经在智能的匹配可能得 url 了,他会从历史记录,书签等地方,找到已经输入的字符串可能对应的 url,然后给出智能提示,让你可以补全url地址。对于 google的chrome 的浏览器,他甚至会直接从缓存中把网页展示出来,就是说,你还没有按下 enter,页面就出来了。

浏览器查找域名的IP

一、请求一旦发起,浏览器首先要做的事情就是解析这个域名

一般来说,浏览器会首先查看本地硬盘的 hosts 文件,看看其中有没有和这个域名对应的规则,如果有的话就直接使用 hosts 文件里面的 ip 地址。

二、如果在本地的 hosts 文件没有能够找到对应的 ip 地址,浏览器会发出一个 DNS请求到本地DNS服务器 。

本地DNS服务器一般都是你的网络接入服务器商提供,比如中国电信,中国移动。

三、查询你输入的网址的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果,此过程是递归的方式进行查询。如果没有,本地DNS服务器还要向DNS根服务器进行查询。

四、根DNS服务器没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。这种过程是迭代的过程。

五、本地DNS服务器继续向域服务器发出请求

比如请求的对象是.com域服务器。.com域服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的解析服务器的地址。

六、最后,本地DNS服务器向域名的解析服务器发出请求

这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。

㈡ 从输入URL到页面加载完成的过程中都发生了什么事情

首先是“输入 URL”,大部分人的第一反应会是键盘,不过为了与时俱进,这里将介绍触摸屏设备的交互。
触摸屏一种传感器,目前大多是基于电容(Capacitive)来实现的,以前都是直接覆盖在显示屏上的,不过最近出现了 3 种嵌入到显示屏中的技术,第一种是 iPhone 5 的 In-cell,它能减小了 0.5 毫米的厚度,第二种是三星使用的 On-cell 技术,第三种是国内厂商喜欢用的 OGS 全贴合技术,具体细节可以阅读这篇文章。
当手指在这个传感器上触摸时,有些电子会传递到手上,从而导致该区域的电压变化,触摸屏控制器芯片根据这个变化就能计算出所触摸的位置,然后通过总线接口将信号传到 CPU 的引脚上。
以 Nexus 5 为例,它所使用的触屏控制器是 Synaptics S3350B,总线接口为 I²C,以下是 Synaptics 触摸屏和处理器连接的示例:

左边是处理器,右边是触摸屏控制器,中间的 SDA 和 SCL 连线就是 I²C 总线接口。
CPU 内部的处理
移动设备中的 CPU 并不是一个单独的芯片,而是和 GPU 等芯片集成在一起,被称为 SoC(片上系统)。
前面提到了触屏和 CPU 的连接,这个连接和大部分计算机内部的连接一样,都是通过电气信号来进行通信的,也就是电压高低的变化,如下面的时序图:

在时钟的控制下,这些电流会经过 MOSFET 晶体管,晶体管中包含 N 型半导体和 P 型半导体,通过电压就能控制线路开闭,然后这些 MOSFET 构成了 CMOS,接着再由 CMOS 实现“与”“或”“非”等逻辑电路门,最后由逻辑电路门上就能实现加法、位移等计算,整体如下图所示(来自《计算机体系结构》):

除了计算,在 CPU 中还需要存储单元来加载和存储数据,这个存储单元一般通过触发器(Flip-flop)来实现,称为寄存器。
以上这些概念都比较抽象,推荐阅读“How to Build an 8-Bit Computer”这篇文章,作者基于晶体管、二极管、电容等原件制作了一个 8 位的计算机,支持简单汇编指令和结果输出,虽然现代 CPU 的实现要比这个复杂得多,但基本原理还是一样的。
另外其实我也是刚开始学习 CPU 芯片的实现,所以就不在这误人子弟了,感兴趣的读者请阅读本节后面推荐的书籍。
从 CPU 到操作系统内核
前面说到触屏控制器将电气信号发送到 CPU 对应的引脚上,接着就会触发 CPU 的中断机制,以 Linux 为例,每个外部设备都有一标识符,称为中断请求(IRQ)号,可以通过 /proc/interrupts 文件来查看系统中所有设备的中断请求号,以下是 Nexus 7 (2013) 的部分结果:
shell@flo:/ $ cat /proc/interrupts
CPU0
17: 0 GIC dg_timer
294: 1973609 msmgpio elan-ktf3k
314: 679 msmgpio KEY_POWER

因为 Nexus 7 使用了 ELAN 的触屏控制器,所以结果中的 elan-ktf3k 就是触屏的中断请求信息,其中 294 是中断号,1973609 是触发的次数(手指单击时会产生两次中断,但滑动时会产生上百次中断)。
为了简化这里不考虑优先级问题,以 ARMv7 架构的处理器为例,当中断发生时,CPU 会停下当前运行的程序,保存当前执行状态(如 PC 值),进入 IRQ 状态),然后跳转到对应的中断处理程序执行,这个程序一般由第三方内核驱动来实现,比如前面提到的 Nexus 7 的驱动源码在这里 touchscreen/ektf3k.c。
这个驱动程序将读取 I²C 总线中传来的位置数据,然后通过内核的 input_report_abs 等方法记录触屏按下坐标等信息,最后由内核中的input 子模块将这些信息都写进 /dev/input/event0 这个设备文件中,比如下面展示了一次触摸事件所产生的信息:
130|shell@flo:/ $ getevent -lt /dev/input/event0
[ 414624.658986] EV_ABS ABS_MT_TRACKING_ID 0000835c
[ 414624.659017] EV_ABS ABS_MT_TOUCH_MAJOR 0000000b
[ 414624.659047] EV_ABS ABS_MT_PRESSURE 0000001d
[ 414624.659047] EV_ABS ABS_MT_POSITION_X 000003f0
[ 414624.659078] EV_ABS ABS_MT_POSITION_Y 00000588
[ 414624.659078] EV_SYN SYN_REPORT 00000000
[ 414624.699239] EV_ABS ABS_MT_TRACKING_ID ffffffff
[ 414624.699270] EV_SYN SYN_REPORT 00000000

从操作系统 GUI 到浏览器
前面提到 Linux 内核已经完成了对硬件的抽象,其它程序只需要通过监听 /dev/input/event0 文件的变化就能知道用户进行了哪些触摸操作,不过如果每个程序都这么做实在太麻烦了,所以在图像操作系统中都会包含 GUI 框架来方便应用程序开发,比如 Linux 下着名的 X。
但 Android 并没有使用 X,而是自己实现了一套 GUI 框架,其中有个 EventHub 的服务会通过 epoll 方式监听 /dev/input/ 目录下的文件,然后将这些信息传递到 Android 的窗口管理服务(WindowManagerService)中,它会根据位置信息来查找相应的 app,然后调用其中的监听函数(如 onTouch 等)。

㈢ 当打开浏览器,从在地址栏里输入一个URL开始,到出现整个页面,网络上都发生了什么事

打开浏览器 输入URL 回车以后就会在网络上寻找路由器 找到路由器里面以后就读路由表 理论上在12个路由表之内能找到你所输入的URL 然后空链接到这个地址 如果是http头然后就会进行默认的监听80端口 如果是FTP头就会监听其它端口 监听正常以后会进行握手 握手就是确定协议类型 接着会话 你的电脑像URL提交需要信息的一个表单 电脑说我要你这个地址下面的所有WEB页面 那边的WEB站点会要你的电脑出示身份证 看看你的电脑是不是好人 如果是好人 就说OK 我给你 但是我先给你一份我WEB里面资料的单据把 就是cookies 同时WEB站点在自己运算 把网页代码运算成用户可以接受的窗口网页 然后你的电脑拿到了这个单据 再根据单据里面的内容和WEB要 WEB就把运算好的网页返回到你的浏览器中。

大概就是这样

㈣ 我们在地址栏中输入网址,电脑就可以找到并显示这个网站,这其中有什么原理

这个原理就是在你输入这个网址的时候,系统会自动分析域名并发送请求数据到相关的服务器。服务器在接收到数据以后再反馈数据过来。接收到数据后就会显示该网站。

有时候显示服务器无反映就是你的数据没有到达或者服务器无法分析。。。。。

希望这种解释能帮到你。

㈤ 从输入 url 到页面加载完成的过程中都发生了什么事情

作一个简单粗暴的描述,假设是简单的HTTP请求,IPV4,没有代理。
1.浏览器查询缓存,如果缓存存在跳到第9步。

2.浏览器询问操作系统服务器的IP地址。

3.操作系统做DNS查询,返回IP地址给浏览器。

4.浏览器打开对服务器的TCP连接(如果是HTTPS协议的话会更复杂)。

5.浏览器通过TCP连接发送HTTP请求。

6.浏览器接收HTTP响应并且可能关掉TCP连接,或者是重新使用连接处理新请求。

7.浏览器检查HTTP响应是否为一个重定向(3xx 结果状态码 ),一个验证请求(401),错误(4xx 5xx)等等,这些都是不同响应的正常处理(2xx).

8.如果响应可缓存,将存入缓存。

9.浏览器解码响应(例如:如果它是gzziped压缩)。

10.浏览器决定如何处理这些响应(例如,它是HTML页面,一张图片,一段音乐)。

11.浏览器展现响应,对未知类型还会弹出下载对话框。

这里边的每个步骤都可以长篇大论一番,当然还有很多东西与这些步骤平行发生。
(完)

㈥ 用户从输入url到最终页面展示,这个过程中发生了什么

具体过程DNS解析DNS解析的过程就是寻找哪台机器上有你需要资源的过程。当你在浏览器中输入一个地址时,例如,其实不是网络网站真正意义上的地址。互联网上每一台计算机的唯一标识是它的IP地址,但是IP地址并不方便记忆。用户更喜欢用方便记忆的网址去寻找互联网上的其它计算机,也就是上面提到的网络的网址。所以互联网设计者需要在用户的方便性与可用性方面做一个权衡,这个权衡就是一个网址到IP地址的转换,这个过程就是DNS解析。它实际上充当了一个翻译的角色,实现了网址到IP地址的转换。网址到IP地址转换的过程是如何进行的?

㈦ 从输入网址到打开网页经历的所有过程,越详细越好

一:URL解析
二:TCP三次握手建立连接
三:发送http请求
四:渲染页面
五:四次挥手断开请求

㈧ 从输入 URL 到页面加载完成的过程中都发生了什么事情

在浏览器中输入URL也就是域名以后,首先,浏览器先连接域名解析服务器,通过域名解析服务器,得到该域名对应的IP地址(如直接输入了IP地址,跳过这步)和端口(默认是80口),然后,浏览器尝试通过这个IP地址和端口与服务器的Web服务器端程序建立连接,如连接成功,Web服务器端程序会主动向你的浏览器传递Web首页的相关内容,后面的事情,就是根据你的操作,转换、刷新页面。

㈨ 一个页面从输入 url 到页面加载完的过程中都发生了什么事情

浏览器会把这个请求提交到网络,网络根据URL解析得到IP,然后根据IP访问对应的网站空间对应页面文件,然后读取页面文件反映到浏览器上,浏览器会对页面代码以及各种js、css等东西进行解析架构,加载页面代码,从代码第一行开始,加载到结束,然后返回一个回应:加载结束,这样在浏览器底部会显示网页加载完毕或者在地址栏会有相应的变化显示。

㈩ 求域名从输入到实现访问的详细流程,该过程都经过了哪几个服务商的哪些服务器

输入域名—浏览器接受数据—向运营商服务器发送数据—internet域名解析 服务器(com 网站的解析服务器在美国如网络,cn站点属于中国解析服务器在中国,)—解析成目标网站服务器的ip地址并发送数据—数据经域名解析服务器—发送到你的IP—数据由浏览器解析 —成功!!懂了不?