17 前后端分离的项目搭建
项目简介
mvc项目:
前后端分离的项目:
jdbc://mysql://localhost:3306/db_morning?host=localhost&user=root&password=123456
- jdbc : Java连接数据库的一个工具
- mysql:数据库的类型(是啥数据库)
- localhost:3306 :表示数据库所在的IP和端口号
- db_morning:选择的数据库
- host=localhost&port=3306&user=root&password=123456:连接的信息

浏览器中输入地址访问页面的全过程:
用nginx部署前端,tomcat部署的后端;(nginx和tomcat均为服务器软件)

- 浏览器中输入项目地址,页面展示相应界面:
- 浏览器连接到服务器软件,并将前端代码下载下来,在浏览器上运行
- 浏览器又要去访问后端:
- 浏览器访问页面:输入的地址为前端地址
- 从而导致访问前后端的路径不同,则存在跨域问题
- 因跨域问题,所以,浏览器上存在前端无法连接后端
跨域现象:
- 用户访问前端,再通过前端访问后端
- 浏览器访问的地址和后端的地址不一致,这种访问的方式就叫做跨域。
- 浏览器禁止跨域访问。
使用nginx代理后:

完整的过程:
app可以直接访问后端(不存在跨域问题),但我们一般为了安全考虑,还是选择通过代理去访问后端。
MySQL用来储存用户数据的
redis用来储存用户缓存数据的

用户实现登录过程
1、web中输入要访问的地址,将前端代码下载到浏览器中
2、web中登录页面展示(输入账号密码,点击登录)
3、浏览器携带账号密码发送给代理
4、代理收到后将东西发送给后端;
5、后端收到后去数据库MySQL中对比(对比账号密码是否与MySQL中储存的一致)
6、若账号密码一致,则登录成功(后端会自动生成一个token令牌,每次登录的token都不一样)
7、后端将token储存到redis中(token一式两份,redis中一份,返回浏览器中一份存放于cookie中),且返回到代理——>浏览器;
- cookie是前端用来储存用户缓存数据的
- session是后端服务器用来储存用户缓存数据的,但是因为session不太好用,用起来麻烦,所以就用redis来代替session。
- redis是后端用来储存用户缓存数据的。(以token为例,也可以将用户登录时的一些其他数据储存到redis中。)
那为何要选择使用redis呢?
- 用mysql也可实现该过程,但是redis中的数据是存放在内存中的,而mysql中的数据则是存放在电脑硬盘中的。
- 所以redis中数据的存取速度都很快!!
token上网作用:
- 有token则表示已经登录;
- 没有token或token错误(与redis中储存的token不一致)则表示没有登录;
- 有正确且一致的token则表示登录成功
8、web将token随身携带,实操发布朋友圈
9、编辑完毕之后,发布,将内容和token -->代理-->后端(将携带的token与redis中的token做对比判断是否一致,若一致,则代表是登录的,则可将朋友圈的数据新增到MySQL中去,若不一致,则将直接告知未登录)。
cookie和session的区别(面试重点):
- cookie:浏览器/客户端 用来储存用户缓存的一个容器。(给客户端使用)
- session:服务端 用来储存用户缓存的一个容器。(给服务端使用)
- 它们的作用均是用来储存数据的。

浙公网安备 33010602011771号