HTTP 和 Socket 的区别
来源:互联网 发布:万花成女捏脸数据 编辑:程序博客网 时间:2024/05/16 10:24
http 和 socket 首先要熟悉网络七层:物 数 网 传 会 表 应,'
如图1:
HTTP 协议:超文本传输协议,对应于应用层,用于如何封装数据.
TCP/UDP 协议:传输控制协议,对应于传输层,主要解决数据在网络中的传输。
IP 协议:对应于网络层,同样解决数据在网络中的传输。
传输数据的时候只使用 TCP/IP 协议(传输层),如果没有应用层来识别数据内容,传输后的协议都是无用的。
应用层协议很多 FTP,HTTP,TELNET等,可以自己定义应用层协议。
web 使用 HTTP 作传输层协议,以封装 HTTP 文本信息,然后使用 TCP/IP 做传输层协议,将数据发送到网络上。
HTTP和Socket连接区别
1 TCP连接
要想明白Socket,必须要理解TCP连接.
建立TCP连接的"三次握手":
第一次:客户端向服务器发送SYN包(syn=j),同时自己处于SYN_SEND状态.
第二次:服务器端收到SYN包后,必须确认客户的SYN(syn=j+1),同时也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态.
第三次:客户端收到服务器发来的SYN+ACK包,就向服务器发送SYN(syn=k+1),发送完毕后,服务器和客户端都进入ESTABLISHED状态.完成三次握手.
握手过程中,并不传输数据.在握手后,服务器与客户端才开始传输数据,理想状态下,TCP连接一旦建立,在通讯双方中的任何一方主动断开连接之前,TCP连接会一直保持下去.
2 HTTP连接
HTTP最显著的特点:
客户端发送请求都需要服务器端回送响应.请求结束后,主动释放链接.HTTP是一种短连接.通常的做法是,不需要任何数据,也要保持每隔一段时间向服务器发送"保持连接"的请求.这样可以保证客户端在服务器端是"上线"状态.
3 socket原理
Socket连接,至少需要一对套接字,分为clientSocket,serverSocket.连接分为3个步骤:
服务器监听:
服务器并不定位具体客户端的套接字,而是时刻处于监听状态.
客户端请求:客户端的套接字要描述它要连接的服务器的套接字.提供地址和端口号,然后向服务器套接字提出连接请求.
连接确认:
当服务器套接字收到客户端套接字发来的请求后,就响应客户端套接字的请求,并建立一个新的线程,把服务器端的套接字的描述发给客户端,一旦客户端确认了此描述,就正式建立连接.而服务器套接字继续处于监听状态,继续接收其他客户端套接字的连接请求.
4 Socket连接与TCP连接
创建Socket连接的时候,可以指定传输层协议.可以是TCP或者UDP,当用TCP连接,该Socket就是个TCP连接.
5 Socket连接与HTTP连接
通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通讯双方开始互发数据内容,直到双方断开连接.在实际应用中,由于网络节点过多,在传输过程中,会被节点断开连接.因此要通过轮询高速网络,该节点处于活跃状态.
HTTP连接使用的是"请求-响应"方式,不仅在请求时建立连接,而且客户端向服务器端请求后,服务器才返回数据.
很多情况下,都是需要服务器端向客户端主动推送数据,保持客户端与服务端的实时同步.若双方是Socket连接,可以由服务器直接向客户端发送数据.若双方是HTTP连接,则服务器需要等客户端发送请求后,才能将数据回传给客户端.因此,客户端定时向服务器端发送请求,不仅可以保持在线,同时也询问服务器是否有新数据,如果有就将数据传给客户端.
- Http和Socket的区别
- http和Socket的区别
- http和socket的区别
- HTTP和SOCKET的区别
- HTTP和socket的区别
- Socket和HTTP的区别
- socket和http的区别
- socket和http的区别
- HTTP 和 Socket 的区别
- HTTP和SOCKET 区别
- Http和Socket区别
- Http和Socket区别
- Http和Socket区别
- Http和Socket区别
- Http和Socket区别
- Http和Socket区别
- Http和Socket区别
- http和socket区别
- 用jq实现拖拽效果
- 第五周周总结
- JAVA【IO二】file类
- Building a HIPAA-Compliant Cybersecurity Program.pdf 免费下载
- Redis时延问题:高时延操作总结
- HTTP 和 Socket 的区别
- leetcode 20. Valid Parentheses
- Linux Centos6.5 安装Apache及优化
- POJ 1815 Friendship 最小割
- Android 借助 Python 实现自动打包上传 fir
- [坚毅:释放激情与坚持的力量].(美).安杰拉·达克沃思.扫描版.pdf 免费下载
- 多态与虚函数(虚表)
- Matlab中窗函数的简单使用
- 并查集(路径压缩)