每天一个面经系列--面经003:浏览器输入一个网址后的全过程

当你在浏览器输入一个网址,如http://www.taobao.com,按回车之后发生了什么?请从技术的角度描述,如浏览器、网络(UDP、TCP、HTTP等),以及服务器等各种参与对象上由此引发的一系列活动,请尽可能的涉及到所有的关键技术点。

 总体来说分为以下几个过程:

  1. DNS解析
  2. 客户端与服务器建立TCP连接(三次握手)
  3. 浏览器发送HTTP请求
  4. 服务器处理请求并返回HTTP报文
  5. 浏览器解析渲染页面
  6.  

这里总结一个全面的精简版:

一  DNS解析

  • 浏览器查找浏览器缓存,如果有域名的 IP 地址则返回,如果没有继续查找;
  • 系统查找系统缓存,如果有域名的 IP 地址则返回,如果没有继续查找;
  • 路由器查找路由器缓存,如果有域名的 IP 地址则返回,如果没有继续查找;
  • ISP服务器查找缓存,如果有域名的 IP 地址则返回,如果没有继续查找;
  • 递归查询:
  1. 本地DNS服务器将目标域名转发到互联网上的根域名服务器
  2. 根域将所要查询域名中的顶级域(比如www.taobao.com的顶级域就是com)的服务器IP地址返回给本地DNS。
  3. 本地DNS根据返回的顶级域IP地址,向顶级域服务器发送目标域名,顶级域服务器再将域名中的二级域(比如www.taobao.com的二级域为taobao.com)的服务器IP地址返回给本地DNS。
  4. 本地DNS根据返回的二级域IP地址,向二级域服务器发送目标域名,重复这样的过程,直到本地DNS获得完整的服务器IP地址,并返回给浏览器。

二  客户端与服务器建立TCP连接(三次握手)

  • 浏览器所在的客户端向服务器发出连接请求报文
  • 服务器接收报文后,同意建立连接,向客户端发出确认报文
  • 客户端接收到确认报文后,再次向服务器发出报文,确认已接收到确认报文
  • 此时客户端与服务器之间的 TCP 连接建立完成,开始通信

三  浏览器发送HTTP请求

  • 构建HTTP请求报文并通过TCP协议中发送到服务器指定端口(HTTP协议80/8080, HTTPS协议443)

四  服务器处理请求并返回HTTP报文 

  • 对TCP连接进行处理,对HTTP请求(request)进行解析,结合配置文件,把不同请求委托给服务器上处理对应请求的程序进行处理
  • 生成HTTP报文后,将响应发送给客户端浏览器。 

五   浏览器解析渲染页面(边解析边渲染的过程)

  • 浏览器解析HTML文件构建DOM树
  • 解析CSS文件构建渲染树
  • 浏览器开始布局渲染树并将其绘制到屏幕上

一些补充知识:

DNS缓存

DNS存在着多级缓存,从离浏览器的距离排序的话,有以下几种: 浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存。

DNS:域名和IP地址相互映射的一个分布式数据库。

域名结构为:三级域名.二级域名.一级域名

HTTP请求报文是由三部分组成: 请求行请求报头请求正文

HTTPS在传输数据之前需要客户端与服务器进行一个握手(TLS/SSL握手),在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL使用了非对称加密,对称加密以及hash等。具体过程请参考经典的阮一峰先生的博客TLS/SSL握手过程
HTTPS相比于HTTP,虽然提供了安全保证,但是势必会带来一些时间上的损耗,如握手和加密等过程,是否使用HTTPS需要根据具体情况在安全和性能方面做出权衡。

MVC的处理过程是这样的:每个用户输入的请求,首先被控制器(C)接收,控制器决定用哪个模型(M)来处理,然后模型用业务逻辑来处理用户的请求,再然后控制器决定用哪个视图模型(V)来接收模型处理后的数据,最后由该视图模型对应的视图格式化模型来返回HTML字符串给浏览器。

HTTP响应报文也是由三部分组成: 状态码响应报头响应报文

状态码

状态码是由3位数组成,第一个数字定义了响应的类别,且有五种可能取值:

  • 1xx:指示信息–表示请求已接收,继续处理。
  • 2xx:成功–表示请求已被成功接收、理解、接受。
  • 3xx:重定向–要完成请求必须进行更进一步的操作。
  • 4xx:客户端错误–请求有语法错误或请求无法实现。
  • 5xx:服务器端错误–服务器未能实现合法的请求。

响应报头

常见的响应报头字段有: Server, Connection...。

响应报文

服务器返回给浏览器的文本信息,通常HTML, CSS, JS, 图片等文件就放在这一部分。

HTTP报文是明文,如果中间被截取的话会存在一些信息泄露的风险。那么在进入TCP报文之前对HTTP做一次加密就可以解决这个问题了。HTTPS协议的本质就是HTTP + SSL(or TLS)。在HTTP报文进入TCP报文之前,先使用SSL对HTTP报文进行加密。从网络的层级结构看它位于HTTP协议与TCP协议之间。 


