今天看了一篇打开了很久的博文,讲的内容就是HTTP、TCP与UDP的区别,比较基础,正好可以记录一下。将其中的内容总结一下,自己以前也没有好好地学习网络基础,由浅入深,重新学习吧。
TCP/IP
TCP/IP是一个协议栈,参考模型一般为四层结构:应用层、传输层、网络层和网络接口层。也有五层结构的,将网络接口层分为链路层和物理层。OSI参考模型为七层结构:应用层、表示层、会话层、传输层、网络层、链路层和物理层。参考图如下:
在TCP/IP协议栈中,应用层常见的协议有:FTP、HTTP;传输层协议有:TCP和UDP;网络层协议有:IP、ARP等。参考图如下:
TCP
TCP是基于连接的协议,在发送消息之前,会先经过三次握手建立连接,只要客户端或者服务器没有主动断开,连接就一直会存在,称为长连接。TCP协议传输数据无大小限制,保证数据可靠性和顺序。
UDP
UDP是基于无连接的协议,不建立连接,直接将数据发送出去。因此UDP不能保证数据的可靠性和顺序,适用于少量数据的发送,一般数据包限定在64KB之内。
HTTP
HTTP是基于TCP的协议,发送请求时建立TCP连接,请求结束后,断开连接,被称为短连接。HTTP是无状态的,这表示客户端和服务器互相都不知道对方的状态,比如,在无cookie和Session的情况下,服务器不知道客户端是否完成了登陆。