首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【漫画】TCP连接为什么是三次握手,不是两次握手,也不是四次握手?

然后你说“乔哥,我听到你说话了”,这是第三次握手,你听到我说话,也就是说明小萌你的接受消息的能力没有问题。这样就可以进行通话了(建立了TCP连接) ? ? ? 小萌:“喂,乔哥听得到吗?”...小萌:1.两次握手,这个我想是因为服务器收到了客户端的消息,服务器知道了客户端是可以发送消息的,但由于没有第三次握手,所以服务器不知道客户端是否具有接受消息的能力;2.客户端从服务器接受到了消息,客户端知道了服务器接受到了我的消息才回复...,说明服务器的接受消息能力和发送消息的能力没问题(服务器发送出了消息);3.综上所述,客户端确保了服务器的接受发送没问题,但是服务器仅仅只知道客户端的发送消息没问题,这并不是可靠的,所以两次握手不可以。...这次没有阻塞,成功连接了,因为是讨论的两次握手,所以只进行两次连接就可以进行通信了。 ? 通信结束,然后就断开了连接。 ?...但是由于客户端它以为这个连接请求已经丢失了,所以不会利用这个建立的连接请求进行数据通信,虽然服务器分配给了资源给客户端,但是客户端并不进行数据传输,这样就白白浪费了服务器的资源,试想一下如果网络很拥堵,那么等网络变畅通以后,服务器岂不是浪费了一堆资源

1.2K20

【漫画】TCP连接为什么是三次握手,不是两次握手,也不是四次握手?

然后你说“乔哥,我听到你说话了”,这是第三次握手,你听到我说话,也就是说明小萌你的接受消息的能力没有问题。这样就可以进行通话了(建立了TCP连接) 小萌:“喂,乔哥听得到吗?”...小萌:1.两次握手,这个我想是因为服务器收到了客户端的消息,服务器知道了客户端是可以发送消息的,但由于没有第三次握手,所以服务器不知道客户端是否具有接受消息的能力;2.客户端从服务器接受到了消息,客户端知道了服务器接受到了我的消息才回复...,说明服务器的接受消息能力和发送消息的能力没问题(服务器发送出了消息);3.综上所述,客户端确保了服务器的接受发送没问题,但是服务器仅仅只知道客户端的发送消息没问题,这并不是可靠的,所以两次握手不可以。...这次没有阻塞,成功连接了,因为是讨论的两次握手,所以只进行两次连接就可以进行通信了。 通信结束,然后就断开了连接。...但是由于客户端它以为这个连接请求已经丢失了,所以不会利用这个建立的连接请求进行数据通信,虽然服务器分配给了资源给客户端,但是客户端并不进行数据传输,这样就白白浪费了服务器的资源,试想一下如果网络很拥堵,那么等网络变畅通以后,服务器岂不是浪费了一堆资源

50810
您找到你想要的搜索结果了吗?
是的
没有找到

由重构进阶前端开发入门 (二) 事件与事件对象

从最初的“点击”开始 “点击这个按键时,XXX 变成 YYY,然后……” 新手最初学会的,基本是这样使用 onclick 事件属性进行处理: <button onclick="alert('Hello...DOM 对象与 jQuery 对象 上面 jQuery 的代码和之前的原生 JS 代码等效,但有一点需要注意,也是新手经常混淆的。...个人理解是,“事件”就是用户操作、浏览器状态变化这些正在发生的事情;“事件对象”就是这个“事件”发生的相关信息。...jQuery 编写兼容 IE8 的代码,需要对事件绑定、事件对象获取、元素查找、点击坐标、元素坐标等操作做大量兼容处理。...大部分属性只需要参考 W3C 规范即可,各属性具体说明可阅读 jQuery 的 API 文档进行了解: 官方文档:jQuery | Event Object 中文文档:jQuery | 事件对象

1.6K10

【Java 进阶篇】JQuery DOM操作:Class属性的舞蹈魔法

在本篇博客中,我们将深入研究JQuery DOM操作中的Class属性操作,揭示这段舞蹈背后的绝妙之处。 JQuery的独特韵味 JQuery,这个前端开发中的名角,以其简洁强大的语法备受推崇。...// 示例:切换active类 $("#myElement").toggleClass("active"); 通过toggleClass()方法,如果#myElement元素原先有active类,则移除...制作图片轮播器 在制作图片轮播器时,我们通常需要通过Class属性操作来控制当前显示图片的样式。 <!...通过合理的选择器,我们能够准确地选中需要操作的元素,避免不必要的干扰。...在前端的舞台上,Class属性的操作犹如一段华丽的舞蹈,通过简洁强大的JQuery语法,为我们展示了操纵HTML元素的绝妙技艺。

