我是靠谱客的博主 炙热灰狼,最近开发中收集的这篇文章主要介绍面试经典问题 -- url的执行过程面试经典问题 – url的执行过程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

面试经典问题 – url的执行过程

1、主要涉及

  • 应用层:DNS、HTTP / HTTPS
  • 传输层:TCP
  • 网络层:IP和路由选择协议:RIP、OSPF、BGP
  • 数据链路层:ARP

2、计算机网的七层模型

在这里插入图片描述

  • 物理层:建立、维护、断开物理连接。以比特流传输、不可靠传输
  • 数据链路层
    • 建立逻辑连接、进行硬件地址寻址、差错校验等功能。传输数据链路帧、数据可靠传输
    • 代表协议:SDLC、HDLC、PPP、STP、帧中继等
    • 作用:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
  • 网络层
    • 进行逻辑地址寻址,实现不同网络间的路径选择。分组传输,路由器的选择与转发
    • 协议:ICMP、IGMP、IP(IPV4 IPV6)、ARP、RAPP等
    • 作用:将网络地址翻译成对应的物理地址。
  • 传输层
    • 定义传输数据的协议端口号,以及流控和差错校验。传输数据段,建立主机端到端连接和数据传输
    • 协议:TCP、UDP等
    • 作用:传输协议同时进行流量控制或是基于接收方可接收数据的快慢程度规定适当的发送速率
  • 会话层
    • 数据的表示、安全、压缩。可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。
    • 协议:SSL(加密、解密)
    • 作用:表示层管理数据的解密与加密,如系统口令的处理。
  • 应用层
    • 这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务
    • 协议:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP等。

具体介绍

传输过程

1、应用层

  • DNS解析URL(www.baidu.com)地址成相应的IP(220.181.27.48)
  • 通过这个IP地址找到客户端与服务器的路径
  • 客户端(浏览器)发起一个HTTP会话到220.161.27.48
  • 通过TCP进行封装数据包,输入到网络层

2、传输层

  • HTTP会话请求分成报文段,添加源和目的端口

3、网络层

​ 查找路由表,找到到达服务器的路径

​ 路由选择协议(RIP协议)

​ 路由信息协议RIP是内部网关协议IGP中最先得到广泛使用的协议。RIP是一种分布式的基于距离向量的路由选择协议。RIP协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。距离的解释:从一路由器到直接连接的网络的距离定义为1。从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加1。RIP协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加1。这里的“距离”实际上指的是“最短距离”。RIP认为一个好的路由就是它通过的路由器的数目少,即“距离短”。RIP允许一条路径最多只能包含15个路由器。“距离”的最大值为16时即相当于不可达。可见RIP只适用于小型互联网。RIP不能在两个网络之间同时使用多条路由。RIP选择一个具有最少路由器的路由(即最短路由)哪怕还存在另一条高速(低时延)但路由器较多的路由。

4、链路层

​ 通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。

*ARP(地址解析协议)
​ 不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。每一个主机都设有一个 ARP 高速缓存(ARP **),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。

解析过程 (这里按照SpringMVC的过程进行解析)

在这里插入图片描述
流程说明(重要):

  1. 客户端(浏览器)发送请求,直接请求到 DispatcherServlet。
  2. DispatcherServlet 根据请求信息调用 HandlerMapping,解析请求对应的 Handler。
  3. 解析到对应的 Handler(也就是我们平常说的 Controller 控制器)后,开始由 HandlerAdapter 适配器处理。
  4. HandlerAdapter 会根据 Handler 来调用真正的处理器来处理请求,并处理相应的业务逻辑。
  5. 处理器处理完业务后,会返回一个 ModelAndView 对象,Model 是返回的数据对象,View 是个逻辑上的 View。
  6. ViewResolver 会根据逻辑 View 查找实际的 View。
  7. DispaterServlet 把返回的 Model 传给 View(视图渲染)。
  8. 把 View 返回给请求者(浏览器)

最后

以上就是炙热灰狼为你收集整理的面试经典问题 -- url的执行过程面试经典问题 – url的执行过程的全部内容,希望文章能够帮你解决面试经典问题 -- url的执行过程面试经典问题 – url的执行过程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部