用浅显易懂的方式讲明白web开发的必备知识——服务器架构的技术和原理

返回数据过程:数据库→缓存服务器→业务服务器→web服务器→客户端

大多数数据需要走这两个过程,就拿王二麻子这个人查自己的英语四级成绩来举个例子:

作图不是很擅长,还望理解,过程就是这么个过程,虽然看起来跑来跑去很麻烦,但其实计算机分分钟能处理千万个王二麻子。


二、服务器各个板块讲解


1.客户端

web开发目前主要的客户端类型有IOS、Android、PC(电脑)和移动(手机等)四种客户端,这个就不多讲了,通常意义上,每一个用户的界面就是客户端了,用来呈现图片、文字、视频等数据给用户查看。

2.web服务器

web服务器的主要功能有2个:负载均衡和静态资源服务器。

(1)负载均衡

什么叫负载均衡?我们先来看一张图:

在这里插入图片描述

这是最简单的一个服务器架构了,它没有web服务器,就只有客户端、业务服务器、数据库组成,在数据量较小的情况下,它是可以正常运行的。

假如一个业务服务器能支持5000个客户端访问,只要不超过5000台设备访问都是OK的,但如果超出了5000个客户端访问呢?

那就只剩下2个方法:

一是通过换开发语言来重构业务服务器以达到提升它的性能,这涉及开发语言的性能,后面我们再讲。

.

二是增加业务服务器的数量来保证大量用户端的正常访问,增加负载能力,这也是较为常用的方法。

那么问题来了,增加业务服务器的数量,但它们“长得”都差不多,客户端就很郁闷,我该访问哪个服务器?

所以需要一个web服务器来统筹分配,分配客户端应该访问哪个业务服务器,合理分配资源,避免导致客户端统一访问某个业务服务器而造成负载超核,这就是web服务器的负载均衡作用

在这里插入图片描述


(2)静态资源服务器

不是所有的数据请求都要访问数据库。前面我们所说的从客户端一步一步跑到数据库来进行数据的请求和返回数据动态请求,而有些数据存储在web服务器上的,不需要访问数据库就能获取数据到用户端,称为静态请求。

比如某些网页不常变化的一些文字、图片、视频等,基本就固定在某个地方做展示,开发员不调整就不会更新的那种,静静地待在那里,谁进入页面就显示出来,这些数据放在web服务器上而没有存在数据库,便于更快地展现给客户端。

在这里插入图片描述


3.业务服务器

业务服务器的主要功能是:接受数据、处理(查询、写入)数据、返回数据三方面。

(1)协议

目前服务器对数据的传输和处理主要遵循两种协议:http/https和socket请求。http协议属于应用层,socket就比较原生了,就是所谓的TCP/IP层,属于网络层。这两个就不细讲了,往这方面发展都会学的。

(2)开发语言

服务器的开发语言算是百家争鸣了,你可以用C、C++、Java、PHP、Python、Ruby等语言来开发,但是从性能、性价比方面还是有区别的。

在这里插入图片描述

目前在做服务器比较多的语言还是Java和PHP,为什么呢?

第一,PHP相对比较简单,比较容易入门这功能;第二,java可以大规模的团队协作开发,封装成模块,代码可复用。

但现在还存在这么一种趋势:用C/C++和Python来做服务器开发的公司越来越多了,为什么呢?

因为很多服务器开发的时期是很久以前了,十年或十几年前了,那时候企业为了快速地攻城略池,先把业务跑起来,选用了开发周期短的语言来做服务器,虽然负载有限,但可以用硬件来补足,但随着手机和电脑的数量越来越多,客户端数量上升,如果还是用硬件来补足服务器的负载性能,将会面临很多问题。

比如说其中的电费问题,阿里就遇到过,机器得一直开着,随着阿里的业务量越来越大,硬件每天消耗的电费开销是个头疼的问题,日以继夜地烧下去只会是烧钱,光是电费开销就占到了公司年开销的10~30%,那怎么办?那就只能从服务器的开发入手,选用性能更高的语言来重构服务器,性能提高,有的服务器重构之后性能,单台性能可以提升10倍。

所以C/C++这种机器语言就成为了有实力的企业开发服务器首选,所以说C/C++永不过时。

在这里插入图片描述

对于中小型企业来讲,开发服务器不建议用C/C++,虽然它们的性能高,但开发起来难度大,而且市面上真正懂C/C++的程序员比较少,所以支付的工资自然也就高了。可以选用脚本语言来开发,让业务先跑起来,等到了瓶颈时,相信公司也有了稳定的资金支持了,这个时候再重构服务器更合适。

我个人比较推崇用Python来做中小企业的服务器开发,为什么不是其他的语言呢?

