我觉得互联网通信就是所谓任意的两台计算机通过网络(以网络为通道)实现资源文件共享,而这两台计算机分别担任着客户端计算机和服务端计算机的角色
? 简单说可以理解为客户端软件和服务器软件之间的交互行为。
? PS:C/S通信模型和B/S通信模型可以对比来看,找出他们之间的异同与联系,更好记忆。
具体过程叙述就是:
①客户端软件帮助客户端计算机向指定服务端计算机发送请求(为了索要资源文件)
②而服务器软件则是帮助服务端计算机接收特定客户端软件发送来的请求
③然后在服务端计算机上自动定位需要被访问的资源文件
④最后将资源文件以二进制数据的形式发送到客户端软件上
? 适用场景普遍应用于个人,大型团队或企业级开发应用很少(原因请看优缺点)。
? 举例说明的话,最简单的就是我们身边常用的一些软件,比如说微信、网易云音乐、Steam等等,都是可以安装指定客户端(APP),然后远程发送请求来满足你的需求。
优点:
①服务器软件只接受特定合法的客户端软件,安全性较高
②服务端计算机中有一部分的命令会交给客户端计算机来执行,降低了服务端计算机的工作压力
缺点:
①降低服务端计算机的工作压力的同时,会使得客户端计算机不断进行更新换代,也就是增加了客户获得服务的成本(这也是企业很少用C/S通信模型的一点)
②说到客户端计算机连续的更新换代问题,也是另企业很烦的一件事,需要经常更新,较为繁琐,时间比较宝贵(不适合企业使用)
具体过程叙述:
①客户端计算机上的浏览器软件可以向任意服务器发送请求(通过Http协议请求响应服务器),为了获取资源文件②而服务器软件则是帮助服务端计算机接收任意浏览器发送来的请求
③然后同样在服务端计算机上自动定位需要被访问的资源文件
④最后也是将资源文件以二进制数据的形式发送到刚刚发起请求的浏览器上
? 使用场景比较广泛,既适用于个人,也适用于企业市场。
? 举例就很容易理解了,平时在浏览器上访问百度、CSDN、菜鸟教程、知乎等等,包括现在的客户端软件很多都有网页版,微信、淘宝、B站等。
优点:
①与C/S通信模型相比,B/S通信模型不会增加客户使用服务的成本(随便来个计算机都能运行浏览器......)
②同样,服务端计算机上的命令不会交给浏览器来执行,也就是说服务端更新,浏览器不更新也没问题(正常使用)
缺点:(看了优点是不是感觉针不戳?但没有一个东西是完全完美的,下面说说B/S架构的缺点)
①上面叙述了B/S模型中服务器可以接收任意浏览器的请求,这就存在一个问题,那就是无法有效保证服务端计算机中资源文件的安全
②另一个缺点就是上面第二条优点引出的:服务端计算机要执行全部命令,工作压力非常大【这就涉及到了B/S通信下高并发(多线程)的解决,后面再具体了解......】
原文:https://www.cnblogs.com/gbxblog/p/14387022.html