后臺產品經理,需掌握這些數據交互知識
人們每天都在接收信息和發送信息,在傳遞信息的過程中,明白對方要表達的意思。數據也是如此,在系統交換數據的過程中,就伴隨著數據交互。本篇文章將為大家具體分析前端和后臺的數據交互與協議。
本文所說的”數據交換” 是指在計算機網絡中,一個系統把數據傳遞給另外一個系統。這非常類似于一個人要告訴另外一個人一件事情。
當一個人要把一件事情告訴另外一個人的時候,我們可以通過電話、郵件、短信、IM工具或者當面說的方式來交流。這種方式類似于系統數據交換要通過 TCP、UDP、管道等等的方式實現。
當兩個人交流的時候,我們需要一種共同的語言才能明白對方的意思,同樣的,兩個系統要交換數據,也需要定義一種雙方都明白的協議,我們稱為”數據交換協議”。
目前,除了一些特別簡單非聯網類應用(比如計算器、鬧鐘等),幾乎所有的應用均是聯網應用(比如新聞客戶端,微信等等),這些 app 客戶端基本都只是負責用戶的交互與數據收集與展示,真正的數據和服務均存儲在云端。下面將為大家具體分析一下:前端和后臺的數據交互與協議。
一、移動端與后臺的交換數據和展示
我們打個比喻,其實整個過程跟去火鍋店吃火鍋一樣的。
拿任意一個新聞客戶端舉例:
- 當用戶刷新的那一刻(你萌生了吃火鍋的想法)
- 客戶端開始組織數據請求(你開始穿衣洗臉打扮,并思考該去哪一家吃呢)
- 當用戶界面開始展示 loading 的時候(這個時候你正走在去火鍋店的路上)
- 經過幾百毫秒的時間,這個時候請求數據已經到了服務器(你已經坐在了火鍋店的桌子上),服務器開始查看客戶端想要請求哪方面的數據,是請求財經頻道的,還是請求汽車頻道的數據(服務員遞來了菜單,問你想吃啥)
- 服務器看懂了客戶端的想法開始準備數據(你點了一個鴛鴦鍋,一大堆吃的)
- 服務器看到你請求的是汽車頻道和財經頻道的數據(后臺的廚師開始制作美食),并給回到服務員,服務員一路小跑,將你要的鍋和一大堆的食物遞到你的面前,這個時候相當于數據已經傳回到了客戶端
- 客戶端loading消失,于是你看到了最新的兩個頻道的數據
二、客戶端和服務器之間傳輸數據的格式
現在流行的做法通常有兩種,一種是類似于 PB(Protocol Buffer,是 google 的一種數據交換的格式,它獨立于語言,獨立于平臺。由于它是一種二進制的格式,比使用 xml 進行數據交換快許多。可以把它用于分布式應用之間的數據通信或者異構環境下的數據交換。作為一種效率和兼容性都很優秀的二進制數據傳輸格式,以用于諸如網絡傳輸、配置文件、數據存儲等諸多領域。)
另一種是 JSON(JavaScriptObject Notation),這也是一種輕量級的數據傳輸格式,就是用一堆中括號把數據組織起來,不像二進制,這種格式是人可讀的,并且比較輕巧,所以也有大量的應用場景。下面這段數據就是 JSON格式,簡單解讀一下,就是 people 對應了三個人,三個人分別是中括號間的三個花括號中的人。
總結起來十分簡單,移動端提出需求,服務器按要求組織好數據發給你,針對不同的格式,移動端自己解析,展示,完活兒。其實,不止移動端,前端網頁和后臺,后臺和后臺之間也是這個道理。
三、數據的傳輸過程
首先我們來看下不同網絡斷上的兩臺計算機如何通過TCP/IP協議進行通訊:
從以上整個的一個數據流程我們可以看出協議是水平的,而服務是垂直的,TCP叫做傳輸控制協議,是一種面向連接的、端對端的、可靠的、基于IP的傳輸層協議。主要特點是3次握手建立連接,4次揮手斷開連接。
而IP又叫因特網協議,IP協議位于網絡層,IP協議規定了數據傳輸時的基本單元(數據包)和格式,IP協議還定義了數據包的遞交辦法和路由選擇。
整個網絡中的傳輸流程是:IP層接收由更低層(網絡接口層例如以太網設備驅動程序)發來的數據包,并把該數據包發送到更高層—TCP層;相反,IP層也把從TCP接收來的數據包傳送到更低層。
簡言之TCP和IP的關系是,IP提供基本的數據傳送,而高層的TCP對這些數據包做進一步加工,如提供端口號等等。
在網絡接口這一塊主要是有兩大局域網技術規范,分別是以太網和令牌環,注意這并不是網絡,以太網定義了在局域網中采用的電纜類型和信號處理方法,而令牌環網絡則是保證每個節點設備在可以預定的時間間隔獲得對網絡的訪問,適用于對實時性要求高的應用。
以上是技術視角,我們再以產品視角來結合上述回顧當我們加載數據時整個的一個數據流程:
作者:Te Fuir;公眾號:唐僧講道法
本文由 @Te Fuir 原創發布于人人都是產品經理,未經許可,禁止轉載。
題圖來自Unsplash,基于CC0協議
大家期待已久的《數據產品經理實戰訓練營》終于在起點學院(人人都是產品經理旗下教育機構)上線啦!經過迭代優化,現在已經第7期開啟報名啦
本課程非常適合新手數據產品經理,或者想要轉崗的產品經理、數據分析師、研發、產品運營等人群。
課程會從基礎概念,到核心技能,再通過典型數據分析平臺的實戰,幫助大家構建完整的知識體系,掌握數據產品經理的基本功。
學完后你會掌握怎么建指標體系、指標字典,如何設計數據埋點、保證數據質量,規劃大數據分析平臺等實際工作技能~
現在就添加空空老師(微信id:anne012520),咨詢課程詳情并領取福利優惠吧!
這位同學,文末到數據流向圖,建議標注下來源,直接盜用不太合適。
他人分享圖片,來源無從考證,后期會注意,感謝提醒。
圖是我畫的
666666
。。。 ??