diff --git a/docs/devdocs/09-培训/02-Web后端/01-Web后端的简单介绍.md b/docs/devdocs/09-培训/02-Web后端/01-Web后端的简单介绍.md index 1e9389f..300374f 100644 --- a/docs/devdocs/09-培训/02-Web后端/01-Web后端的简单介绍.md +++ b/docs/devdocs/09-培训/02-Web后端/01-Web后端的简单介绍.md @@ -2,6 +2,7 @@ 这篇文章将带你学习构建一个Web后端的简单知识;作为一篇基础的教程,我们在教程里不会太多涉及诸如缓存,消息队列等高级内容,而是专注于基础的部分;我们也不会在一开始就涉及到具体的编程语言代码,而是将这篇文章作为一个理论性的介绍.你可能至少需要了解一些计算机的基础知识,比如html等,才可以了解文章中的一些概念. ## Web的历史 +进行Web后端开发,首先需要知道Web的一些概念,实际上,“后端”这个概念不是一开始就存在的,随着人们对互联网需求的不断复杂化,后端的概念才出现了,我们首先来了解Web的发展历史 ### 静态网页 互联网最开始只有静态网页,所谓“静态”,指的是网页中的内容是完全固定的,在服务器端存储了内容固定的html,css,或者是其他的什么文件,用户访问网页,就是通过互联网查看这些固定的文件。在这种情况下,Web服务本质上更像是远程访问计算机上的某个文件夹,这种访问通过HTTP协议来进行。 @@ -35,7 +36,13 @@ httpbin.org 这个网站可以让你试验HTTP协议的方法 除了服务器,浏览器也在为适配动态网站而更新。在1995年,网景公司的员工发明了一种编程语言,叫做"JavaScript",这是对当时新兴的Java和Java Applet的回应,这种语言最大的特点就是它被设计在浏览器中运行,并且可以调用相关接口来操作页面html,css内容和进行HTTP请求,他们让自己家的网景浏览器率先支持了这种编程语言(这个浏览器就是火狐浏览器的前身),这极大的提高了浏览器对于动态网页的支持。 #### AJAX(Asynchronous JavaScript and XML) -尽管是在浏览器里的语言,但是作为一个完整编程语言的JavaScript还是非常强大的,在有了操作DOM,发起HTTP请求的能力后,JavaScript不仅可以做到传统动态页面的功能(即动态生成html,但是这个html生成之后到用户的手里还是不会变化的),还可以部分改变用户收到的文件(尤指HTML,CSS等文件),只需要浏览器重新渲染一遍就行了,这种技术就叫做AJAX,Asynchronous JavaScript and XML +尽管是在浏览器里的语言,但是作为一个完整编程语言的JavaScript还是非常强大的,在有了操作DOM,发起HTTP请求的能力后,JavaScript,搭配一些后端的程序,可以做到CGI传统动态页面没有办法做到的功能:动态更新用户html页面上的内容。传统的后端CGI,可以动态生成html,但是这个html生成之后到用户的手里还是不会变化的,而JavaScript,通过运行在用户浏览器,自行发起HTTP请求,在用户不关心的情况下,可以从后端获取一些内容,依据这些内容便可以部分改变用户浏览器所显示的HTML,CSS,只需要浏览器重新渲染一遍就行了,这种技术就叫做AJAX,Asynchronous JavaScript and XML + +AJAX与传统动态页面的不同点是:在获取新数据时,不是刷新全部的页面,而是让JavaScript操作页面的部分内容。同时,后端也不是返回html,而是返回一些可以被JavaScript理解的序列化数据(例如纯文本、XML,JSON等),前端的脚本根据这些数据,来操作用户的html + +这些后端路径不是给用户设计的,通过浏览器直接访问这些地方大概会返回一些用户难以读懂的代码,他们是给JavaScript,或者另一种程序设计的,这种路径就叫做web API,他们是两个程序通过HTTP交互的地方,而不是人机交互的界面 + +AJAX技术在今天已经非常常用了,以至于很多人都意识不到他们在使用AJAX技术 ##### 一个AJAX报名系统的例子 下面举一个例子,来详细说明AJAX的工作原理:用户需要通过一个网页进行某项活动的报名,填写个人信息,然后点击网页上的提交按钮,服务端会返回报名的结果,成功还是失败,与传统的方法不同,服务器返回信息时不是重新返回一个HTML,而是让浏览器直接在原有的界面上(比如提交按钮的下面)显示报名的状态 diff --git a/docs/devdocs/09-培训/02-Web后端/02-基于HTTP的Web后端的组成.md b/docs/devdocs/09-培训/02-Web后端/02-基于HTTP的Web后端的组成.md index 0f612d2..766ac5d 100644 --- a/docs/devdocs/09-培训/02-Web后端/02-基于HTTP的Web后端的组成.md +++ b/docs/devdocs/09-培训/02-Web后端/02-基于HTTP的Web后端的组成.md @@ -136,14 +136,17 @@ func (v *volunteer)Add()error{ 所设计的Volunteer和他的一系列方法就叫做“模型” ## 数据库 - +数据库为后端的业务数据提供了方便的存储和查询服务,这里指的是结构化数据,其他需求可以去看高级教程 ### SQLite 这是个轻量级的数据库,一个数据库就是一个文件,通常用于业务量比较小的场景或者是本地开发的场景 -### Postgre +### PostgreSQL +这个可以说是目前最厉害的开源数据库了,不仅提供了常规的结构化功能,而且对于一些简单的非结构化存储需求也可以胜任,但是本身的资源消耗是有点高的 ### 选择数据库的各种考量 +- 业务量:如果业务量比较小的话,就使用SQLite吧 +- 兼容性:如果现有的环境和业务依赖于某个数据库,那么就继续用吧 ### ORM - +ORM是对数据库的一层抽象,让你专注于业务逻辑的开发,而不用担心具体的数据库问题,如果对于性能或者其他的方面没有很大的需求的话,建议在你的项目里使用ORM ## 鉴权 ### Session ### JWT diff --git a/docs/devdocs/09-培训/02-Web后端/03-高级教程.md b/docs/devdocs/09-培训/02-Web后端/03-高级教程.md index c4bdd7a..565b5d9 100644 --- a/docs/devdocs/09-培训/02-Web后端/03-高级教程.md +++ b/docs/devdocs/09-培训/02-Web后端/03-高级教程.md @@ -1,7 +1,9 @@ # 高级教程 本篇是Web后端的进阶系列文章 ## 缓存 - +### 为什么我们需要缓存? +对于某些需要高频读写的数据,放在数据库中的速度会比较慢,所以我们需要一个缓存俩提供快速访问,这些缓存通常放在内存中,提供最快的访问速度 +### Redis 和 Memcached ## 消息队列 ## 日志与监控