短连接
连接->传输数据->关闭连接
比如HTTP是无状态的的短链接,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。
具体就是:浏览器client发起并建立TCP连接 ->client发送HttpRequest报文 ->server接收到报文->server handle并发送HttpResponse报文给前端,发送完毕之后立即调用socket.close方法
->client接收response报文->client最终会收到server端断开TCP连接的信号->client 端断开TCP连接,具体就是调用close方法。
也可以这样说:短连接是指SOCKET连接后,发送接收完数据后马上断开连接。
因为连接后接收了数据就断开了,所以每次数据接受处理不会有联系。 这也是HTTP协议无状态的原因之一。
长连接
连接->传输数据->保持连接 ->传输数据->...........->直到一方关闭连接,多是客户端关闭连接。
长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。
HTTP在短链接和长连接上的选择:
HTTP是无状态的 ,也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。
如果客户端浏览器访问的某个HTML或其他类型的 Web页中包含有其他的Web资源,如JavaScript文件、图像文件、CSS文件等;当浏览器每遇到这样一个Web资源,就会建立一个HTTP会话
HTTP1.1和HTTP1.0相比较而言,最大的区别就是增加了持久连接支持(貌似最新的HTTP1.1 可以显示的指定 keep-alive),但还是无状态的,或者说是不可以信任的。
如果浏览器或者服务器在其头信息加入了这行代码 Connection:keep-alive
TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了带宽。
实现长连接要客户端和服务端都支持长连接。
什么时候用长连接,短连接?
长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。
每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,次处理时直接发送数据包就OK了,不用建立TCP连接。
例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。
像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连好。
总之,长连接和短连接的选择要视情况而定。
是指短链接,打开那个网址会跳转到另一个网址。
短链接:
定义:短链接,通俗来说,就是将长的 URL网址,通过程序计算等方式,转换为简短的网址字符串。
应用:早期 短链接广泛应用于图片上传网站,通过缩短网址URL链接字数,达到减少代码字符串的目的。更便于使用者引用网址,写入代码中。节省 字符数空间。常见于网店图片分类的使用,因有 字符限制,运用 短链接,达到外链图片的目的,自微博盛行以来,在微博字数有限的特色下, 短链接也盛行于微博网站,以节省字数,给博主发布更多文字的空间。
服务:各大微博都推出了自己的短链接服务。
网址:
通常指因特网上网页的地址。在网络世界中,一些信息以逐页的方式储存在因特网上,每一页都有一个相应的地址,以便其他用户访询而获取信息资料,就像打电话必须知道对方的电话号码,这一号码也必须是唯一的一样。
通常,这一地址用四个十六进制数表示,中间用小数点隔开,称为IP地址,IP是Internet Protocol(网际协议)的缩写。采用域名系统命名的网址,即为域名地址,域名地址以层次化表示,中国为cn,美国为us,www表示这台计算机是一台Web服务器。
长链接和短链接又分别称为持续链接和非持续链表层-HTTP
长链接与锻炼的区别是头域:Connection。
在http1.0及之前都是默认方式为非持久性链接(关键词未知查不到抱歉!)。在HTTP1.1之后就将链接默认为Keep-Alive表示是持久性链接。当链接想要关闭的话就将状态字设置为close。
题外话,这个头域还有一个作用是可以控制不再
短连接的操作步骤是:
建立连接——数据传输——关闭连接...建立连接——数据传输——关闭连接
欢迎分享,转载请注明来源:优选云