前端校验和后端校验区别
前臺驗(yàn)證數(shù)據(jù)格式
后臺驗(yàn)證的是數(shù)據(jù)的正確性
當(dāng)下流行的系統(tǒng)架構(gòu)方案中,前端和后端都是分離開的。
目的:① 為了方便前端開發(fā)人員和后端開發(fā)人員可以同時(shí)開發(fā);② 前后端分離也使得前后端的代碼可以分開進(jìn)行管理,方便了各自的版本迭代及控制。
1.1前端校驗(yàn)?
就是通過前端技術(shù),在瀏覽器(B/S模式中的B(browser)端)上面可以進(jìn)行簡單的數(shù)據(jù)檢查。
?
如果前端不進(jìn)行任何的數(shù)據(jù)檢查,直接把數(shù)據(jù)發(fā)送給后端,讓后端來進(jìn)行檢查的話,那么就會帶來這樣的問題:
太浪費(fèi)網(wǎng)絡(luò),對于網(wǎng)站本身來說完全就是在浪費(fèi)流量,增加了不必要的服務(wù)器壓力。因?yàn)榍岸税l(fā)起的每次請求都要給到后端,而后端是部署在我們的服務(wù)器上的。每次請求過來,服務(wù)器都要予以響應(yīng)。而實(shí)際上,對于一些很簡單的校驗(yàn),完全可以在用戶的瀏覽器上完成,沒必要專門讓服務(wù)器去校驗(yàn)。
有必要在前端校驗(yàn)的
必填項(xiàng)、(郵箱、電話號、地址)格式、密碼強(qiáng)度檢測。
比如手機(jī)號碼,郵箱號不合法,或者密碼強(qiáng)度太弱,在前端校驗(yàn)可以不等后端返回,直接提醒用戶不合法,讓用戶及時(shí)知曉并更改,避免不必要的提交,再等待服務(wù)器返回錯誤信息。
1.2后端校驗(yàn)
Q1:為什么有后端校驗(yàn)?
A1:① 因?yàn)楹蠖藢τ谇岸藗魉瓦^來的數(shù)據(jù)不信任。
因?yàn)閿?shù)據(jù)在網(wǎng)絡(luò)傳輸過程中有可能被不法分子給篡改了。畢竟,網(wǎng)絡(luò)存在安全隱患。當(dāng)然,解決網(wǎng)絡(luò)安全常用的方式有:HTTPS、加簽名等(我對這個不太了解,所以不進(jìn)行說明了)。
② 前端傳送過來的數(shù)據(jù)有可能后端的業(yè)務(wù)邏輯根本不支持。比如說,如下圖所示,【使用狀態(tài)】可選擇的值只有3種。結(jié)果,前端傳送了一個使用狀態(tài)值為5的數(shù)據(jù)給到后端。而后端開發(fā)人員的開發(fā)能力參差不齊,有可能針對使用狀態(tài)為5的這種情況無法處理甚至直接導(dǎo)致數(shù)據(jù)庫數(shù)據(jù)混亂。
Q2:后端校驗(yàn)分為哪些大類?
A2:大的粒度上分為兩類:① 針對前端傳送過來的數(shù)據(jù)屬性進(jìn)行【接口層面】的數(shù)據(jù)校驗(yàn);② 業(yè)務(wù)邏輯校驗(yàn)。
我們這里重點(diǎn)要說明的是情況 ① 針對前端傳送過來的數(shù)據(jù)屬性進(jìn)行接口層面的數(shù)據(jù)校驗(yàn)。這種校驗(yàn)不帶有任何的業(yè)務(wù)邏輯層面的校驗(yàn),只是簡單的數(shù)據(jù)合法性校驗(yàn)。
比如說,手機(jī)號碼只能是11位,年齡不能是負(fù)數(shù),性別只能是男、女、其他(可能有,我不清楚)等等,類似這種最簡單的數(shù)據(jù)校驗(yàn)。用戶名重復(fù)校驗(yàn),必須提交后臺查詢數(shù)據(jù)庫,返回是否重復(fù)。
必須在后端校驗(yàn)的
唯一性驗(yàn)證,驗(yàn)證碼,敏感詞,出錯概率高的要做異步校驗(yàn)。對數(shù)據(jù)庫中的相應(yīng)字段進(jìn)行校驗(yàn),比如建立主外鍵約束、控制字段長度、是否為空、是否可重復(fù)等。
后端校驗(yàn)可以防止接口被私自調(diào)用導(dǎo)致破壞數(shù)據(jù)庫結(jié)構(gòu);避免有人模擬瀏覽器行為直接給服務(wù)器發(fā)請求。
后端校驗(yàn)可以防止接口被私自調(diào)用導(dǎo)致破壞數(shù)據(jù)庫結(jié)構(gòu);避免有人模擬瀏覽器行為直接給服務(wù)器發(fā)請求。
1.3 前后端校驗(yàn)
只做了前端檢驗(yàn),用戶可以通過瀏覽器的控制臺來人為的修改前端代碼,所以:
- 后端驗(yàn)證必須存在
- 前端是為了更好的用戶體驗(yàn)
所以,追求用戶體驗(yàn)的情況下,二者都是需要的。
?
總結(jié)
以上是生活随笔為你收集整理的前端校验和后端校验区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搭建webUI自动化及问题解决:Mess
- 下一篇: 数据结构-树1-概念