TCP/IP
TCP/IP是个协议组,可分为三个层次:网络层,传输层和应用层.
在网络层有IP协议,ICMP协议,ARP协议,RARP协议和BOOTP协议.
在传输层中有:TCP协议与UDP协议.
在应用层有:通过TCP协议来通信的应用层协议包括FTP,HTTP,TELNET,SMTP协议. 通过UDP协议来通信的应用层协议包括DNS,TFTP等;
TCP/IP各层级关系图.png
短连接
连接->数据传输->关闭连接
HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,单任务结束后就中断连接.也可以这样说:短连接是指Socket连接后发送后接收完数据后马上断开连接.
长连接
连接->传输数据->保持连接->传输数据->….->关闭连接
长连接指建立socket连接后不管是否使用都保持连接,但安全性较差.
http的长连接
HTTP也可以建立长连接的,使用Connection:keep-alive,HTTP1.1默认进行持久连接,HTTP1.1和HTTP1.0相比较而言最大的区别就是添加了持久连接支持(貌似最新的http1.0可以显示的指定keep-alive)但还是无状态的,或者说是不可信任的.
什么时候用长连接,短连接?
长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况.每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接在操作的话那么处理时间会降低很多,所以每个操作完后都不断开,次处理时直接发送数据包就OK了,不用再次建立连接.例如即使通讯环信底层用的就是长连接聊天过程中为了保证消息的实时性,保持长连接进行会话!
而web网站的htt