http tcp websocket

tcp协议是水管,http协议是水,水可以时有时无,但一旦有水了,水管可以做到滴水不漏。

HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。

IP协议主要解决网络路由和寻址问题。

TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。

HTTP的无状态则是应用层的,用cookie和session解决。

网络7层协议(OSI协议):7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层

HTTP无状态指的是上一次会话和下一次会话没有关联,因为每一次HTTP请求都是一个新的链接,就算是同一个用户发起的两次HTTP请求,如果你不用额外的手段(比如每次都把用户的标识传过来),你是不知道这两次请求是不是同一个用户发来的。
而TCP协议是长连接的,同一个用户建立起一条tcp连接后,发送和接受消息都是走同一条链路,你可以确定这些消息是来自哪个链路的(就可以确定用户是谁)
事实上HTTP协议和TCP协议是处于不同层次的,TCP协议处于更底层,用来实现可靠的网络传输,他并不关注传输的内容是什么。
而HTTP协议是为了万维网设计的,是为了实现在web服务器和浏览器之间传输超文本内容的,它不关注这些内容是怎么传输的,它只要求这些内容能被可靠传输,协议所关注的是这些通过网络传输过来的数据,正确的解析这些传输的数据,保证浏览器和web服务器可以正常的“沟通”,这才是HTTP协议的根本,他也可以基于其他可靠的网络传输协议实现,不一定需要采用TCP协议(只不过现有的网络传输协议中,TCP是使用最广泛的)
 
 
原文地址:https://www.cnblogs.com/yangai/p/15344046.html