1.1 http的特點
基于tcp/ip、一種網(wǎng)絡(luò)應(yīng)用層協(xié)議侍咱、超文本傳輸協(xié)議HyperText Transfer Protocol
工作方式:客戶端請求服務(wù)端應(yīng)答的模式
快速:無狀態(tài)連接
靈活:可以傳輸任意對象,對象類型由Content-Type標(biāo)記
客戶端請求request消息包括以下格式:請求行(request line)长赞、請求頭部(header)声怔、空行、請求數(shù)據(jù)
服務(wù)端響應(yīng)response也由四個部分組成气笙,分別是:狀態(tài)行次企、消息報頭、空行潜圃、響應(yīng)正文
1.2 請求方法
http請求可以使用多種請求方法缸棵。
HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法谭期。
HTTP2.0 新的二進制格式(Binary Format)堵第,HTTP1.x的解析是基于文本∷沓觯基于文本協(xié)議的格式解析存在天然缺陷踏志,文本的表現(xiàn)形式有多樣性,要做到健壯性考慮的場景必然很多胀瞪,二進制則不同针余,只認0和1的組合∑嗟基于這種考慮HTTP2.0的協(xié)議解析決定采用二進制格式圆雁,實現(xiàn)方便且健壯。
多路復(fù)用(MultiPlexing)帆谍,即連接共享伪朽,即每一個request都是是用作連接共享機制的。一個request對應(yīng)一個id既忆,這樣一個連接上可以有多個request驱负,每個連接的request可以隨機的混雜在一起嗦玖,接收方可以根據(jù)request的 id將request再歸屬到各自不同的服務(wù)端請求里面。
header壓縮跃脊,如上文中所言宇挫,對前面提到過HTTP1.x的header帶有大量信息,而且每次都要重復(fù)發(fā)送酪术,HTTP2.0使用encoder來減少需要傳輸?shù)膆eader大小器瘪,通訊雙方各自cache一份header fields表,既避免了重復(fù)header的傳輸绘雁,又減小了需要傳輸?shù)拇笮 ?/p>
服務(wù)端推送(server push)橡疼,同SPDY一樣,HTTP2.0也具有server push功能庐舟。
參考鏈接:https://baike.baidu.com/item/HTTP%202.0/12520156?fr=aladdin
1 GET 請求指定的頁面信息欣除,并返回實體主體。
2 HEAD 類似于get請求挪略,只不過返回的響應(yīng)中沒有具體的內(nèi)容历帚,用于獲取報頭
3 POST 向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中杠娱。POST請求可能會導(dǎo)致新的資源的建立和/或已有資源的修改挽牢。
4 PUT 從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容。
5 DELETE 請求服務(wù)器刪除指定的頁面摊求。
6 CONNECT HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器禽拔。
7 OPTIONS 允許客戶端查看服務(wù)器的性能。
8 TRACE 回顯服務(wù)器收到的請求室叉,主要用于測試或診斷睹栖。
1.3 我們耳熟能詳?shù)牡膮^(qū)別
http協(xié)議最常見的兩種方法GET和POST,這幾點答案其實有幾點并不準(zhǔn)確
請求緩存:GET 會被緩存太惠,而post不會
收藏書簽:GET可以磨淌,而POST不能
保留瀏覽器歷史記錄:GET可以,而POST不能
用處:get常用于取回數(shù)據(jù)凿渊,post用于提交數(shù)據(jù)
安全性:post比get安全
請求參數(shù):querystring 是url的一部分get、post都可以帶上缚柳。 get的querystring(僅支持urlencode編碼)埃脏,post的參數(shù)是放在body(支持多種編碼)
請求參數(shù)長度限制:get請求長度最多1024kb,post對請求數(shù)據(jù)沒有限制.