后端科普
后端科普一、什么是后端二、为什么要学后端1. 后端发展历史2. 后端技术优势3. 后端发展前景4. 后端行业资讯后端科普
一、什么是后端
什么是前端?简单来说前端就是我们能看见的界面,比如说,我们登录一个购物网站,所能看到的页面,商品信息、搜索栏、购物车里的商品的图片等等,或者是QQ、微信的聊天界面等等。
用一句话来概括说:前端就是能看见的东西
什么是后端?
后端是和前端相反,所以简单来说后端就是看不见的部分
软件应用程序就像冰山一样,前端就是我们能看到的海平面以上的冰山,而我们看不见的海平面以下的冰山就是后端。用户看到的只是应用程序的一部分——在大多数情况下应用程序的很大部分是看不到的。这就是令人难以捉摸又神秘的“后端”。
后端是专门为前端提供数据的一套软件。
软件是什么呢?
软件=程序+数据+文档+知识
体验静态数据与动态数据的小实验
为了更好地理解静态数据与动态数据,我们来做一个小实验吧!
第一步:在搜索框中搜索“高等数学
第二步:关闭WLAN或移动网络
第三步:再在搜索框中搜索“高等数学”
我们很容易就可以看出:
在我们关闭网络之后,高等数学网课视频看不见了,
留下来的只有能看见的搜索框、取消按键、“似乎已断开与互联网的链接”,
那么,这些留下来的数据就是静态数据,它们是保存在本地的,是我们断开网络还可以得到的数据。
而那些我们在断网以后看不见的数据,就是动态数据。
比如说,高等数学的网课,我们在断网以后就看不见了。
这些数据是由后端提供的。
数据怎么动起来?
前后端进行数据交互就是数据动起来的原因。
通过HTTP协议、API接口前后端进行数据交互,数据就可以动起来了。
下面我们来看一个解释前后端数据交互的图片:
假如说,用户登录了账号,此时前端需要显示该用户的收货地址,前端需要拿到这个用户的收货地址,它对后端发出请求,后端从数据库中找到这个用户的收货地址,并传给前端,前端将这个收货地址数据渲染,并显示在前端页面上。
那数据库又是什么呢?
简单理解数据库——表的集合
这是一个简单购物网站的数据库里的表,里面有收货地址、购物车、用户信息、商品信息等等的表。
举个例子
灰色的是静态数据,而橙色的是动态数据。
API接口可以实现整体化一次性数据传输,将头像、关注量、粉丝量等信息一次性从后端传输到前端。
用户登录验证可判断用户是否登录,验证后,方可提取到该用户的信息。
网页上的功能由谁实现?
后端
如何实现?
比如注册功能,在前端输入基本信息后,传入后端,相关代码进行加密(比如对密码进行加密),保存到数据库,数据库中生成账号。
小结:
后端
数据功能
后端主要是进行数据处理和实现网站上的相应的功能。
后端是网页的灵魂,有了后端才能让网页真正活起来。
二、为什么要学后端
1. 后端发展历史
网页诞生最早的民用互联网的应用主要是在高校和实验室,能够让研究人员方便沟通,收发email。但是只能简单沟通,如果我想查看其他人写的文献怎么办,也就是资源共享的问题如何解决呢?网页,或者说html文件就基于此问题诞生了。
CGI诞生很快静态网页技术发展了起来,应用范围也从科研和军方来到了民用,后来静态网页也支持图片显示和表格。不过很快,静态网页很快就满足不了人民群众日益增长的需求了。因为网页改内容太麻烦了,程序员需要频繁修改页面数据以及根据不同的操作做许多对应的网页内容,对于这个能力缺陷,能够接收用用户数据,处理数据并返回到浏览器的技术很快就诞生了。
CGI(Common Gateway Interface),意为公共网关接口,本身是一个规范,一个标准,并不是一个具体的程序或产品。它规范了用户传递的数据,比如表单信息、文本框,以及服务器返回给浏览器的信息的处理结果,通常是是html或者纯文本格式。CGI标准规定了从浏览器发出数据到接受数据的全过程。
ASP诞生但是CGI有一个弊端:它只能把HTML文件一行行的输出,一个html页面就成百上千行,这就导致程序员的工作量很恐怖。随后可以嵌入部分html的技术很快就出现了。
Java诞生ASP是Active Server Page的缩写,意为“活动服务器网页”。ASP是微软公司开发的代替CGI脚本程序的一种应用,诞生于1996年,目的就是取代CGI这种编写模式,只要把需要改写的数据替换到原来的html文件就行了,程序员总算从苦海中解脱了。到此web的上古时代已经结束,web从静态到动态再到稳定可开发,用了6,7年的时间,从无到有。
JSP诞生1995年5月,SUN公司发布了Java,这是一个对于后世影响深远的语言。最初java是为作为一个可移植程序的编程语言而开发的。嵌入式开发最开始是用c和c++语言,但是它们只能对某个产品的硬件进行一对一开发,换个cpu可能就要重写代码。所以当时的java的想法就是开发一种可移植,跨平台的语言。该语言能够生成运行于不同环境,不同CPU芯片上的代码。java的推出很快受到了it界的热烈欢迎,跨平台的优势给了java极大的优势,也是流行到现在的一个原因之一。
JSP全名为Java Server Pages,它将Java代码和需要变动的内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。它的出现是爆炸性的,迅速席卷了整个软件业,jsp借鉴了asp嵌入html文档的思路,加上本身java拥有“一次编译,到处执行”的强大优势,一个个项目纷纷上了jsp这条大船,大家喜大普奔,办公室里充满了快活的气息。
然而好景不长,大家就笑不起来了。前端能做的工作就只是简单地将 UI 设计师提供的原型图实现成静态的 HTML 页面,后端开发再“套用”前端开发的模板进行页面拼接。并且页面交互逻辑开发的工作量都集中在后端,导致了工作量分配严重不均。并且开发时,前后端相互依赖很严重,需要改动时,要让前端修改静态页面,后端再修改逻辑,造成了项目维护的困难。开发效率慢,代码难以维护。此后,前后端分离的时代就到来了。
2. 后端技术优势
前后端分离时代
在这个时代,前端的范围被扩展,NodeJS横空出世,增加NodeJS中间层之后,浏览器便不再直接请求服务端的API,而是浏览器先去请求服务端的NodeJS,由NodeJS对服务端发起HTTP请求,NodeJS收到服务端返回的数据后就去渲染HTML页面。
增加NodeJS中间层最大的优势便是适配性提升。一般对前端来说,会给PC端、Mobile、App端各自研发一套前端,后端也要根据不同的前端设计不同的端口,但后端大部分的业务逻辑是一样的,这无疑会徒增工作量。如果增加了NodeJS层,每种前端的界面展示逻辑由NodeJS层自己维护。前后端各司其职,后端专注于自己的业务逻辑开发,前端专注于产品效果开发。后端程序员也更加专注于自己的领域。
后端“三高”
即高性能,高并发,高可用
高性能是指通过设计加快服务响应时间
高并发是指通过设计保证系统能够同时并行处理很多请求
高可用是指通过设计减少系统不能提供服务的时间
这便是后端程序员专注的领域,如何有效解决三高问题,是对每一个后端程序员的挑战。
3. 后端发展前景
云计算进程提速,云上安全越来越受到企业的重视。
Go 语言生态发展稳健,越来越多企业在生产中使用 Go 语言落地业务云计算目前关注的是云原生以及业务的重构。他将其IT之前的业务架构逐步从纵向扩展应用分层架构体系,走向分布式无状态化的架构,从而使得其在支撑企业业务敏捷化、智能化以及资源利用率方面迈上了一个新的高度和台阶。
疫情催化在线教育行业产品升级转型,音视频技术不断迭代升级。go语言,也就是golang语言的简称,随着云原生在互联网行业的普及,golang 从众多语言中,脱颖而出,成为了云原生时代的新秀。越来越多的开源项目采用 golang 语言来实现。
随着 AI 技术的兴起、5G 时代的到来,音视频技术不断加速应用发展,像直播、短视频这样的产品遍地开花。音视频技术的加速应用依赖底层编解码标准的发展,当前主流的 H.264 编解码技术已经不能满足未来 4K、8K 的需求。目前借助 5G 技术低时延、高速率、大容量等显著优势,短视频会慢慢向中长视频发展,这是未来的大风口。
4. 后端行业资讯
职业素养
后端开发人员需要更多地了解应用程序架构去构建应用程序的体系结构和内部设计,知道如何使用各种框架和库,如何将它们集成到应用程序中,以及如何用一种使系统更易于维护的方式构建代码和业务逻辑。
薪资情况