前置知识
一般来说,程序猿做开发时候回采取两种架构模式:一是C/S 架构,即 客户端/服务器模式;另一种是B/S架构,即 Browser浏览器/服务器模式。
相对于C/S架构来说,B/S架构的优势在于统一了应用的接口。
软件开发的架构详解
我们了解的涉及到两个程序之间通讯的应用大致可以分为两种:
第一种是应用类:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用程序。
第二种是web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用程序。
这类应用的本质其实都是两个程序之间的通讯。而这两个分类又对应了两个软件开发的架构——
1、C/S架构
C/S,如上所述,即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的。这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。
C/S架构示例图
2、B/S架构
B/S,如上所述,即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。Browser浏览器,其实也是一种Client客户端,只是这个客户端不需要大家去安装什么应用程序,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源),客户端Browser浏览器就能进行增删改查。
B/S架构示例图
3、网络通信编程
在同一台电脑上两个py文件通信,属于文件间的数据交换。那么两台电脑如何进行通信呢?有小伙伴说用一根网线连接即可。多台电脑呢?用交换机。更多更多的电脑如何通信?答案是:交换机+路由器。
在这里,我们接触到一个新的概念:mac 地址(物理地址)
mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)
我们在cmd输入ipconfig -all
可以看到mac地址是十二位十六进制组成。我们还需要了解以下几个概念:ip地址、端口、arp协议、路由器、广播。
ip 地址:是一个四位点分十进制组成(ipv4)。
端口:操作系统为每一个应用程序分配一个端口号
arp协议:通过目标ip地址.获取目标mac地址
路由器:有一个路由表,记录了归他所管理的所有网段,用于查询ip地址和MAC地址的对应关系。
广播:主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。