- 分布式系統架構:技術棧詳解與快速進階
- 張程
- 1169字
- 2020-08-13 13:45:32
2.3 前后端交互難點
1. 前后端合理劃分邏輯
當用戶體系發展增大時,用戶訪問系統的頻率也會加大,系統的后端服務器壓力非常大,更易受到外界的攻擊,如通過木馬程序、篡改用戶資料等,所以系統的安全性很重要。那么如何防止外界攻擊呢?
HTTP的請求容易被截取篡改,而SWF文件也存在被攻擊的風險。把HTTP的請求升級成HTTPS短期內可以防止惡意攻擊,但當外界破解了證書后,同樣可以截取篡改,所以從技術層面很難防止。前后端溝通合作時,需要考慮安全、性能等問題,而不是用“偷懶”的方式去快速實現功能,需考慮數據校驗、交互令牌授權、敏感數據加密等。此時如何在其中權衡是一個很大的難點。我的建議是,首先看功能的復雜度和涉及面,如復雜且涉及面廣,評估工作量時需全面考慮安全性、性能等問題。如功能不復雜且涉及面不多,不建議全面考慮以上的問題,可以在設計時主要考慮大的方向,更多細節可以通過注釋的方式標明,為后續提供思路。
提示
思考問題不要摻雜著固定的思維,多從高效、用戶體驗角度去設計,不要為了完成任務而完成,雙方多配合溝通,合理化交互請求,盡量精簡內容,提高網絡傳輸的速度,只要不涉及大的架構性變動,不要嫌麻煩。當功能出現BUG時,雙方要快速配合定位問題并處理。
2. 技術方面
在技術方面,有如下幾點建議。
1)合理約定精簡接口:前后端可以相互討論,根據實際業務場景去設計接口,接口的地址、參數應當精簡,以加快網絡傳輸。
2)前后端授權認證機制:前后端可以根據實際業務場景討論使用合適的授權認證機制,盡量滿足業務場景,同時也具有較高的安全性。
3)Head頭部識別:前后端交互過程中,可以充分利用Head頭部特性去設計,支持密文傳輸、共同化參數統一處理。
4)入參、出參統一格式化:入參、出參具有一定的格式,交互中可以提前確定一套完整且易擴展的標準格式。
5)業務狀態標準化:業務狀態碼標準化,可以方便前端進行定制化的業務擴展,如定制化彈窗、提示、業務場景處理。
6)跨域處理:跨域在分布式中頻繁出現,由于前后端分離后,兩端各自部署,部署的特性導致兩者不屬于同一個域名下,影響兩端交互。有效選擇跨域處理方案尤為重要。
7)靜態資源合理化:分布式環境前后端分離狀態下,前端頁面的相關靜態資源文件需要提前規劃部署方案,有效提高用戶訪問速度。
8)離線獲取數據:提高用戶體驗,在無網絡情況下,充分利用之前下載的網絡數據進行交互,滿足短時間內的業務場景需求。
9)數據兼容:前端涉及多種瀏覽器、手機設備。這些瀏覽器、設備間訪問需要兼容。
10)網絡傳輸:交互過程中盡量減少傳輸的數據量,提高傳輸的效率。
11)數據緩存規則:前端、后端根據業務功能場景特性,可以商討部分數據或字段進行緩存以及存儲的策略規則,從而提高響應速度。
12)高可用部署:交互過程中需要考慮如何高效交互,以及高用戶量訪問時如何避免異常卡死,高可用的部署策略將盡全力保證兩端的正常。