首先Python是一门面向对象的脚本语言,代码量少,语法简洁,逻辑清晰,从的代码优美程度和团队协作开发上来讲,PHP不如Python;Java虽然好,但是比较重,比如干一件事情C语言需要100行代码,那么Java差不多就是50行左右,而Python只需要10行。

我个人不推荐用Ruby来做服务器。

一是因为Ruby是日本人做的东西,个人的爱国情怀,别杠,杠就是你赢。

二是Ruby是一种魔幻语言,什么意思呢?也就是你写了一个符号或者写了一个指令,他背后给你干了很多事儿,你看不到这个东西的底层,逻辑上不清晰,随便写,也就是说你按照它的一些特殊的符号,它会给你带来很多事儿。这种魔幻性语言他们不适合团队开发,团队开发的话,大家水平参差不齐,有的人掌握了更多的魔幻语法,有的人不掌握,不适合团队开发。

在这里插入图片描述

最后

前15.PNG

前16.PNG

由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

uZVssIB-1714732785021)]

[外链图片转存中…(img-qoL9JVNB-1714732785022)]

由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "qt教程及软件(超级浅显易懂,非常适合初学者).pdf" 是一本超级浅显易懂的教程,适合初学者学习Qt软件开发。Qt是一种跨平台的应用程序开发框架,可以用于开发各种图形界面应用程序。这个教程会向读者介绍Qt的基础知识和使用方法。 教程的内容结构清晰,语言简明易懂,从零开始引导读者了解Qt的基本概念和原则,并提供了大量的示例代码和实践项目供读者练习。教程中的示例代码简单易懂,适合初学者理解,并且附带了详细的注释和解释,帮助读者理解代码的功能和实现原理。 教程还介绍了Qt的各种功能模块,如窗口布局、图形绘制、事件处理等,以及常用的Qt工具和库,如Qt Creator和Qt Widgets。读者可以通过这些模块和工具来开发自己的应用程序,并深入了解Qt的强大功能和灵活性。 除了教程内容,该文件还包含了Qt软件的安装包,读者可以根据教程的指导进行安装,并在学习过程中实际运行代码和构建应用程序。 总的来说,"qt教程及软件(超级浅显易懂,非常适合初学者).pdf" 是一本非常适合初学者的Qt教程,易于理解和上手。对于想要学习和掌握Qt软件开发的初学者来说,这本教程将是一个很好的起点。 ### 回答2: "qt教程及软件(超级浅显易懂,非常适合初学者).pdf"是一个非常适合初学者的Qt教程和软件资源的PDF文件。Qt是一个跨平台的应用程序开发框架,可以用于开发各种类型的应用程序,包括桌面、移动和嵌入式应用。 这个教程非常浅显易懂,适合初学者入门学习。它通过简单明了的语言和示例代码,详细介绍了Qt的各个方面,包括图形界面设计、信号和槽机制、界面布局、事件处理等。 此外,该PDF还提供了Qt软件资源,使初学者可以直接开始实际开发。软件资源包括Qt Creator集成开发环境和Qt框架的安装包。Qt Creator是一个功能强大的IDE,可帮助开发者编写、调试和测试Qt应用程序。Qt框架的安装包包含了Qt的核心库和工具,为开发者提供了丰富的功能和组件来构建自己的应用程序。 总的来说,这个教程及软件资源的PDF文件对于初学者来说非常有价值。通过学习这个教程,初学者可以快速掌握Qt的基本概念和技巧,并且可以立即使用提供的软件资源进行实际开发。无论是对于想要学习Qt的新手还是对于已经有一定经验的开发者,这个教程都是一个很好的学习和参考资源。 ### 回答3: 《QT教程及软件(超级浅显易懂,非常适合初学者).pdf》是一本专门面向初学者的QT教程和软件指南。QT是一种跨平台的应用程序开发框架,通过本教程可以帮助读者了解并掌握QT的基本知识开发技巧。 本教程以浅显易懂方式解QT的相关概念和原理,特别适合对程序开发没有任何经验的初学者。通过该教程,读者可以从零开始学习QT的基础知识,如窗口、控件、布局等,并且可以通过实际操作去运用所学知识创建自己的QT应用程序。 除了教程内容之外,本书还提供了相应的软件安装指南和使用说明。为了方便读者进行实践,配套的软件可以帮助读者快速安装和配置QT开发环境,并提供一系列示例代码供读者参考。 该教程的特点是通俗易懂,并且采用了大量的实例演示来帮助读者更好地理解和掌握所学内容。无论是学生、自学者还是对QT开发感兴趣的人群,都可以通过阅读该教程入门并提高自己的开发技能。 总而言之,《QT教程及软件(超级浅显易懂,非常适合初学者).pdf》是一本面向初学者的QT教程,通过浅显易懂方式解了QT的基本知识开发技巧,并提供了相应的软件安装和使用指南。读者可以通过该教程快速入门并提高自己的QT开发能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值