一.概念性问题
1.BS和CS的区别
1)开发维护成本
cs开发维护成本高于bs。因为采用cs结构时,对于不同的客户端要开发不同的程序,而且软件安装调试
和升级都需要在所有客户机上进行。
bs只需要将服务器上的软件版本升级,然后从新登录就可以了。
2) 客户端负载
cs客户端负载大。cs客户端不仅负责和用户的交互,收集用户信息,而且还需要通过网络向服务器发出
请求。
bs把事务处理逻辑部分交给了服务器,客户端只是负责显示。
3) 安全性
cs安全性高。cs适用于专人使用的系统,可以通过严格的管理派发软件。
bs使用人数多,不固定,安全性低。
4) 作用范围
Client/Server是建立在局域网的基础上的。Browser/Server是建立在广域网的基础上的。
2.MVC/MTV
1) MVC概念
MVC开始是存在于桌面程序中的,M是指业务模型 model,V是指用户界面 view,C则是控制器
controler,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一
批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新
2) 分层介绍
- Model(模型) -----封装数据的交互操作 CRUD
- View(视图) -----是用来将数据呈现给用户的
- Controller(控制器) ------用来协调Model和View的关系,并对数据进行操作,筛选
3) MTV
也叫做MVT,本质上就是MVC,变种
Model(模型) -----同MVC中Model
Template(模板) -----同MVC中View
Views(视图函数)-----同MVC中Controller
三.后端问题
1.常见的请求状态码
200
:成功
301
:永久重定向
302
:重定向
403
:防止跨站攻击
404
:路径错误
405
:请求方式错误
500
:后台业务逻辑错误
2. token的基本概念
基本概念:
Token
的中文意思是“令牌”。主要用来身份验证。 Facebook,Twitter,Google+,Github 等大型网站都在使用。比起传统的身份验证方法,Token 有扩展性强,安全性高的特点,非常适合用在 Web 应用或者移动应用上,如果使用在移动端或客户端开发中,通常以Json
形式传输,服务端会话技术,自定义的Session
,给他一个不能重复的字符串,数据存储在服务器中
验证方法:
使用基于 Token
的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:
- 客户端使用用户名跟密码请求登录
- 服务端收到请求,去验证用户名与密码
- 验证成功后,服务端会签发一个 Token,再把这个Token 发送给客户端
- 客户端收到 Token以后可以把它存储起来,比如放在 Cookie里或者 Local Storage里
- 客户端每次向服务端请求资源的时候需要带着服务端签发的Token
- 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据
3. cookie和session的区别
(1) cookie
数据存放在客户端上,session数据放在服务器上。
(2) cookie
不是很安全,别人可以分析存放在本地的COOKIE
并进行COOKIE
欺骗。考虑到安全应当使用session。
(3) session
会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能 。考虑到减轻服务器性能方面,应当使用COOKIE
4. session与token的区别
(1) 作为身份认证 token
安全性比session
好,因为每个请求都有签名还能防止监听以及重放攻击
(2) Session
是一种HTTP存储机制,目的是为无状态的HTTP
提供的持久机制。Session
认证只是简单的把User
信息存储到Session
里,因为SID
的不可预测性,暂且认为是安全的。这是一种认证手段。 但是如果有了某个User
的SID
,就相当于拥有该User的全部权利.SID
不应该共享给其他网站或第三方.
(3) Token
,如果指的是OAuth Token
或类似的机制的话,提供的是 认证 和 授权 ,认证是针对用户,授权是针对App
。其目的是让 某App
有权利访问 某用户 的信息。这里的Token
是唯一的。不可以转移到其它 App
上,也不可以转到其它 用户上。