在线社交网站设计及 第1篇
在会话模块中,我们主要实现两个功能:
所以,我们需要新维护两个数据库表 - 会话表,会话用户关系表。
会话表:会话的实体表,存储了有哪些会话及其基本信息。
会话用户关系表:并不是一个实体表,它将 会话 与 该会话下的用户 进行关联。
该SQL中出现了 datatime 属性:是一种用于存储日期和时间的属性。它可以存储从1000-01-01 00:00:00到9999-12-31 23:59:59范围内的日期和时间。
在这两个表中,同样我们在表中插入了几条测试数据。因为每个会话都至少有两个用户(聊天),所以两条SQL为一组数据进行插入 会话用户关系表。
对于这两个表的命名,为了与 HTTP 里的 Session 作出区分,我们在表名前面加上 message 前缀,表示 消息 的 session 。
我们可以推断出该功能的关键实现核心:
会话模块所使用到的应用层协议为 HTTP 协议。
我们针对 会话模块中的两个功能 分别进行应用层格式的约定,即 约定这两个功能所涉及到的请求与响应的格式。
我们进行如下约定:
在线社交网站设计及 第2篇
请求: POST /register Content-Type: application/x-www-form-urlencoded username=zhangsan&password=123
响应: HTTP/ 200 OK Content-Type: application/json { userId: 1, username: 'zhangsan' } (如果注册失败,则返回空对象)
在线社交网站设计及 第3篇
我们创建一个 SpringBoot 项目(Maven构建),在创建时导入 4 个重要的依赖:
这四个依赖分别在网络通信,操作数据库等方面提供支持。
源码中的配置如上,需要进行三处修改以适配你本地的 MySQL 数据库:
完成好项目的创建与配置后,我们进行第一个模块的开发 - 用户模块。
在用户模块中,我们主要实现三个功能:
所以,我们需要维护一个数据库表 - 用户表(user 表),用来存储我们的聊天网站项目中有哪些用户及其基本信息。用户表为实体数据表,每条数据可以理解为一个用户实体。
此表涉及三个字段,用户ID,用户名,用户密码。我们在表中插入了几条测试数据。
我们可以推断出每个功能的关键实现核心:
表中涉及到的 session 为我们此项目中使用到的 HTTP 协议中的 Session :
在 HTTP 协议中,Session 是一种用于在客户端和服务器之间维持状态的方法。HTTP 是一种无状态协议,这意味着每个请求都是独立的,不会自动保留任何之前请求的信息。为了在多个请求之间维持用户的状态和数据(例如用户登录信息、购物车内容等),引入了 Session 的概念。在本项目后续的后端代码会有体现。
用户模块所使用到的应用层协议为 HTTP 协议。
每个功能的实现都需要前后端进行数据交流,因此我们针对每个功能进行应用层格式的约定,即 约定每个功能所涉及到的请求与响应的格式。
我们进行如下约定: