socket也叫 套接字
socket是一套API 是对TCP/IP协议的封装,为了便于使用TCP/IP协议的,这样形成了我们知道的一些基本接口,create、listen、connect、accept、send、read和write等等,socket并不是协议。
socket层上的协议指的是数据传输的格式
无状态链接,就是指每次发起请求都是新的链接,不是同一个链接,不会记录链接状态,每次请求结束后,链接就会关闭,相关内存会释放,这样不记录状态叫无状态链接。
Http是无状态 短连接链接, TCP为有状态 长链接
而Http又是建立在TCP的基础上的 两者不一样的原因是因为Http在每次请求完成后都会关闭TCP链接,所以称为短连接
而通过socket编程使用TCP编程的时候,是可以用代码控制链接何时开始何时关闭的,也就是说用代码打开一个tcp链接之后, 不去关闭它, 那么这个链接就一直存在,相关数据状态也会中一直保存。
Http的实现逻辑, HTTP客户端首先发起建立与服务器TCP连接,链接一旦建立,那么HTTP客户端和服务器进程就可以通过各自的socket来访问TCP了,客户端用自己的socket发送请求消息也用自己的socket接收响应消息,服务器也一样。消息一旦发给socket后,那么这个消息就完全由TCP接管,中间传输过程也由TCP来做。
(客户端不允许多设备同时登陆,也是用TCP长连接来做处理的,服务器来控制链接个数。)