当你输入一个网址会发生什么?

写在前面:

    这是一道经常会被面试官问到的面试题,这篇博客,我们以www.baidu.com为例,总结当我们输入www.baidu.com,按下Enter之后,到显示Html网页,这个过程会发生什么?

英文原文连接:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/


(1)查找域名对应的IP地址

    浏览器会缓存记录DNS一段时间,注意,操作系统没有告诉浏览器记录这个缓存多长时间,根据浏览器的不同会存储各自不同的时间(2分钟-20分钟)。

    系统缓存:如果在浏览器缓存中没有找到DNS,浏览器会做一个系统调用,以获取系统中的缓存记录。

    路由器缓存:接下来,请求会转发向路由器,一般,路由器会有自己的缓存。

    ISP缓存:接下来要查找的是ISP缓存。在这里,一般都会找到DNS缓存记录。

    递归搜索:ISP的DNS服务器开始进行递归搜索,从.com顶级域名服务器到baidu的域名服务器。

(2)应用层-浏览器给Web服务器发送一个Http请求

    请求头为:GET http://www.baidu.com/HTTP/1.1

(3)传输层-HTTP数据包会嵌入到TCP报文中

    TCP报文段需要设置端口,接收方(即baidu)的HTTP端口默认是80,本机的端口是1024-65535之间的一个随机整数。这样TCP报文段由TCP首部(发送方接收方的端口信息)+HTTP数据包组成。

(4)网络层-TCP报文段嵌入IP数据包中

    IP报文段由IP首部(发送方接收方的IP地址信息)+TCP数据包组成。

(5)网络接口层-IP数据包嵌入到帧中,在网络中传输

    数据帧中包含了由ARP地址解析协议得到的目的MAC地址和源MAC地址。帧=帧头部+IP数据包

(6)网关转发到达百度服务器,请求对应端口的服务

    服务器接收到发送来的以太网数据包,开始解析,提取IP数据包->TCP数据包->HTTP数据包。过程中,生成request和response对象。

(7)服务器返回一个HTTP响应

    Web服务器软件会接收到Http请求后,会决定采取哪一种“请求处理”(request handler),来处理这个请求。“请求处理”即是一个可以读懂用户请求,并且生成一个html来进行响应的应用程序。然后,“请求处理”会阅读请求,参数以及cookies。并将数据存储在服务器上。

    处理完毕后,数据通过response对象向客户端输出信息。并断开连接,释放request,response对象。

    响应头为:HTTP/1.1200 OK

(8)浏览器以相同的步骤,读取HTTP响应的内容

    浏览器对接收到的HTTP响应进行解析,去掉对应头信息,形成也可以被浏览器认识的页面HTML字符串信息,交与浏览器翻译为对应页面规则信息展示为页面内容,向用户显示。


    

    

### 回答1: 您能看到网页的原因是因为您的计算机或移动设备可以通过互联网连接到该网址对应的服务器,并成功地请求和接收了该网页的内容。该网页可能是由HTML、CSS和JavaScript等语言编写而成的,并经过服务器端的处理和传输,最终呈现在您的浏览器中。 ### 回答2: 当你输入一个网址,实际上发生了一系列的网络请求和响应过程。首先,你的计算机会将该网址转换为一个IP地址,这是因为计算机在网络上通过IP地址进行通信。接下来,你的计算机会向DNS服务器发送一个查询请求,获取网址对应的IP地址。一旦获得IP地址,你的计算机会建立与目标服务器的连接,发送一个HTTP请求。 服务器接收到HTTP请求后,会根据请求的内容进行处理。如果请求的是一个有效的网址且服务器上存在该网页,那么服务器会返回该网页的相关信息和内容。这些信息通常是以HTML代码的形式发送回来的。你的浏览器会根据HTML代码解析页面,并将页面的内容显示出来。 之所以能够看到一个页面,是因为你的浏览器成功地获取了服务器返回的HTML代码,并根据这些代码渲染出了页面的可视化内容。HTML代码中包括了页面的结构、样式和脚本等信息,浏览器会根据这些信息构建出一个可交互的页面。 需要注意的是,如果你输入网址无效或者服务器上没有相应的网页,那么服务器会返回一个错误的响应,此时你将无法看到页面。另外,有时候页面加载速度较慢,可能是因为网络连接不畅或者服务器处理请求的时间较长。 ### 回答3: 当您输入一个网址时,您能看到一个页面,这是因为网址对应着一个特定的网站或网页。网址是由域名和域名后缀组成的,通过域名解析系统(DNS),将域名转换为一个IP地址。 IP地址是因特网上用于标识和定位计算机或其他设备的地址,类似于电话号码。每个网站都有一个唯一的IP地址。当您输入一个网址时,计算机会向DNS服务器发送一个请求,以获取对应网址的IP地址。 一旦您的计算机获取了网址对应的IP地址,它会发送一个请求到该IP地址所指向的服务器。服务器是保存网站文件和数据的计算机。服务器收到请求后,会将相应的网页文件发送回您的计算机,您的计算机将这些文件解析成可视的网页内容并在浏览器中显示出来。 总结起来,当您输入一个网址时,计算机通过DNS将该网址转换为对应的IP地址,并向服务器发送请求,服务器将网页文件返回给您的计算机,您的计算机再将文件解析并显示为网页内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值