博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
平台化技术:从C/S到B/S
阅读量:7079 次
发布时间:2019-06-28

本文共 1995 字,大约阅读时间需要 6 分钟。

hot3.png

1. 首先,不管是服务器程序还是客户端程序,在程序工程上分为两大类:

1)和自己本地通信:就是调用本地宿主机的资源:CPU、存储、内存、传感设备等等

2)和别分远程通信:就是通过网络(有线网络和无线网络)【路】去别人家的主机访问他们的资源!这个网络可以是以太网络、蓝牙网络、红外线网络、射频网络等等...

我们知道使用各个网络有各个网络的协议,我们在蓝牙网络的时候需要遵循蓝牙的协议...在以太网的时候我们要遵循以太网的协议。就是TCP/IP协议

3)而目前影响力最广、网络地域最广、最普及、用户最多的当属以太网构建的全球性互联网!

4)在以太网中我们主要遵循TCP/IP协议簇

5)在TCP/IP五层模型中。从应用层的数据经过传输层的TCP/UDP协议的封装之后,下达到网络层的IP协议,然后继续经过了数据链路层协议,最后通过以太网网口把数据报文给发送出去!接收则反之。这是我们通常在写以太网通信软件的通信路程。

6)我们看到在以太网的传输层,就只要两个协议,TCP/UDP协议。所有上层应用层都需要传输层的TCP和服务器建立连接(三次握手之后),把数据封装成各种各样的协议格式(HTML/XML/简单文本/图片/视频/音频/邮件/等等),交个一个【套接字:socket】的载体,然后给到TCP进行继续封装下去。

应用层 XML HTML
txt Email
图片 视频
音频 密文等等
下传    
socket套接字  
   
     
传输层 TCP UDP
     

7)我们卡住一个套接字socket。然后回想一下,好像我们学过的C/C++/C#/java也好,都有一个socket网路编程的概念,然后我们知道socket分为ClientSocket【C】和Serversocket!在此就产生了C/S架构的概念!最开始我们还没那么发达的时候,各自都是孤零零的客户端和服务器,且很多还是嵌入式式产品的客户端。独立运营。再到后来,有了操作系统的技术之后,便是一个平台化技术的开始!!所有的客户端可以全部丢到一个硬件设备【的操作系统】平台上运行,当然服务器程序也是。但是网络编程的客户端还是发socket,但是统一由平台帮忙管理的收发!你只需要去特定的端口提交你的需求和接收你的信息。端口的诞生也是以为操作系统平台化产生的,因为一个硬件设备只有一个真实的以太网端口,但是这个设备上有很多的不用的客户端,怎么办?操作系统OS就为没一个程序(进程)划分各自的虚拟端口!所以你用IP【设备】+端口。就能找到特定的进程通信!!这是平台化的第一层。客户端不需要自己去制造硬件设备!

8)再接着,有些客户端不断的壮大,自己的用户越来越多。从流量经济和分流的角度,它可以分发给各个代理商来利用流量经济,从而从中获取利益。浏览器这个有专门学术名称的客户端(还是socket客户端)就诞生了!浏览器把自己的搭建成一个C/S平台。让大家把自己的想法和业务功能以一个更加简单的方式【HTML】直接丢到自己的平台上,就能完成和单独写socket客户端一样的功能!这是平台化的第二层。客户不需要自己实现socket客户端程序了!只要你的内容遵循行业协会的标准即可:HTTP。

9)另外一边,服务器那端也是,Apache这个服务器厂商也在服务端那用ServerSocket搭建了一个平台:Tomcat。也让开发者们不需要亲自写服务器端的socket程序也能和自己的客户端通信服!又节省了成本!!只要你写好一个叫做servlet的东西,并遵循其标准丢到这个平台上来!这样一个Tomcat平台就的实现很多个服务器服务了!Tomcat也即被称为servlet的容器!!

8)和9)的技术结合起来就是今天的B/S架构。B是Browser浏览器的意思。S就是server的意思!!html*Browser/Tomcat*servlet

  B/S
应用层 html*Browser HTTP Tomcat*servlet
ClientSocket socket ServerSocket
C/S
传输层   TCP/IP  

10)我们看下如下浏览器内核webkit的技术原理

11)我们看下如下Tomcat内核的技术原理

12)我们看到以上浏览器内核和Tomcat都有socket和TCP的身影!都是需要建立TCP连接和socket收发管理。

13)如今平台技术发展越来越好。比如,再由微信平台承载的小程序、公众号和天猫平台承载的各个电商的产品售卖服务!平台化技术能发展得越来越好不轻易到的原因是:共赢模式,我让大家都赚钱了,我不可能倒,以为大家的力量不可能让我倒下的!这就是为什么每个公司做到一定程度之后,都想往平台化发展的原因!

 

转载于:https://my.oschina.net/u/3697586/blog/1942155

你可能感兴趣的文章
max tablename length limit in MySQL is 64
查看>>
Ubuntu 12.04 中国科学技术大学源
查看>>
Ubuntu12.10 Server 安装 VirtualBox-4.2.6 (64位) 过程详解
查看>>
(转)c#实现WinRAR解压缩
查看>>
MIME
查看>>
NetworkInterface的使用
查看>>
海外澳洲技术移民花费一览表(2006年11月完整版) - Topboy - 博客园
查看>>
vs2010 命令行下用 msbuild 发布web站点
查看>>
在IIS上启用Gzip压缩(HTTP压缩)
查看>>
16进制字符串和字节数组的转换
查看>>
解决ImportError: cannot import name webdriver
查看>>
如何将Windows Server 2012的Evaluation版本转为正式版?
查看>>
[iOS] UITextField隐藏软键盘心得(隐藏自身软键盘、点击Return自动转到下个文本框、轻触背景隐藏软键盘)...
查看>>
hdu 1853(Cyclic Tour)
查看>>
ALL about SYSDBA and SYSOPER Privileges in Oracle [ID 50507.1]
查看>>
form表单回车提交问题
查看>>
让jQuery Tools Scrollable控件在Mobile Web里面支持resize功能
查看>>
配置 CACTI 监控 MySQL 数据库状态
查看>>
WCF的用户名密码认证
查看>>
KMP 求子串
查看>>