当用户点击网站链接时,会发生哪些事情?


好久都没有更新了

那么今天我就来讲一讲再spring could Alibaba 架构在 k8s 集群下会发生什么事情吧。

首先让我们先来过一过基础:

ISO网络七层模型

在这里插入图片描述

首先需要明确的一点,本地到目标网站服务器并不是哆啦A梦的传送门,biu~一下就到了。而是通过很多的路由器转发,最终到达目的网络。那么不同的路由器之间通过什么进行标识区分勒,答案就是IP地址

当然连接两个不同网段的路由器会有两个不同的IP地址

1. DNS解析

我们知道路由器需要目的网络IP地址,但此时我们访问的确是域名,所以就会进行DNS解析 及 域名解析。

解析过程如下:

  1. 查看浏览器缓存
  2. 查看系统缓存
  3. 查看路由器缓存
  4. 访问域名服务器

dns解析
好的,现在获取到目的IP地址了。但这只是开始。。。

2.路由选择协议

现在表达层的数据以及封装成了IP数据包

我们也知道了目的地,但是该怎么到达勒?答案是条条大路通罗马(这也酷似我们的人生)

设想一下,网络上这么多路由器像渔网一样形成了无数的链路,IP数据包怎么知道该怎么走。

此时就要分情况了

因为IPV4地址有限,通常我们使用NAT协议,即多人共享同一个IP地址。那我们就可以粗略的进行划分,即使用同一个IP地址的AS自治系统,以及多个AS自治系统在ISP(网络服务提供商)中组成的网络

2.1内部网关协议

2.1.1 RIP

通常小型局域网采用的是RIP协议(距离矢量算法的路由协议),路由器会维护一张路由表,表中记录的是 目的IP 跳数(到目的IP的距离):

相隔一个结点为一跳。间隔30s相邻的两个路由器会彼此交换信息,两两交换信息至最后,路由表中便存储了所有能到达目的IP以及代价(跳数)

当跳数大于15则无法到达

在这里插入图片描述
此时,可以选择最短路径的路由路径传输信息。

问题
1. 链路A -> B->D 此时因为A ->B 出现阻塞情况,反而没有链路A->C->E->D快?
2.如果A点到B点有很多个路由,路由表的信息会不会溢出?

答案就是它的确可能会溢出,而且大量的路由信息会减慢目的IP检索的速度,因而此时便引入了中大型自治系统常用协议—OSPF协议

OSPF协议

OSPF(开放式最短路径优先),相较于RIP协议更加的人性化。能标记链路状态,计算两个路由之间的延迟、速度、吞吐量等信息标记为代价

采用Dijkstra算法计算最短路径

Dijkstra算法:著名的最短路径算法,顶点 与 权重边概念下,能求出两点之前的最短路径,应用于多个领域

此时便解决了一个问题,路由选择时能根据链路的状态(阻塞等情况),动态的调整路径。

2.2 外部网关协议

2.2.1 BGP协议

各个AS自治系统

3.ARP协议

4.TCP三次握手

5.SSL握手

6. nginx

nginx反向代理

请求到网关

k8s结点

远程调用

服务调用

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue中可以在头像的点事件处理函数中进行判断用户是否登录,如果已登录则跳转到首页,如果未登录则跳转到登录页面。 示例代码: ``` <template> <div> <img @click="handleClick" src="avatar.png" alt="avatar"> </div> </template> <script> export default { data() { return { isLogin: false } }, methods: { handleClick() { if (this.isLogin) { this.$router.push('/home') } else { this.$router.push('/login') } } } } </script> ``` 在上面代码中,在头像的点事件中调用了handleClick方法,在该方法中判断了是否登录,并使用vue-router的$router.push()方法跳转到不同的链。 注意:isLogin需要根据你的项目实际情况进行修改。 ### 回答2: 在Vue中实现根据用户登录状态进行头像点跳转的功能,可以通过以下步骤进行实现: 1. 首先,需要在Vue的数据部分定义一个变量来表示用户的登录状态。可以使用一个布尔类型的变量,比如`isLoggedin`来表示用户是否登录。将其初始化为`false`,表示用户未登录。 2. 在头像所在的`<img>`标签中,绑定一个点事件,通过`v-on:click`指令来监听该事件。例如: ```html <img src="avatar.png" v-on:click="handleAvatarClick"> ``` 3. 在Vue的方法部分,定义一个函数来处理头像点事件。这个函数可以命名为`handleAvatarClick`,并在函数中进行根据登录状态的判断。 ```javascript methods: { handleAvatarClick() { if (this.isLoggedin) { // 已登录,跳转到登录后的链 this.$router.push('/loggedin-link'); } else { // 未登录,跳转到未登录链 this.$router.push('/unloggedin-link'); } } } ``` 4. 最后,在Vue的模板部分,需要显示用户头像的地方,将`isLoggedin`变量作为条件判断来决定是否显示头像。例如: ```html <template> <div> <img v-if="isLoggedin" src="avatar.png"> </div> </template> ``` 综上所述,以上步骤实现了根据用户登录状态点头像跳转到不同链的功能。当用户头像根据`isLoggedin`的值来判断跳转到哪个链。若`isLoggedin`为`true`,则跳转到已登录链;若`isLoggedin`为`false`,则跳转到未登录链。这样可以根据用户的登录状态,提供不同的交互和体验。 ### 回答3: 在Vue中,要实现当用户头像根据是否登录跳转到不同的链,可以通过以下步骤来实现: 1. 在Vue的组件中,首先定义一个布尔类型的变量来表示用户是否已经登录,例如:isLoggedin: false。 2. 在用户头像,触发一个点事件。可以通过给头像元素添加@click事件来实现,例如:@click="handleAvatarClick"。 3. 在Vue的methods中定义一个handleAvatarClick方法来处理点事件。在该方法中,可以通过判断isLoggedin的值来决定用户头像后应该跳转到哪个链。 4. 如果isLoggedin为true,表示用户已经登录,可以使用Vue的路由功能来跳转到指定的链。使用this.$router.push方法可以实现页面跳转,例如:this.$router.push('/profile')。 5. 如果isLoggedin为false,表示用户未登录,可以使用window.location.href来进行页面跳转。例如:window.location.href = '/login'。 6. 在Vue的模板中,将头像元素绑定isLoggedin,以及handleAvatarClick方法。例如:<img :src="avatarUrl" @click="handleAvatarClick" /> 通过以上步骤,当用户头像,根据是否登录的状态,自动跳转到不同的链

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值