要弄明白 http 和 socket 首先要熟悉网络七层:物 数 网 传 会 表 应,如图1

如图1

HTTP 协议:超文本传输协议,对应于应用层,用于如何封装数据.

TCP/UDP 协议:传输控制协议,对应于传输层,主要解决数据在网络中的传输。

IP 协议:对应于网络层,同样解决数据在网络中的传输。

传输数据的时候只使用 TCP/IP 协议(传输层),如果没有应用层来识别数据内容,传输后的协议都是无用的。

应用层协议很多 FTP,HTTP,TELNET等,可以自己定义应用层协议。

web 使用 HTTP 作传输层协议,以封装 HTTP 文本信息,然后使用 TCP/IP 做传输层协议,将数据发送到网络上。

一、HTTP 协议

http 为短连接:客户端发送请求都需要服务器端回送响应.请求结束后,主动释放链接,因此为短连接。通常的做法是,不需要任何数据,也要保持每隔一段时间向服务器发送"保持连接"的请求。这样可以保证客户端在服务器端是"上线"状态。

HTTP连接使用的是"请求-响应"方式,不仅在请求时建立连接,而且客户端向服务器端请求后,服务器才返回数据。

二、Socket 连接

要想明白 Socket,必须要理解 TCP 连接。

TCP 三次握手:握手过程中并不传输数据,在握手后服务器与客户端才开始传输数据,理想状态下,TCP 连接一旦建立,在通讯双方中的任何一方主动断开连接之前 TCP 连接会一直保持下去。

Socket 是对 TCP/IP 协议的封装,Socket 只是个接口不是协议,通过 Socket 我们才能使用 TCP/IP 协议,除了 TCP,也可以使用 UDP 协议来传递数据。

创建 Socket 连接的时候,可以指定传输层协议,可以是 TCP 或者 UDP,当用 TCP 连接,该Socket就是个TCP连接,反之。

Socket 原理

Socket 连接,至少需要一对套接字,分为 clientSocket,serverSocket 连接分为3个步骤:

(1) 服务器监听:服务器并不定位具体客户端的套接字,而是时刻处于监听状态;

(2) 客户端请求:客户端的套接字要描述它要连接的服务器的套接字,提供地址和端口号,然后向服务器套接字提出连接请求;

(3) 连接确认:当服务器套接字收到客户端套接字发来的请求后,就响应客户端套接字的请求,并建立一个新的线程,把服务器端的套接字的描述发给客户端。一旦客户端确认了此描述,就正式建立连接。而服务器套接字继续处于监听状态,继续接收其他客户端套接字的连接请求.

Socket为长连接:通常情况下Socket 连接就是 TCP 连接,因此 Socket 连接一旦建立,通讯双方开始互发数据内容,直到双方断开连接。在实际应用中,由于网络节点过多,在传输过程中,会被节点断开连接,因此要通过轮询高速网络,该节点处于活跃状态。

很多情况下,都是需要服务器端向客户端主动推送数据,保持客户端与服务端的实时同步。

若双方是 Socket 连接,可以由服务器直接向客户端发送数据。

若双方是 HTTP 连接,则服务器需要等客户端发送请求后,才能将数据回传给客户端。

因此,客户端定时向服务器端发送请求,不仅可以保持在线,同时也询问服务器是否有新数据,如果有就将数据传给客户端。

参考原文:http://www.cnblogs.com/xclidongbo/p/4032904.html?utm_source=tuicool&utm_medium=referral

