首先我们先来说说,yb体育官方-亚博网站首页与长网址在技术上有什么区别?
短网址:
一、短网址
短网址->传输数据->封闭网址
好比http是无状态的的短网址,浏览器和服务器每进行一次http操纵,就建立一次连接,但任务结束就间断连接。
详细就是 浏览器client发起并建立tcp连接 -> client发送httprequest报文 -> server接收到报文->server handle并发送httpresponse报文给前端,发送完毕之后立刻调用socket.close方法
->client接收response报文->client终极会收到server端断开tcp连接的信号->client 端断开tcp连接,详细就是调用close方法。
也可以这样说:短网址是指socket连接后,发送接收完数据后马上断开连接。
由于连接后接收了数据就断开了,所以每次数据接受处理不会有联系。 这也是http协议无状态的原因之一。
二、长网址
长网址->传输数据->保持连接 -> 传输数据-> ...........->直到一方封闭连接,多是客户端封闭连接。
长连接指建立socket连接后无论是否使用都保持连接,但安全性较差。
http在短网址和长网址上的选择:
1)http是无状态的 ,也就是说,浏览器和服务器每进行一次http操纵,就建立一次连接,但任务结束就间断连接。假如客户端浏览器访问的某个html或其他类型的 web页中包含有其他的web资源,如javascript文件、图像文件、css文件等;当浏览器每碰到这样一个web资源,就会建立一个http会话
2)http1.1和http1.0比拟较而言,最大的区别就是增加了持久连接支持(貌似最新的http1.1 可以显示的指定 keep-alive),但仍是无状态的,或者说是不可以信任的。
假如浏览器或者服务器在其头信息加入了这行代码 connection:keep-alive
tcp连接在发送后将仍旧保持打开状态,于是,浏览器可以继承通过相同的连接发送哀求。保持连接节省了为每个哀求建立新连接所需的时间,还节约了带宽。
实现长网址要客户端和服务端都支持长连接。
什么时候用长网址,短网址?
长网址多用于操作频繁,点对点的通讯,而且连接数不能太多情况,。每个tcp连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,次处理时直接发送数据包就ok了,不用建立tcp连接。例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。
而像web网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像web网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连好。
总之,长网址和短网址的选择要视情况而定。