请教下socket和http在客户端网络请求中的区别,请大神求教

在http中,不同的接口,可以采用http://www.test.com/testA,http://www.test.com/testB 这样来区分不同的接口,那么在socket中,是如何来区分的,也是一样吗??还是说通过端口号!!!请大神求教

你可以用socket实现http的客户端和服务器端。两者可以说是超集和子集的关系。所以问“区别”是不妥当的。

端口是用来针对TCP和UDP的,可以认为是每一次tcp或udp通信的内存缓冲区(tcp是有连接的所以很容易理解这一点,udp无连接但是其有
可以监听的功能),而http和socket都是tcp之上构建的(一个无连接,一个有连接),在服务端上这一点体现很好,但在客户端(特指浏览器),
由于以前的技术限制,socket通常使用http来模拟(使用poll等技术),比如socket.IO的前端库,而HTML5后,采用html5的新式内核会用tcp
直接构建socket

socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API)

HTTP是应用层协议,主要解决如何包装数据。

由于通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。但在实际网络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致 Socket 连接断连,因此需要通过轮询告诉网络,该连接处于活跃状态。

而HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。

很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接将数据传送给客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。

http和socket的区别请查看:http://blog.csdn.net/dlgdark/article/details/78177490

Socket是对TCP/IP协议(传输层)的封装,是一个调用接口(API),一般一个socket必须包含一个IP地址+一个传输协议(TCP/UDP)+一个端口号(1到65535), 比如 (100.1.1.20, TCP, port 1030)就是一个socket。
客户端和服务器之间的每个连接都要一个唯一的Socket。

HTTP是应用层协议, 运行在TCP之上 .

socket主要通过端口号来区分

socket通常通过四元组来区分:本端地址、本端端口号、对端地址、对端端口号。另外还有一个是协议号,如果是raw socket ,只通过协议号、本端地址、对端地址来区分