keep-alive

TCP Keep-Alive

早过忘川 提交于 2020-01-30 15:21:20
在tcp编程的过程中,我们发现在没有数据读写的静默的连接上,是没有办法发现tcp连接是有效的还是无效的。比如客户端突然崩溃,服务端可能几天都在维护一个无用的连接。 那么有没有办法开启类似的轮询机制,让tcp告诉我们,连接是不是还“活着”的呢? 这就是Tcp保持活跃机制所要解决的问题。实际上,TCP有一个保持活跃的机制叫做Keep-Alive. 这个机制的原理是: 定义一个时间段,在这个时间段内,如果没有任何连接相关的活动,TCP保活机制会开始作用,每隔一个时间间隔,发送一个探测报文,该探测报文包含的数据非常少,如果连接几个探测报文都没有得到响应,则认为当前tcp连接已经死亡,系统内核将错误信息通知给上层应用程序。 上述的可定义变量,分别被称为保活时间,保活时间间隔和保活探测次数。在Linux系统中,这些变量分别对应sysctl变量里的 net.ipv4.tcp_keepalive_time, net.ipv4.tcp_keepalive_intvl, net.ipv4.tcp_keepalive_probes 默认设置是7200秒(2h),75s和9次探测。 如果开启了探活,需要考虑以下几种情况: 1.对端程序是正常的。当tcp的探测报文发送给对端,对端会正常响应,这样tcp保活时间会被重置,等待下一个tcp保活时间的到来。 2.对端程序崩溃,或对端由于其它原因导致报文不可达

Vue内置组件keep-alive的使用

橙三吉。 提交于 2020-01-29 12:17:50
本文主要介绍Vue内置组件keep-alive的使用。 Vue内置组件keep-alive的使用 keep-alive接收三个props: ●include - 字符串或正则表达式。只有名称匹配的组件会被缓存。 ●exclude - 字符串或正则表达式。任何名称匹配的组件都不会被缓存。 ●max - 数字。最多可以缓存多少组件实例。 当组件在 内被切换,它的 activated 和 deactivated 这两个生命周期钩子函数将会被对应执行。 Example: 123456 大专栏 Vue内置组件keep-alive的使用7891011 <keep-alive :include="/a|b/"> <router-view></router-view></keep-alive><keep-alive :exclude="/c|d/"> <router-view></router-view></keep-alive><keep-alive :max="10"> <router-view></router-view></keep-alive> 来源: https://www.cnblogs.com/lijianming180/p/12239941.html

在动态组件上使用 keep-alive

