LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭
Socket 与http的区别
jiaxin2015 2022-03-14


层理解:

    socket就是所谓的长连接,理论上,连接一但创立,就不会主动断开。但是由于各种环境因素可能会是连接断开,比如说:服务器端或客户端主机down了,网络故障,或者两者之间长时间没有数据传输,网络防火墙可能会断开该连接以释放网络资源。

    http就是所谓的短连接,即客户端向服务器发出一次请求,服务器给出响应后,服务器跟客户端的连接就会断开。

2、区别

    http是简单的对象访问协议,对应于应用层,是基于TCP协议之上的。

        tcp 对应于传输层

        ip对应于网络层

    TCP/IP是传输过程的协议,主要解决数据如何在网络中传输,而http是对应于应用层,主要解决的是对传输数据的包装

 



    socket是对TCP/IP的封装,本身并不是协议,而是一个调用接口api,是一组可以调用的接口,通过这些接口,才可以调用TCP/IP协议。除了TCP还可以使用UDP协议。

    创建Socket的时候,可以指定使用传输层的协议:TCP或者UDP。

    socket原理:

        至少需要一对套接字,分别是clientSocket,severSocket连接分为3部分

  1.  服务器监听:服务器并不定位具体的客户端的套接字,而是时刻处于监听状态

  2.  客户端发送请求:客户端要描述它要连接的服务器的套接字,提供地址和端口号,然后向服务器套接字提出连接请求。

  3. 连接确认:当服务器套接字街道客户端套接字发来的请求后,就响应客户端套接字的请求,并建立一个新的线程,把服务器端的套接字的描述发给客户端。一旦客户端确定了此描述,就真正的建立连接。而服务器套接字继续监听,继续接收其他客户端的套接字请求。

很多情况下,都需要服务器向客户端主动发送数据,实现数据的实时同步。

若双方是socket连接,可以由服务器想客户端发送数据

若双方是http连接,则服务器需要等客户端发送请求后,才能将数据回传给客户端。这时候就要用到轮训了。


    



        

推荐文章
评论(0)
分享到
转载我的主页