Socket详解+HTTP和Socket的区别,两个协议哪个更⾼效⼀点?
Socket定义
1、Socket即套接字,是⼀个对 TCP / IP协议进⾏封装的编程调⽤接⼝(API)
socket通信报文格式
1. 即通过Socket,我们才能在Andorid平台上通过TCP/IP协议进⾏开发。
2. Socket不是⼀种协议,⽽是⼀个编程调⽤接⼝(API),属于传输层(主要解决数据如何在⽹络中传输)。
2、成对出现,⼀对套接字:
Socket ={(IP地址1:PORT端⼝号),(IP地址2:PORT端⼝号)}
原理
Socket的使⽤类型主要有两种:
1、流套接字(streamsocket):基于TCP协议,采⽤<;流>的⽅式提供可靠的字节流服务
2、数据报套接字(datagramsocket):基于UDP协议,采⽤<;数据报⽂>提供数据打包发送的服务
Socket 与 Http 对⽐
1、Socket属于传输层,因为TCP/IP协议属于传输层,解决的是数据如何在⽹络中传输的问题。
2、HTTP协议属于应⽤层,解决的是如何包装数据。
由于⼆者不属于同⼀层⾯,所以本来是没有可⽐性的。但随着发展,默认的Http⾥封装了下⾯⼏层的使⽤,所以才会出现Socket & HTTP协议的对⽐:(主要是⼯作⽅式的不同):
HTTP:采⽤<;请求—响应>⽅式。
即建⽴⽹络连接后,当客户端向服务器发送请求后,服务器端才能向客户端返回数据。
可理解为:是客户端有需要才进⾏通信。
Socket:采⽤<;服务器主动发送数据>的⽅式。
即建⽴⽹络连接后,服务器可主动发送消息给客户端,⽽不需要由客户端向服务器发送请求。
可理解为:是服务器端有需要才进⾏通信。
HTTP和Socket的区别,两个协议哪个更⾼效⼀点?
1、创建Socket链接时,可以指定使⽤的传输层协议,Socket可以⽀持不同的传输层协议(TCP或UDP),当使⽤TCP协议进⾏连接时,该Socket连接就是⼀个TCP连接。Socket连接⼀旦建⽴,通信双⽅即可开始发送数据内容,直到双⽅连接断开。
注意,同HTTP协议相⽐不同的是HTTP只能基于TCP,Socket不仅能⾛TCP,⽽且还能⾛UDP,这个是socket的第⼀个特点。
2、HTTP连接使⽤的是“请求-响应”的⽅式,不仅在请求时需要先建⽴连接,⽽且需要客户端向服务器发出请求后,服务器端才能回复数据。很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。
此时若双⽅建⽴的是Socket连接,服务器就可以直接将数据传送给客户端;若双⽅建⽴的是HTTP连接,则服务器需要等到客户端发送⼀次请求后才能将数据传回给客户端。
Socket效率⾼,⾄少不⽤解析HTTP报⽂头部⼀些字段。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。