倖福魔咒の 提交于 2020-01-29 03:59:04
在动态组件上使用 keep-alive < < div id = "app" > < button @click = "A" > A < / button > < button @click = "B" > B < / button > < hr > < div > 没有加keep - alive标签的 < / div > < component : is = "type" > < / component > < hr > < div > 加了keep - alive标签的 < / div > < keep - alive > < component : is = "type" > < / component > < / keep - alive > < / div > <style> span { margin-right : 12px ; display : inline-block ; background-color : royalblue ; color : white ; } </style> < script > var A = { data : function ( ) { return { note : 'click on a blog title ' } } , template : ` <div> <span @click="A1">A1</span>

keep-alive

折月煮酒 提交于 2020-01-28 13:34:42
app.vue < keep - alive : include = "keepAliveInclude" > < router - view class = "router-view" / > < / keep - alive > data ( ) { return { keepAliveInclude : [ "Home" ] //匹配的路由名称 } } , home.vue // activated , deactivated 这两个生命周期函数一定是要在使用了keep-alive组件后才会有的,否则则不存在 // 当引入keep-alive的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activated, // 退出时触发deactivated。当再次进入(前进或者后退)时,只触发activated。 activated ( ) { this . getInitInfo ( ) ; //获取首页信息 } , deactivated ( ) { } , //不需要每次进入都更新数据,将接口请求写在mounted中 mounted ( ) { this . getInitInfo ( ) ; //获取首页信息 } , //退出登录清空keep-alive缓存; this . $parent . keepAliveInclude = [ ] ;

django学习----http协议

给你一囗甜甜゛ 提交于 2020-01-25 22:28:19
了解http协议的格式   请求协议:request       请求首行:包含请求方式(如get、post) url 协议版本       请求头:请求信息       空行:       请求数据:与网页内容相关的信息     get与post的区别:       在数据上get请求数据不会在请求体中它会放在URL后面,并且数据量有限制       post没有数据限制{表单:调整method="post"}              在地址栏直接给出地址的一定是get请求{地址栏请求,表单(默认)}    1、Host 请求的web服务器域名地址 2、User-Agent HTTP客户端运行的浏览器类型的详细信息。通过该头部信息,web服务器可以判断出http请求的客户端的浏览器的类型。 3、Accept 指定客户端能够接收的内容类型,内容类型的先后次序表示客户都接收的先后次序 4、Accept-Lanuage 指定HTTP客户端浏览器用来展示返回信息优先选择的语言 5、Accept-Encoding 指定客户端浏览器可以支持的web服务器返回内容压缩编码类型。表示允许服务器在将输出内容发送到客户端以前进行压缩,以节约带宽。 而这里设置的就是客户端浏览器所能够支持的返回压缩格式。 6、Accept-Charset HTTP客户端浏览器可以接受的字符编码集 7、Content

vue2.0 keep-alive最佳实践

ⅰ亾dé卋堺 提交于 2020-01-25 10:28:45
1.基本用法 vue2.0提供了一个keep-alive组件 用来缓存组件,避免多次加载相应的组件,减少性能消耗 <keep-alive> <component> <!-- 组件将被缓存 --> </component> </keep-alive> 有时候 可能需要缓存整个站点的所有页面,而页面一般一进去都要触发请求的 在使用 keep-alive 的情况下 <keep-alive><router-view></router-view></keep-alive> 将首次触发请求写在 created 钩子函数中,就能实现缓存, 比如列表页,去了详情页 回来,还是在原来的页面。 2.缓存部分页面或者组件 (1)使用router. meta属性 // 这是目前用的比较多的方式 <keep-alive> <router-view v-if="$route.meta.keepAlive"></router-view> </keep-alive> <router-view v-if="!$route.meta.keepAlive"></router-view> router 设置 ... routes: [ { path: '/', redirect: '/index', component: Index, meta: { keepAlive: true }}, { path: '

HTTP Keep-Alive模式

主宰稳场 提交于 2020-01-24 06:54:45
故事发生在10月份的一次面试经历中,本来我不想说出来丢人显眼,但是为了警醒自己和告诫后人,我决定写成博文发出来。因为在面试过程中,我讲在2009年写过QQ农场助手,在这期间深入学习了HTTP协议,而且在2010-05-18写了博文: HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等 。面试官说既然我熟悉HTTP协议,就问“当HTTP采用keepalive模式,当客户端向服务器发生请求之后,客户端如何判断服务器的数据已经发生完成?” 说实话,当时我懵了,一直没有关注过keepalive模式。我只知道: HTTP协议中客户端发送一个小请求,服务器响应以所期望的信息(例如一个html文件或一副gif图像)。服务器通常在发送回所请求的数据之后就关闭连接。这样客户端读数据时会返回EOF(-1),就知道数据已经接收完全了。 我就这样被面试官判了死刑!!!说我完全停留在表面,没有深入(当时真的很受打击,一直自认为技术还不错!)。我当时真的很想找各种借口: 之前没有用到HTTP的keepalive模式,所以没有深入 好久没有用HTTP协议,细节忘了 实习的东西跟HTTP协议没有关系,用得少了就忘了 。。。。。。 觉得各种解释都是那么苍白无力!我再次感叹书到用时方恨少,也感叹一个人的时间是多么的有限(曾一度想成为一个IT专业全才),根本没有精力面面俱到

HTTP Keep-Alive模式

空扰寡人 提交于 2020-01-22 22:51:44
故事发生在10月份的一次面试经历中,本来我不想说出来丢人显眼,但是为了警醒自己和告诫后人,我决定写成博文发出来。因为在面试过程中,我讲在2009年写过QQ农场助手,在这期间深入学习了HTTP协议,而且在2010-05-18写了博文: HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等 。面试官说既然我熟悉HTTP协议,就问“当HTTP采用keepalive模式,当客户端向服务器发生请求之后,客户端如何判断服务器的数据已经发生完成?” 说实话,当时我懵了,一直没有关注过keepalive模式。我只知道: HTTP协议中客户端发送一个小请求,服务器响应以所期望的信息(例如一个html文件或一副gif图像)。服务器通常在发送回所请求的数据之后就关闭连接。这样客户端读数据时会返回EOF(-1),就知道数据已经接收完全了。 我就这样被面试官判了死刑!!!说我完全停留在表面,没有深入(当时真的很受打击,一直自认为技术还不错!)。我当时真的很想找各种借口: 之前没有用到HTTP的keepalive模式,所以没有深入 好久没有用HTTP协议,细节忘了 实习的东西跟HTTP协议没有关系,用得少了就忘了 。。。。。。 觉得各种解释都是那么苍白无力!我再次感叹书到用时方恨少,也感叹一个人的时间是多么的有限(曾一度想成为一个IT专业全才),根本没有精力面面俱到

HTTP/HTTPS协议

耗尽温柔 提交于 2020-01-20 14:35:30
HTTP协议是什么? 超文本传输协议(HyperText Transfer Protocol, 缩写:HTTP)是一种用于分布式、协作式和 超媒体信息系统的 应用层协议。 设计HTTP最初的目的是为了提供一种发布和接收 HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由 统一资源标识符(Uniform Resource Identifiers,URI)来标识。 Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是很短的。所以Http连接是一种短连接,是一种无状态的连接。 怎么理解"HTTP是无状态协议"? 无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息. 所谓的无状态,是指浏览器每次向服务器发起请求的时候,不是通过一个连接,而是每次都建立一个新的连接。如果是一个连接的话,服务器进程中就能保持住这个连接并且在内存中记住一些信息状态。而每次请求结束后,连接就关闭,相关的内容就释放了,所以记不住任何状态,成为无状态连接。 无状态协议解决办法: 通过 1、Cookie 2、通过Session 会话保存。 Cookie 在实际业务场景中,会要求用户在页面A进行账号登陆

HTTP Keep-Alive模式

主宰稳场 提交于 2020-01-19 11:35:55
故事发生在10月份的一次面试经历中,本来我不想说出来丢人显眼,但是为了警醒自己和告诫后人,我决定写成博文发出来。因为在面试过程中,我讲在2009年写过QQ农场助手,在这期间深入学习了HTTP协议,而且在2010-05-18写了博文: HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等 。面试官说既然我熟悉HTTP协议,就问“当HTTP采用keepalive模式,当客户端向服务器发生请求之后,客户端如何判断服务器的数据已经发生完成?” 说实话,当时我懵了,一直没有关注过keepalive模式。我只知道: HTTP协议中客户端发送一个小请求,服务器响应以所期望的信息(例如一个html文件或一副gif图像)。服务器通常在发送回所请求的数据之后就关闭连接。这样客户端读数据时会返回EOF(-1),就知道数据已经接收完全了。 我就这样被面试官判了死刑!!!说我完全停留在表面,没有深入(当时真的很受打击,一直自认为技术还不错!)。我当时真的很想找各种借口: 之前没有用到HTTP的keepalive模式,所以没有深入 好久没有用HTTP协议,细节忘了 实习的东西跟HTTP协议没有关系,用得少了就忘了 。。。。。。 觉得各种解释都是那么苍白无力!我再次感叹书到用时方恨少,也感叹一个人的时间是多么的有限(曾一度想成为一个IT专业全才),根本没有精力面面俱到