14020

jQuery最佳实践

为了获取这个属性,必须连续两次调用jQuery,第一次是$(this),第二次是attr('id')。 事实上,这种处理完全不必要。...比如,有一个表格(table元素),里面有100个格子(td元素),现在要求在每个格子上面绑定一个点击事件(click),请问是否需要将下面的命令执行100次?...$("td").bind("click", function(){ $(this).toggleClass("click"); }); 回答是不需要,我们只要把这个事件绑定在table元素上面就可以了,...因此,这个事件只需要在父元素绑定1次即可,需要在子元素上绑定100次,从而大大提高性能。这就叫事件的"委托处理",也就是子元素"委托"父元素处理这个事件。 具体的写法有两种。...因为elem.data()方法是定义在jQuery函数的prototype对象上面的,$.data()方法是定义jQuery函数上面的,调用的时候不从复杂的jQuery对象上调用,所以速度快得多。

1.3K20

jquery要怎么写才能速度最快?(转…

为了获取这个属性,必须连续两次调用jQuery,第一次是$(this),第二次是attr('id')。 事实上,这种处理完全不必要。...比如,有一个表格(table元素),里面有100个格子(td元素),现在要求在每个格子上面绑定一个点击事件(click),请问是否需要将下面的命令执行100次?   ...$("td").bind("click", function(){     $(this).toggleClass("click");   }); 回答是不需要,我们只要把这个事件绑定在table...因此,这个事件只需要在父元素绑定1次即可,需要在子元素上绑定100次,从而大大提高性能。这就叫事件的"委托处理",也就是子元素"委托"父元素处理这个事件。 具体的写法有两种。...因为elem.data()方法是定义在jQuery函数的prototype对象上面的, $.data()方法是定义jQuery函数上面的,调用的时候不从复杂的jQuery对象上调用,所以速度快得多。

1.6K30

jQuery最佳实践

为了获取这个属性,必须连续两次调用jQuery,第一次是$(this),第二次是attr(‘id’)。 事实上,这种处理完全不必要。...比如,有一个表格(table元素),里面有100个格子(td元素),现在要求在每个格子上面绑定一个点击事件(click),请问是否需要将下面的命令执行100次?   ...$(“td”).on(“click”, function(){     $(this).toggleClass(“click”);   }); 回答是不需要,我们只要把这个事件绑定在table元素上面就可以了...因此,这个事件只需要在父元素绑定1次即可,需要在子元素上绑定100次,从而大大提高性能。这就叫事件的”委托处理”,也就是子元素”委托”父元素处理这个事件。   ...因为elem.data()方法是定义在jQuery函数的prototype对象上面的,$.data()方法是定义jQuery函数上面的,调用的时候不从复杂的jQuery对象上调用,所以速度快得多。

83930

学习jQuery?这篇文章就够了

注意:如果通过 jQuery 方法获取页面中元素,没有查找到,返回值不是 null,返回值为一个空数组 [],所以判断是否获取到元素,通过 jQuery.size() != 0 来判断。....selected').size()); }); script> 七、层次选择器 1、需求 若想通过 DOM 元素之间的层次关系来获取特定元素,例如后代元素,子元素, 相邻元素,兄弟元素等,则需要使用层次选择器...元素,并打印分析结果 console.log($('label + input')); }); script> 八、过滤选择器 1、定义 过滤选择器:通过特定的过滤规则来筛选所需要的...removeClass').click(function () { $('#btn').removeClass('other'); }); $('#toggleClass...').click(function () { $('#btn').toggleClass('other'); }); $('#hasClass')

12.3K10

jQuery最佳实践

为了获取这个属性,必须连续两次调用jQuery,第一次是$(this),第二次是attr('id')。 事实上,这种处理完全不必要。...比如,有一个表格(table元素),里面有100个格子(td元素),现在要求在每个格子上面绑定一个点击事件(click),请问是否需要将下面的命令执行100次?   ...$("td").on("click", function(){     $(this).toggleClass("click");   }); 回答是不需要,我们只要把这个事件绑定在table元素上面就可以了...因此,这个事件只需要在父元素绑定1次即可,需要在子元素上绑定100次,从而大大提高性能。这就叫事件的"委托处理",也就是子元素"委托"父元素处理这个事件。   ...因为elem.data()方法是定义在jQuery函数的prototype对象上面的,$.data()方法是定义jQuery函数上面的,调用的时候不从复杂的jQuery对象上调用,所以速度快得多。

1.7K60
领券