HTTP 和 Socket 的区别相关推荐

  1. 域socket(domain socket)和ipsocket(TCP/IP socket)区别

    引言 前篇文章谈到 mysql 中 localhost 和 127.0.0.1 连接的区别,其实质分别对应的就是 Unix domain socket 和 TCP/IP socket. 下面再来看看这 ...

  2. TCP socket和web socket的区别

    小编先习惯性的看了下某中文百科网站对Web Socket的介绍,觉得很囧.如果大家按照这个答案去参加BAT等互联网公司的前端开发面试,估计会被鄙视. 还是让我们阅读一些英文材料吧. 让我们直接看sta ...

  3. TCP/IP,HTTP,Socket的区别与联系

    TCP/IP,HTTP,Socket的区别与联系 网络七层:物数网传会表应.分别为物理层,数据链路层,网络层,传输层,会话层,表示层,应用层.其中,底层三层:物理层,数据链路层,网络层是网络工程师研究 ...

  4. Linux12:(2.1k)网络管理,端口port和插口socket的区别,API接口

    Linux12:网络管理 文章目录 一.网络接口名称规则 1.认识网卡 2.修改网卡配置文件 3.主机名 4.端口(port)和插口(socket)的区别 API接口: 一.网络接口名称规则 计算机与 ...

  5. RPC是什么?RPC与REST、Socket的区别?php中流行的rpc框架有哪些?

    RPC是什么?RPC与REST.Socket的区别?php中流行的RPC框架有哪些? 什么是RPC框架 先回答第一个问题:什么是RPC框架? 如果用一句话概括RPC就是:远程调用框架(Remote P ...

  6. tcp、http和socket的区别(看完这篇不懂,我姓倒着写)

    tcp.http和socket的区别 我非常怀疑科普文章的质量 tcp和http是协议!socket是套接字,是接口 HTTP和TCP详细协议介绍 如何创建tcp/udp连接? 最后总结: 还有哪里不 ...

  7. Http和Socket连接区别(ZT)

    1.TCP连接 要想明白Socket连接,先要明白TCP连接.手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上 ...

  8. TCP/IP,Http,Socket的区别

    大学学习网络基础的时候老师讲过,网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用 ...

  9. TCPIP,Http,Socket的区别

    网络由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可 ...

  10. Http和Socket连接区别

    http://hi.baidu.com/snowqxx/item/f598caf86fcff6ed1b111f45 相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望 ...

最新文章

  1. 配置springmvc在其他类中(spring容器外)获取注入bean
  2. binder IPC TRANSACTION过程分析(BC_TRANSACTION-Binder Driver)
  3. Java 线程池的介绍以及工作原理
  4. 【Splay】【块状链表】bzoj3223 Tyvj 1729 文艺平衡树
  5. 局部遮罩 shade(二)
  6. 以LeNet-5为例理解CNN
  7. linux 安装libcurl4-gnutls-dev,curl / curl.h,libcurl,libcurl4-openssl-dev,libcurl4-nss-dev库之间的区别?...
  8. unix系统重启tcp服务器,《TCP/IP详解卷3:TCP事务协议、HTTP、NNTP和UNIX域协议》 —3.5 服务器重启动...
  9. linux内核PID管理
  10. 使用XStream注解处理复杂xml的属性及数据集合(xml转对象)
  11. 你的ERP系统选对了吗?
  12. jsp中php代码格式化,JSP 语法 - [ JSP参考手册 ] - 在线原生手册 - php中文网
  13. windows 弹shell_一步步学写Windows下的Shellcode
  14. 计算机的游戏功能,游戏同步器功能介绍、作用讲解及使用方法
  15. mysql 1114_mysql 解决 ERROR 1114 (HY000): The table 'XXX' is full
  16. 华为鸿蒙os家电,搭载华为鸿蒙OS的美的产品上市
  17. Apache Spark在海致大数据平台中的优化实践
  18. VUE项目获取微信二维码 (返回了的是一个html)
  19. 环境和社会风险分类c类_六大环境风险分类
  20. 分形之koch曲线生成

热门文章

  1. 编写五子棋的完整python代码_python实现五子棋小程序
  2. 随机森林c语言编程,一种基于随机森林的C语言源代码静态评分方法与流程
  3. cdh用户权限_0617-使用Sentry给Solr的collection赋予Query权限后查询异常分析
  4. python paperclip_Python pyplot.sca方法代码示例
  5. css 倒三角_改善CSS的10种最佳做法
  6. 深蓝学院《从零开始手写VIO》作业一
  7. 你绝对能懂的“机器学习”(二)
  8. Python的zip
  9. 【赠书】深入浅出embedding:原理解析与应用实践
  10. Lazada2022新开店入驻流程及费用