高频面试题小记

一.概念性问题

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的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:

  1. 客户端使用用户名跟密码请求登录
  2. 服务端收到请求,去验证用户名与密码
  3. 验证成功后,服务端会签发一个 Token,再把这个Token 发送给客户端
  4. 客户端收到 Token以后可以把它存储起来,比如放在 Cookie里或者 Local Storage里
  5. 客户端每次向服务端请求资源的时候需要带着服务端签发的Token
  6. 服务端收到请求,然后去验证客户端请求里面带着的 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的不可预测性,暂且认为是安全的。这是一种认证手段。 但是如果有了某个UserSID,就相当于拥有该User的全部权利.SID不应该共享给其他网站或第三方.
(3) Token,如果指的是OAuth Token 或类似的机制的话,提供的是 认证 和 授权 ,认证是针对用户,授权是针对App。其目的是让 某App有权利访问 某用户 的信息。这里的Token是唯一的。不可以转移到其它 App上,也不可以转到其它 用户上。

5.发送session的大致流程

在这里插入图片描述

6. csrf攻击与防御,使用token进行攻击

网页链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值