Cyrus Flag

flag{S0_bangbang_7ha7_u_f1nd_h3r3}

后端入门 0x00 名词都看不懂

前端初体验,很悲催的选了一个中文GuideBook都找不到的SailsJS,然后经历了各种名次的混乱。这里写一写一些名词的相关知识以及我自己的理解。

MVC框架

之前上线某个学长写好的CTF招新网站,看了一下beego的后端,发现了models、views、controllers三个文件夹。MVC框架就是指的这三个词咯。下面是Wikipedia的定义:

MVC模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

  • 模型(Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
  • 视图(View) - 界面设计人员进行图形界面设计。
  • 控制器(Controller)- 负责转发请求,对请求进行处理。
     这种定义通常没有什么实际意义2333。个人理解是:
  • Model负责处理逻辑部分和对数据库的访问,类似于Word邮件合并或者PS数据组导入时的那个Excel通配符,负责处理数据、调用数据。
  • View负责呈现给用于结果,类似于Word邮件合并或者PS数据组导入的那个模板文件
  • Controller负责处理和用户相关的交互,类似上面这些支持通配符功能的功能本身
    Controller提交用户请求给Model;Model调用数据库完成View的内容,然后呈现给用户。

RESTful路由(RESTful Router)

框架中的另一个文件夹名为route。先上Wikipedia定义:

策略路由

  • 策略路由是一种比基于目标网络进行路由更加灵活的数据包路由转发机制。一个接口应用策略路由后,将对该接口接收到的所有包进行检查,不匹配路由图任何策略的数据包将按照通常的路由转发进行处理,匹配路由图中某个策略的数据包就按照该策略中定义的操作进行处理。
    REST
  • 资源是由URI来指定。
  • 对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。
  • 通过操作资源的表现形式来操作资源。
  • 资源的表现形式则是XML或者HTML,取决于读者是机器还是人,是消费web服务的客户软件还是web浏览器。当然也可以是任何其他的格式。
    依旧有点不知所云。这里先说一下HTTP动词。常用HTTP动词包含以下五个,个人将其理解为对应的MySQL语句。
  • GET,取数据,类似SELECT
  • POST,提交新建数据,类似CREATE
  • PUT,提交更新数据,类似UPDATE,提交内容为整个新数据
  • PACTH,提交更新数据,类似UPDATE,提交内容为需要更新的项
  • DELETE,删除数据,类似DELETE
    RESTful是一种设计风格,意思就是满足刚刚Wikipedia给的那4个要求的设计框架。RESTful Router就是在满足RESTful设计风格的框架中,通过Router将用户对URI的请求,转换成对后端资源的请求。然后进入MVC框架的处理流程。

ORM

对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。

RPC

远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用。