具体可以参考以下文章:

https://segmentfault.com/a/1190000006879700

https://segmentfault.com/a/1190000009353010

 https://www.nowcoder.com/questionTerminal/4150a74bd14d4bd3a0d3f133376c97c7

### 回答1: 电脑桌面显示配置是指对电脑桌面上的图标、背景、分辨率等进行调整和设置。在Windows操作系统中,可以通过右键点击桌面空白处选择“个性化”来打开桌面显示配置界面。在这里,我们可以更改桌面背景图片、设置图标大小和排列方式,还可以调整电脑屏幕的分辨率以适应不同大小的显示器。 另外,如果想要让电脑桌面更加个性化,我们还可以下载和安装各种小部件和皮肤软件,通过它们来自定义桌面图标和壁纸,实现更多的视觉效果和功能。 而IP地址是指互联网协议地址,是一种用于在网络上唯一识别一个设备的地址。在Windows操作系统中,可以通过命令行工具或者控制面板来查看电脑IP地址。比如,我们可以按下Win键 + R键打开运行窗口,然后输入“cmd”(不带引号)并按下回车键,就会打开命令行窗口。在命令行中,可以输入“ipconfig”命令来查看电脑IP地址、子网掩码、网关等网络配置信息。 总之,电脑桌面显示配置IP地址都是在日常使用电脑时会涉及到的一些设置和信息。这些设置可以让我们更好地个性化电脑桌面,并且了解电脑所在网络的一些基本信息。 ### 回答2: 电脑桌面显示配置是指对电脑的显示器进行设置,包括屏幕分辨率、壁纸、桌面图标、任务栏等。我们可以在“控制面板”中找到“显示”选项,然后对显示器进行个性化的设置。 首先,屏幕分辨率是指屏幕上横向和纵向的像素数量,决定了屏幕上能显示多少信息。一般而言,我们可以根据自己的需要来选择适合自己的分辨率。较高的分辨率可以提供更清晰的图像,但可能使文本和图标变得更小,较低的分辨率则相反。 其次,壁纸是指桌面背景的图像或颜色。我们可以从系统提供的壁纸中选择,也可以使用自己的图片作为壁纸。通过壁纸,我们可以个性化自己的电脑桌面,体现自己的喜好和风格。 还有,桌面图标是指显示在桌面上的各种快捷方式和文件夹图标。我们可以通过拖拽或右键菜单进行图标的增加、删除和排序,以方便我们快速访问所需的程序和文件。 最后,任务栏是显示在屏幕底部的水平栏,用于快速启动程序和切换窗口。我们可以根据自己的使用习惯自定义任务栏,比如将常用的程序固定到任务栏上,调整任务栏的位置和尺寸等。 至于IP地址,它是计算机在网络中的唯一标识。我们可以通过在命令提示符或网络设置中输入“ipconfig”命令来获取自己电脑IP地址IP地址分为IPv4和IPv6两种,一般IPv4是由四个0到255之间的数字组成,用点来分隔,例如192.168.0.1。而IPv6则更为复杂,包含八组四位十六进制数字,用冒号分隔。 总之,电脑桌面显示配置IP地址设置是为了提高用户使用电脑的便利性和个性化需求,根据自己的喜好和实际需求进行设置,以提升工作和娱乐效率。 ### 回答3: 电脑桌面显示配置指的是电脑显示器的设置和布局。我们可以通过右键点击桌面的空白位置,选择“显示设置”来进行配置。在显示设置中,可以调整分辨率、缩放比例、屏幕旋转、多个显示器的顺序和位置等。 首先,我们可以通过显示设置调整分辨率。分辨率决定了显示器上像素的数量,较高的分辨率意味着更清晰的图像。调整分辨率可以根据个人喜好或应用程序需求。 其次,我们可以调整缩放比例。缩放比例决定了在显示器上的元素的大小。较大的缩放比例使得文字和图标更大,方便阅读和操作。 另外,显示设置还可以实现屏幕的旋转。通过选择适应自己的工作或娱乐需求,可以将屏幕旋转为横向或纵向模式。 对于使用多个显示器的用户,还可以调整显示器的顺序和位置。这样可以模拟多屏幕工作环境,提高工作效率。 IP(Internet Protocol)是指互联网协议,用于在网络中标识和定位计算机和其他设备。每个连接到互联网上的设备都会被分配一个IP地址。 我们可以通过以下方法查看电脑IP地址。首先,打开命令提示符(按下Win + R,然后输入“cmd”并按Enter键),然后输入“ipconfig”命令并按Enter键。在命令的输出中,可以找到标有“IPv4地址”或“IP地址”的一行,后面的数字就是电脑IP地址。 另外,也可以在控制面板中找到网络和互联网设置,然后点击网络连接,查看本地连接的详细信息,其中包括IP地址。 通过以上方法,我们可以轻松查看电脑桌面的显示配置IP地址。这些信息对于个性化设置和网络连接都非常重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值