Http与Socket小谈

本文对比了HTTP与Socket在网络编程中的作用及特点。HTTP基于应用层,简单易用但传输速度有限;Socket则位于传输层,提供了更底层的TCP/IP网络API,适合数据实时交互和安全性要求高的场景。

http与socket是网络编程中最为重要的概念,不管是客户端还是服务端,都是最为重要的部分,以下简述两者的关系和区别(个人见解)。

Http

定义

基于应用层的超文本传输协议。通常承载于TCP/IP协议之上,有时也承载于TLS或SSL协议层之上,即https。

特点

  • 必须是客户端请求,服务端才能响应,无法由服务端自主发起。
  • 网络连接为短连接,在请求结束后,就会自动释放本次连接。

优点

  • 基于应用层的接口,简单易用,非常容易上手,对开发者要求较低

缺点

  • 传输速度有限,数据量较大
  • 对服务器性能要求较高
  • 数据传输过程中安全性有限

适用范围

  • 需要快速开发的应用
  • 对数据实时交互性要求不太高的应用
  • 对数据安全性不是太高要求的应用
  • 对服务器性能较差的应用

Socket

定义

基于TCP/IP的网络API,处于传输层,用于提供给程序员操作TCP/IP网络传输的应用程序接口。通常称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输。是应用层和传输层之间的桥梁。

特点

  • 建立socket连接至少需要一对套接字(socket),一个运行在客户端,一个运行在服务端
  • 通常Socket连接是基于TCP连接的,因此属于长连接
  • Socket一旦建立连接,通信双方即可持续相互发送数据内容,直到双方连接断开

优点

  • 传输数据可自定义,数据量很小
  • 数据传输时间段,性能高
  • 多用于客户端与服务端之间的数据实时交互
  • 可以使用加密手段,数据安全性很高

缺点

  • 相对于http协议传输,开发量较大
  • 对开发人员的开发水平要求较高,增加开发量

适用范围

  • 适用于对传输速度要求高的应用,如网络游戏
  • 适用于对数据安全性要求较高的应用中,如银行内部数据交互
  • 对产生流量巨大的应用

转载于:https://www.cnblogs.com/ToBeTheOne/p/6017079.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值