要寫一個優(yōu)秀的網(wǎng)絡(luò)框架,當(dāng)然少不了對 Http 協(xié)議的了解滋戳,因為Http協(xié)議是網(wǎng)絡(luò)請求的核心。
一啥刻、Http協(xié)議的簡介
1.什么是Http協(xié)議呢奸鸯?
這是直接網(wǎng)上搜索出來的結(jié)果:超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol) 是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議郑什。所有的 WWW 文件都必須遵守這個標(biāo)準(zhǔn)府喳。設(shè)計 HTTP 最初的目的是為了提供一種發(fā)布和接收 HTML 頁面的方法。
說白了蘑拯,http 協(xié)議就算是超文本傳輸協(xié)議
2.Http的版本
目前(2016年11月6日23:33:31)基本都是使用 1.1 協(xié)議的钝满,2.0 協(xié)議還沒有普及,不過阿里好像已經(jīng)開始使用 2.0 協(xié)議了申窘。
其實在 Http2.0 出現(xiàn)之前弯蚜,Google 就推出過 SPDY ,SPDY 用以最小化網(wǎng)絡(luò)延遲剃法,提升網(wǎng)絡(luò)速度碎捺,優(yōu)化用戶的網(wǎng)絡(luò)使用體驗。SPDY 并不是一種用于替代 HTTP 的協(xié)議贷洲,而是對 HTTP 協(xié)議的增強(qiáng)收厨。新協(xié)議的功能包括數(shù)據(jù)流的多路復(fù)用、請求優(yōu)先級以及 HTTP 報頭壓縮优构。谷歌表示诵叁,引入 SPDY 協(xié)議后,在實驗室測試中頁面加載速度比原先快 64%钦椭∨《睿可是現(xiàn)在(2016年11月6日23:38:01) 現(xiàn)在 Google 已經(jīng)不再維護(hù) SPDY 了,因為 Http2.0 基本都包含了 SPDY 的功能彪腔,且 SPDY 的開發(fā)者也加入到了Http2.0 的 維護(hù)開發(fā)中侥锦。
那么 Http2.0 跟 Http1.1 的區(qū)別是什么呢?
要想知道 2.0 和 1.1 的區(qū)別德挣,當(dāng)然最好的方式是先了解 2.0 版本新增了哪些功能恭垦。
看上面的Http版本圖就知道,Http2.0 的一個核心功能就是:多路復(fù)用
http2.0 能對網(wǎng)絡(luò)效率有較大提升格嗅,其中一個原因就是使用了多路復(fù)用
(1)多路復(fù)用
我們先來看看http1.1中多請求的處理方式:
可以看到番挺,要么是串行,一個請求完成后再發(fā)另一個請求吗浩,要么是可以并發(fā)建芙,但請求結(jié)果的返回過程必須是順序的,第一個響應(yīng)完成后懂扼,才能響應(yīng)第二個禁荸,即使第二個先處理完成,也要等待第一個阀湿,就產(chǎn)生了阻塞
那么 Http2.0 多請求是怎樣處理的呢赶熟?
只要有了請求結(jié)果數(shù)據(jù),可以立即返回陷嘴,不關(guān)心順序問題映砖,因為數(shù)據(jù)都被組裝成了一個個的frame幀,frame中記錄了自己所屬數(shù)據(jù)流的ID灾挨,客戶端把frame都接收到以后邑退,根據(jù)數(shù)據(jù)流ID再進(jìn)行組裝即可
(2)服務(wù)器推送流
我們都知道幅虑,現(xiàn)在(2016年11月6日23:54:37)我們可以給服務(wù)器推送信息,可是服務(wù)器是不可以給客戶端主動推送信息的皂林,在 2.0 添加的一個核心功能就是服務(wù)器推送流柴底。
服務(wù)器推送流(Server Push)服務(wù)端能夠更快的把資源推送給客戶端,例如服務(wù)端可以主動把 JS 和 CSS 文件推送給客戶端莫矗,而不需要客戶端解析 HTML 再發(fā)送這些請求飒硅,當(dāng)客戶端需要的時候,它已經(jīng)在客戶端了
3.Http的幾種請求方式
目前就我個人而言作谚,就使用過 get 和 post 請求三娩,其他的請求方式基本沒有使用過
get 請求方式和 post 請求有什么區(qū)別呢?
二雀监、Http 實操詳解
1.在瀏覽器中查看請求信息
然后點擊對應(yīng)的請求,可以查看詳細(xì)的請求信息
這對我們實際開發(fā)是很有用處的彬伦,其中最重要的是看請求頭和響應(yīng)信息滔悉。
三、常見的請求頭和響應(yīng)頭
1.常見的請求頭
2.常見的響應(yīng)頭
3.常見的響應(yīng)碼
上面只是簡單的列舉了一部分的請求頭和響應(yīng)頭单绑,完整的請求頭和響應(yīng)頭可以看這個網(wǎng)址:http://tools.jb51.net/table/http_header
歡迎轉(zhuǎn)載回官,轉(zhuǎn)載請標(biāo)明來源:
CSDN主頁:http://blog.csdn.net/two_water
簡書主頁:http://www.reibang.com/users/8ec863a03f4f/latest_articles