Android 網絡框架_網絡框架的核心Http協議

要寫一個優秀的網絡框架,當然少不了對 Http 協議的了解,因為Http協議是網絡請求的核心。


一、Http協議的簡介

1.什么是Http協議呢?

這是直接網上搜索出來的結果:超文本傳輸協議(HTTP,HyperText Transfer Protocol) 是互聯網上應用最為廣泛的一種網絡協議。所有的 WWW 文件都必須遵守這個標準。設計 HTTP 最初的目的是為了提供一種發布和接收 HTML 頁面的方法。

說白了,http 協議就算是超文本傳輸協議

2.Http的版本

Http 版本

目前(2016年11月6日23:33:31)基本都是使用 1.1 協議的,2.0 協議還沒有普及,不過阿里好像已經開始使用 2.0 協議了。

其實在 Http2.0 出現之前,Google 就推出過 SPDY ,SPDY 用以最小化網絡延遲,提升網絡速度,優化用戶的網絡使用體驗。SPDY 并不是一種用于替代 HTTP 的協議,而是對 HTTP 協議的增強。新協議的功能包括數據流的多路復用、請求優先級以及 HTTP 報頭壓縮。谷歌表示,引入 SPDY 協議后,在實驗室測試中頁面加載速度比原先快 64%。可是現在(2016年11月6日23:38:01) 現在 Google 已經不再維護 SPDY 了,因為 Http2.0 基本都包含了 SPDY 的功能,且 SPDY 的開發者也加入到了Http2.0 的 維護開發中。

那么 Http2.0 跟 Http1.1 的區別是什么呢?

要想知道 2.0 和 1.1 的區別,當然最好的方式是先了解 2.0 版本新增了哪些功能。

看上面的Http版本圖就知道,Http2.0 的一個核心功能就是:多路復用

http2.0 能對網絡效率有較大提升,其中一個原因就是使用了多路復用

(1)多路復用

我們先來看看http1.1中多請求的處理方式:

http1.1中多請求的處理方式

可以看到,要么是串行,一個請求完成后再發另一個請求,要么是可以并發,但請求結果的返回過程必須是順序的,第一個響應完成后,才能響應第二個,即使第二個先處理完成,也要等待第一個,就產生了阻塞

那么 Http2.0 多請求是怎樣處理的呢?

http2.0 的多請求處理方式

只要有了請求結果數據,可以立即返回,不關心順序問題,因為數據都被組裝成了一個個的frame幀,frame中記錄了自己所屬數據流的ID,客戶端把frame都接收到以后,根據數據流ID再進行組裝即可

(2)服務器推送流

我們都知道,現在(2016年11月6日23:54:37)我們可以給服務器推送信息,可是服務器是不可以給客戶端主動推送信息的,在 2.0 添加的一個核心功能就是服務器推送流。

服務器推送流(Server Push)服務端能夠更快的把資源推送給客戶端,例如服務端可以主動把 JS 和 CSS 文件推送給客戶端,而不需要客戶端解析 HTML 再發送這些請求,當客戶端需要的時候,它已經在客戶端了

3.Http的幾種請求方式

Http的幾種請求方式

目前就我個人而言,就使用過 get 和 post 請求,其他的請求方式基本沒有使用過

get 請求方式和 post 請求有什么區別呢?

post、get 請求對比

二、Http 實操詳解

1.在瀏覽器中查看請求信息

瀏覽器開發者模式

然后點擊對應的請求,可以查看詳細的請求信息

查看請求頭

這對我們實際開發是很有用處的,其中最重要的是看請求頭和響應信息。


三、常見的請求頭和響應頭

1.常見的請求頭

Http 請求頭

2.常見的響應頭

Http 響應頭

3.常見的響應碼

Http 響應碼

上面只是簡單的列舉了一部分的請求頭和響應頭,完整的請求頭和響應頭可以看這個網址:http://tools.jb51.net/table/http_header


歡迎轉載,轉載請標明來源:

CSDN主頁:http://blog.csdn.net/two_water
簡書主頁:http://www.lxweimin.com/users/8ec863a03f4f/latest_articles


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容