1、前言
客户端发送的消息要被服务器端所接受,我们必须对它们进行编程,为此我们就需要一种后端编程语言,流行的后端语言有javascript、python and java。
2、怎么执行消息发送与接受
- 使用后端编程语言实际上非常困难并且需要大量代码,这就需要Backend Framework (后端框架)and Package Manager。
Backend Framework:可以帮助我们更轻松的创建服务器并且使用更少的代码,主流的有: java sping、python Django
- 我们还使用封装好的Package来实现其他任务,比如计算和通信,登陆和验证用户等,这就需要我们要下载很多Package,这就需要Package Manager,主流:java maven、python pip,这些是我们创建后端需要的技术
3、如何保存网站数据
以购物网站,淘宝为例,登录信息、订单和历史记录等,为此我们使用数据库来储存这些数据,数据库帮助我们存储和管理 ,只需一台服务器和一个数据库就可以构建大部分项目
例如:用户通过前端下单了物品,前端会给后端发送包含订单的信息,然后后端将订单保存到数据库,并向前端发送一条消息,确认订单已创建。
web应用程序的工作方式: 前端->后端:请求(requset) 后端->前端:响应(response)
4、使用编程语言和后端框架来定义允许哪些类型,请求以及如何响应这些请求,例如:我们可以允许后斜杠订单请求,每当我们收到对应请求时,将创建一个订单保存在我们数据库中,
app.post('/order',(request,response) =>{
const order = createOrder(request);
database.save(order);
response.send('order success')
});
当然也可以请求检索订单历史记录等等。
后端允许所有的不同类型的请求的列表:API, 如果发送的不合格的api请求,就会返回错误。所以我们可以使用类型和URL路径来识别请求
POST https://baidu.com//orders
5、基础设施即服务、平台即服务
为了运行后端程序,一般会租用一个虚拟机,为了运行数据库会租用另一个虚拟机
假设,在双十一期间,我们收到大量的请求超过服务器处理的范围,怎么办?
通过云计算,我们可以设置多个运行这些后端代码的虚拟机,在他们前面设置一个特殊的虚拟机,称为负载均衡,通过在我们的虚拟机上均匀分配请求解决大流量问题。
之后没有大流量的时候,我们可以关闭这些虚拟机,一个新问题?很多虚拟机需要创建和设置,需要花费大量精力,这就引出Platform as a service(PaaS),它只需要我们上传后端代码,他将设置所有虚拟机包括负载均衡为我们集成一切
6、微服务
假设我们的后端 包含 将订单保存到数据库,用用户的信用卡继续收费,并发送短信(email)确认验证码.
现实中,这三个步骤可能包含百万行代码,所以我们将其分成三个代码库,每个代码库都有自己的后端,每个后端都有负载均衡器和数据库。这样每一部分工作都有独立的后台进行处理,这就是微服务(各司其职)
比如,某个公司创建了电子邮件服务,因此它只需要提供一个后端和一个用户发送电子邮件的API。当一家公司提供外部应用程序可以使用的后端和API时,这就是SaaS(软件及服务)
如果我们的网站流量很大,需要减轻主数据库的压力,我们会添加如redis这样的缓存机制来提高性能。