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:服务端 用来储存用户缓存的一个容器。(给服务端使用)
  • 它们的作用均是用来储存数据的。
posted @ 2023-03-31 17:02  sky天空空  阅读(85)  评论(0)    收藏  举报