Socket 和 http 的区别
HTTP
超文本传输协议,首先它是一个协议,并且是基于TCP/IP协议基础之上的应用层协议。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,HTTP是应用层协议,主要解决如何包装数据。HTTP协议详细规定了浏览器与服务器之间相互通信的规则,是万维网交换信息的基础。HTTP是基于请求-响应形式并且是短连接,并且是无状态的协议。针对其无状态特性,在实际应用中又需要有状态的形式,因此一般会通过session/cookie技术来解决此问题。
Http请求的协议
- http协议
- 基于http协议的soap协议
优点
- 基于应用级的接口使用方便
- 要求的开发水平不高,容错性强
缺点
- 传输速度慢,数据包大
- 如实现实时交互,服务器性能压力大
- 数据传输安全性差
Http显著特点
HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。
- 在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。
- 在HTTP 1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。
适用场景:一般用于实时性要求不那么高的情况
- 信息反馈
- 图片上传
- 获取新闻信息
- 公司OA服务
- 互联网服务
Socket
Socket不属于协议范畴,而是一个调用接口(API),Socket是对TCP/IP协议的封装,通过调用Socket,才能使用TCP/IP协议。Socket连接是长连接,理论上客户端和服务器端一旦建立连接将不会主动断开此连接。Socket连接属于请求-响应形式,服务端可主动将消息推送给客户端。
socket可以使用TCP或UDP协议
TCP
传输控制协议,面向连接的的协议,稳定可靠。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。
UDP
广播式数据传输,UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
优点
- 传输数据为字节级,传输数据可自定义,数据量小。相应的移动端开发,手机费用低
- 传输数据时间短,性能高
- 适合C/S之间信息实时交互
- 可以加密,数据安全性高
缺点
- 需要对传输的数据进行解析,转化为应用级的数据
- 对开发人员的开发水平要求高
- 相对于Http协议传输,增加了开发量
适用场景:一般用于比较即时的通信和实时性较高的情况
- 推送
- 聊天
- 保持心跳长连接
- 网络游戏
- 银行交互
- 支付
参考:
http://blog.csdn.net/zeng622peng/article/details/5546384
相关推荐
HTTP 和 Socket 是两种常见的网络通信协议,它们各自有其特点和适用场景。下面将详细介绍这两个概念,以及它们之间的区别。 1. **TCP 连接**: - TCP(Transmission Control Protocol,传输控制协议)是一种面向...
在Java的网络编程中,`UrlConnection`和`Socket`是两种常见的网络连接方式,它们在处理HTTP请求和响应时有着不同的特性和应用场景。本文将深入探讨这两种连接方式的区别,并结合`HttpURLConnectionImpl.java`、`...
### 关于HTTP与Socket的区别 #### HTTP协议详解 **HTTP**(HyperText Transfer Protocol,超文本传输协议)是一种用于从Web服务器传输超文本到本地浏览器的传输协议。它基于请求与响应模型,属于无状态的应用层...
标题中的“Modbus-Tcp采用Socket与NModbus两种方式”指的是在实现基于Modbus-TCP协议的通信时,采用了两种不同的技术手段:Socket编程和使用NModbus库。这两种方法都是为了与支持Modbus-TCP协议的设备进行数据交换。...
在Windows平台上,Socket API基于伯克利套接字模型,但有一些细微差别。例如,Windows使用WSAStartup和WSACleanup函数初始化和清理网络环境,而在Unix-like系统中则没有这样的过程。此外,错误处理方式也有所不同,...
SocketTool是一款专为开发者设计的Socket调试助手,它支持TCP和UDP协议,可以在服务器端和客户端之间灵活切换,帮助程序员高效地调试网络通信程序。在实际的开发过程中,理解和掌握Socket编程是至关重要的,因为它是...
IP协议与socket之间的区别
Socket编程是计算机网络编程中...通过实践这个示例,你可以学习如何在实际项目中应用UDP Socket编程,了解其与TCP的区别,以及如何处理网络通信中的各种问题。对于网络编程的深入理解和技能提升,这是一个很好的起点。
实验目标是掌握Socket编程的基本方法,理解客户端与服务器端的区别,并熟练使用Socket类与ServerSocket类。实验内容包括学习Socket编程涉及的类和接口,尤其是基于TCP的Socket编程,以及编写服务器端和客户端程序,...
在这个"Socket服务器和客户端,Console模式"的项目中,我们重点探讨的是基于TCP协议的Socket通信,它使用了Visual Studio 2010作为开发环境。在Console模式下,意味着所有的交互都是通过命令行界面进行的,没有图形...
如果您找到了此组件,也必然知道 Socket 和 AJAX 的区别。 迈云 JavaScript Socket 类可以在网页上创建原生Socket,并与服务器端通讯。Socket具有持久、实时的优点,适合IM、聊天室、网络游戏、实时更新、实时推送...
在Android平台上,Socket是用于网络通信的重要工具,它支持TCP(传输控制协议)和UDP(用户数据报协议)两种通信方式。本示例将详细解释如何实现Android中的TCP客户端和服务端以及UDP客户端和服务端的通信。 一、...
- **TCP与UDP的区别**:TCP是面向连接的、可靠的传输协议,提供顺序数据传输和错误检测;而UDP是无连接的,不保证数据包的顺序和可靠性,但效率较高。 2. **创建Socket** - **ServerSocket的使用**:通过`...
"安卓端Socket连接的方法aidl+server"这个主题主要涉及到如何在Android客户端(client)和服务器(server)之间建立Socket连接,以及如何利用Android Interface Definition Language (AIDL)来辅助实现这一过程。...
- send/recv函数:发送和接收数据,理解阻塞与非阻塞模式的区别。 - close函数:关闭Socket,释放资源。 5. 错误处理与调试: - 网络异常处理:如何处理常见的网络错误,如ECONNREFUSED、ETIMEDOUT等。 - 日志...
文档最后可能会对TCP和UDP协议进行回顾,强调它们在网络通信中的作用和区别。TCP提供可靠的、面向连接的服务,适用于需要保证数据完整性的应用;UDP则提供无连接的服务,适合于对实时性要求高的应用。 ### 附加信息...
2. **创建 Socket 对象**:通过 `new Socket()` 初始化一个 Socket 实例,指定地址族(AddressFamily.InterNetwork 表示 IPv4)、套接字类型(SocketType.Stream 表示 TCP)和协议(ProtocolType.Tcp 表示 TCP 协议...
Linux内核中的sock和socket数据结构是网络编程的核心组成部分,它们是实现网络通信的基础构件。在Linux操作系统中,网络通信的实现依赖于BSD套接字接口,而这一接口在内核中是通过sock和socket数据结构来实现的。 ...
### SOCKET类的设计与实现 #### 一、WinSock基础知识概览 ...综上所述,WinSock API是Windows环境下进行网络编程的基础,而合理设计和实现SOCKET类能够极大地简化开发过程,提高代码的可维护性和可扩展性。