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