協(xié)議簽字了反悔有效嗎 http請求的過程與原理?
http請求的過程與原理?其工作過程分為四步:1.客戶機(jī)與服務(wù)器建立連接:客戶單擊某個(gè)超級鏈接,HTTP的工作開始,接下來進(jìn)行TCP連接的三次握手過程。2.建立連接后,客戶幾發(fā)送一個(gè)請求給服務(wù)器,請求
http請求的過程與原理?
其工作過程分為四步:
1.客戶機(jī)與服務(wù)器建立連接:客戶單擊某個(gè)超級鏈接,HTTP的工作開始,接下來進(jìn)行TCP連接的三次握手過程。
2.建立連接后,客戶幾發(fā)送一個(gè)請求給服務(wù)器,請求方式的格式為:統(tǒng)一資源標(biāo)識符(URL)、協(xié)議版本號、MIME信息(包括請求修飾符、客戶機(jī)信息和可能的內(nèi)容)。
3.服務(wù)器接到請求后,給予相應(yīng)的響應(yīng)信息,其格式為:一個(gè)狀態(tài)行(包括信息的協(xié)議版本號)、一個(gè)成功或錯(cuò)誤的代碼、后面的是MIME信息(包括服務(wù)器信息、實(shí)體信息、可能的內(nèi)容)。
4.客戶端接收到服務(wù)器所返回的信息,通過瀏覽器顯示在用戶的顯示屏上,然后客戶機(jī)與服務(wù)器斷開連接。客戶端收到服務(wù)器信息后,向服務(wù)器發(fā)送一個(gè)確認(rèn)包,此包發(fā)送完畢,表示完成三次握手。
微服務(wù)調(diào)用為啥用RPC框架,http不更簡單嗎?
簡單點(diǎn),HTTP是協(xié)議,RPC是概念!實(shí)現(xiàn)RPC可以基于HTTP協(xié)議(Feign),TCP協(xié)議(Netty),RMI協(xié)議(Soap),WebService(XML—RPC)框架。傳輸過程中,也因?yàn)樾蛄谢绞降牟煌钟幸恍┛蚣芎蛥f(xié)議,比如Dubbo中的Dubbo協(xié)議,gRpc—Protobuf序列化協(xié)議等等。其實(shí),都是基于遠(yuǎn)程調(diào)用的概念,何為遠(yuǎn)程調(diào)用?
重點(diǎn)是,RPC就是遠(yuǎn)程調(diào)用,遠(yuǎn)程調(diào)用就是客戶端把調(diào)用的接口,參數(shù),參數(shù)類型,方法,返回值,返回值類型等(這些稱為方法簽名),通過如上的協(xié)議,發(fā)送給服務(wù)端,告知服務(wù)端需要調(diào)用的接口方法,這個(gè)過程就是RPC的實(shí)現(xiàn)過程!HTTP和RPC是不同層面的兩個(gè)東西!
性能方面,HTTP本身是基于TCP協(xié)議的,屬于應(yīng)用層協(xié)議,所以HTTP協(xié)議本身在實(shí)現(xiàn)過程中就會占用大量的資源(內(nèi)存,帶寬等),性能上肯定沒有通過TCP直接實(shí)現(xiàn)RPC協(xié)議快,不管HTTP如何優(yōu)化肯定的是不如TCP的!而TCP則是依靠字節(jié)碼,現(xiàn)在普遍采用的是將客戶端調(diào)用的接口信息,序列化的方式發(fā)送給服務(wù)端,序列化框架又包含很多(Hession,Protobuf,Kryo等等,序列化性能最高的是Kryo,序列化后字節(jié)碼最小的是Protobuf),序列化后的字節(jié)碼越小,占用帶寬越少,序列化時(shí)間越短,線程IO等待時(shí)間就會越小。所以,在具體應(yīng)用層面有很多可探討的技術(shù),可以根據(jù)自己的硬件能力來選擇相應(yīng)的技術(shù)就可以了!
歡迎熱愛技術(shù)的人來探討!