1、Socket通訊(底層、通訊的資料協議、通訊模式)
通訊模式:同步、非同步
通訊協定:有狀態(常串連)、無狀態(無常串連)(無法把第二次關聯和第一次關聯聯絡起來)
在一次完整的通訊會話過程中串連(socket)一直建立著,沒有中斷。
有狀態:例如打電話,我第一次打給你問你吃了嗎?你說吃了,然後我又問你吃啥,你說喝粥,也就是說第二次我問你的時候你知道我是誰?
無狀態:我第一次打電話給你問你吃了嗎?你說吃了,然後我就把電話掛了,然後我第二次打電話給你問你吃啥?你就納悶說,你是誰啊?也就是說第二次電話你聯絡不起來我是第一次打電話給你的那個人。
無狀態通訊協定:(HTTP(同步的)) 例如,我開啟一個頁面是一次請求,然後頁面開啟了,我把網路關閉,但是還是不影響我瀏覽網頁。伺服器的負載較小!
但是我在噹噹買書的時候,點擊確定的時候,彈到另外一個頁面,這個頁面負責瀏覽自己所買貨物的資訊,在這裡另外一個頁面還記得前面那個頁面我所留下的記錄,這是為什麼呢?
這是因為伺服器為每一個訪問者分配一個小的會話框,能把你的記錄,都記錄在對話方塊裡,當你再次訪問的時候他會自動跳到屬於你的會話框。
在例如,點餐,我分配的是三號桌,我說要點一個馬鈴薯絲,然後服務員會去給我準備馬鈴薯絲,過一段時間,我又想吃魚,然後就在跟服務員說三號桌再來一條魚,於是魚的記錄也被加進去了,三號桌就是屬於我的會話框。
2、HTTP協議通訊 HTTPClient 只需把自己的參數傳給伺服器就可以了,需要自己封裝參數和解析結果
在實際開發中用的更多的是此種方法。
1、用戶端能夠做更方便的工作,比起純傳統的web用戶端。如果直接開啟web網站去查詢,缺陷是用戶端需要流量。最大的問題是成本。其次是比較慢,使用者體驗效果不好。
例如我現在要用手機開啟新浪網頁,網頁有很多圖片和資訊,大概需要2M的流量,行動電信業者流量費用除了包月價格1kb=1分錢。如果開啟新浪的網頁則需要20塊錢左右,
2、不用自己定義協議,相對於第一種來說較為簡單。
3、WebView 更傻的訪問方式。不需要封裝參數和解析結果