`
youyu4
  • 浏览: 440325 次
社区版块
存档分类
最新评论

Socket 和 http 的区别

 
阅读更多

Socket 和 http 的区别

 

 

HTTP

 

       超文本传输协议,首先它是一个协议,并且是基于TCP/IP协议基础之上的应用层协议。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,HTTP是应用层协议,主要解决如何包装数据。HTTP协议详细规定了浏览器与服务器之间相互通信的规则,是万维网交换信息的基础。HTTP是基于请求-响应形式并且是短连接,并且是无状态的协议。针对其无状态特性,在实际应用中又需要有状态的形式,因此一般会通过session/cookie技术来解决此问题。

 

 

Http请求的协议

 

  • http协议
  • 基于http协议的soap协议

 

优点

 

  • 基于应用级的接口使用方便
  • 要求的开发水平不高,容错性强

 

缺点

 

  • 传输速度慢,数据包大
  • 如实现实时交互,服务器性能压力大
  • 数据传输安全性差

 

Http显著特点

 

       HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

 

  1. 在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。
  2. 在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简介和对比

    HTTP 和 Socket 是两种常见的网络通信协议,它们各自有其特点和适用场景。下面将详细介绍这两个概念,以及它们之间的区别。 1. **TCP 连接**: - TCP(Transmission Control Protocol,传输控制协议)是一种面向...

    UrlConnection连接和Socket连接的区别

    在Java的网络编程中,`UrlConnection`和`Socket`是两种常见的网络连接方式,它们在处理HTTP请求和响应时有着不同的特性和应用场景。本文将深入探讨这两种连接方式的区别,并结合`HttpURLConnectionImpl.java`、`...

    关于http和socket区别

    ### 关于HTTP与Socket的区别 #### HTTP协议详解 **HTTP**(HyperText Transfer Protocol,超文本传输协议)是一种用于从Web服务器传输超文本到本地浏览器的传输协议。它基于请求与响应模型,属于无状态的应用层...

    Modbus-Tcp采用Socket与NModbus两种方式

    标题中的“Modbus-Tcp采用Socket与NModbus两种方式”指的是在实现基于Modbus-TCP协议的通信时,采用了两种不同的技术手段:Socket编程和使用NModbus库。这两种方法都是为了与支持Modbus-TCP协议的设备进行数据交换。...

    跨平台的socket库,windows-linux-socket

    在Windows平台上,Socket API基于伯克利套接字模型,但有一些细微差别。例如,Windows使用WSAStartup和WSACleanup函数初始化和清理网络环境,而在Unix-like系统中则没有这样的过程。此外,错误处理方式也有所不同,...

    socketTool socket 调试 助手

    SocketTool是一款专为开发者设计的Socket调试助手,它支持TCP和UDP协议,可以在服务器端和客户端之间灵活切换,帮助程序员高效地调试网络通信程序。在实际的开发过程中,理解和掌握Socket编程是至关重要的,因为它是...

    IP协议与socket之间的区别

    IP协议与socket之间的区别

    socket_test_socket编程_

    Socket编程是计算机网络编程中...通过实践这个示例,你可以学习如何在实际项目中应用UDP Socket编程,了解其与TCP的区别,以及如何处理网络通信中的各种问题。对于网络编程的深入理解和技能提升,这是一个很好的起点。

    Socket编程实验报告.docx

    实验目标是掌握Socket编程的基本方法,理解客户端与服务器端的区别,并熟练使用Socket类与ServerSocket类。实验内容包括学习Socket编程涉及的类和接口,尤其是基于TCP的Socket编程,以及编写服务器端和客户端程序,...

    Socket服务器和客户端,Console模式

    在这个"Socket服务器和客户端,Console模式"的项目中,我们重点探讨的是基于TCP协议的Socket通信,它使用了Visual Studio 2010作为开发环境。在Console模式下,意味着所有的交互都是通过命令行界面进行的,没有图形...

    JavaScript Socket v1.0.0

    如果您找到了此组件,也必然知道 Socket 和 AJAX 的区别。 迈云 JavaScript Socket 类可以在网页上创建原生Socket,并与服务器端通讯。Socket具有持久、实时的优点,适合IM、聊天室、网络游戏、实时更新、实时推送...

    Android socket udp/tcp实现服务器和客户端

    在Android平台上,Socket是用于网络通信的重要工具,它支持TCP(传输控制协议)和UDP(用户数据报协议)两种通信方式。本示例将详细解释如何实现Android中的TCP客户端和服务端以及UDP客户端和服务端的通信。 一、...

    JAVA Socket 经典教程

    - **TCP与UDP的区别**:TCP是面向连接的、可靠的传输协议,提供顺序数据传输和错误检测;而UDP是无连接的,不保证数据包的顺序和可靠性,但效率较高。 2. **创建Socket** - **ServerSocket的使用**:通过`...

    安卓端Socket连接的方法aidl+server

    "安卓端Socket连接的方法aidl+server"这个主题主要涉及到如何在Android客户端(client)和服务器(server)之间建立Socket连接,以及如何利用Android Interface Definition Language (AIDL)来辅助实现这一过程。...

    网络socket 编程指南

    - send/recv函数:发送和接收数据,理解阻塞与非阻塞模式的区别。 - close函数:关闭Socket,释放资源。 5. 错误处理与调试: - 网络异常处理:如何处理常见的网络错误,如ECONNREFUSED、ETIMEDOUT等。 - 日志...

    C语言Socket简单编程指南

    文档最后可能会对TCP和UDP协议进行回顾,强调它们在网络通信中的作用和区别。TCP提供可靠的、面向连接的服务,适用于需要保证数据完整性的应用;UDP则提供无连接的服务,适合于对实时性要求高的应用。 ### 附加信息...

    Socket编程C# asp.net

    2. **创建 Socket 对象**:通过 `new Socket()` 初始化一个 Socket 实例,指定地址族(AddressFamily.InterNetwork 表示 IPv4)、套接字类型(SocketType.Stream 表示 TCP)和协议(ProtocolType.Tcp 表示 TCP 协议...

    linux内核中sock和socket数据结构

    Linux内核中的sock和socket数据结构是网络编程的核心组成部分,它们是实现网络通信的基础构件。在Linux操作系统中,网络通信的实现依赖于BSD套接字接口,而这一接口在内核中是通过sock和socket数据结构来实现的。 ...

    SOCKET类的设计和实现

    ### SOCKET类的设计与实现 #### 一、WinSock基础知识概览 ...综上所述,WinSock API是Windows环境下进行网络编程的基础,而合理设计和实现SOCKET类能够极大地简化开发过程,提高代码的可维护性和可扩展性。

Global site tag (gtag.js) - Google Analytics