一.概念性問題
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
上,也不可以轉到其它 用戶上。