HTTP協議,TCP UDP協議

2022-07-18 09:30:14 字數 2713 閱讀 1433

http主要內容分為三部分,超文字,傳輸,協議。

· 上面這些概念可以統稱為資料,傳輸就是資料需要經過一系列的物理介質從乙個端系統傳送到另外乙個端系統的過程。通常我們把傳輸資料報的一方稱為請求方,把接到二進位制資料報的一方稱為應答方。

· 而協議指的就是是網路中(包括網際網路)傳遞、管理資訊的一些規範。如同人與人之間相互交流是需要遵循一定的規矩一樣,計算機之間的相互通訊需要共同遵守一定的規則,這些規則就稱為協議,只不過是網路協議。

什麼是無狀態協議,http 是無狀態協議嗎,怎麼解決?

無狀態協議就是指瀏覽器對於事物的處理沒有記憶能力。舉個例子來說就是比如客戶請求獲得網頁之後關閉瀏覽器,然後再次啟動瀏覽器,登入該**,但是伺服器並不知道客戶關閉了一次瀏覽器。

http 就是一種無狀態的協議,他對使用者的操作沒有記憶能力。可能大多數使用者不相信,他可能覺得每次輸入使用者名稱和密碼登陸乙個**後,下次登陸就不再重新輸入使用者名稱和密碼了。這其實不是 http 做的事情,起作用的是乙個叫做 小甜餅(cookie) 的機制。它能夠讓瀏覽器具有記憶能力。

http的主要特點和工作流程。

http特點:

1.支援客戶/伺服器模式。(c/s模式)

3.靈活:http允許傳輸任意型別的資料物件。正在傳輸的型別由content-type加以標記。

4.無連線:無連線的含義是限制每次連線只處理乙個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。

5.無狀態:http協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連線傳送的資料量增大。另一方面,在伺服器不需要先前資訊時它的應答就較快。

http工作流程:

第一步:建立tcp/ip連線,客戶端與伺服器通過socket三次握手進行連線。

第二步:客戶端向服務端發起http請求(例如:post/login.html http/1.1)。

第三步:客戶端傳送請求頭資訊,請求內容,最後會傳送一空白行,標示客戶端請求完畢。

第四步:伺服器做出應答,表示對於客戶端請求的應答,例如:http/1.1 200 ok。

第五步:伺服器向客戶端傳送應答頭資訊。

第六步:伺服器向客戶端傳送請求頭資訊後,也會傳送一空白行,標示應答頭資訊傳送完畢,接著就以content-type要求的資料格式傳送資料給客戶端。

第七步:服務端關閉tcp連線,如果伺服器或者客戶端增connection:keep-alive就表示客戶端與伺服器端繼續儲存連線,在下次請求時可以繼續使用這次的連線。

https特點:

https是http協議的修改,他加密資料並確保其機密性。其配置可保護使用者在於**互動時免於竊取個人資訊和計費資料。

1、優點

相比於http,https可以提供更加優質保密的資訊,保證了使用者資料的安全性,此外https同時也一定程度上保護了服務端,使用惡意攻擊和偽裝資料的成本大大提高。

2、缺點

缺點也同樣很明顯,第一https的技術門檻較高,多數個人或者私人**難以支撐,ca機構頒發的證書都是需要年費的,此外對接https協議也需要額外的技術支援;其二,目前來說大多數**並不關心資料的安全性和保密性,其https最大的優點對它來說並不適用;其三,https加重了服務端的負擔,相比於http其需要更多的資源來支撐,同時也降低了使用者的訪問速度;第四,目前來說http**仍然大規模使用,在瀏覽器側也沒有特別大的差別,很多使用者不關心的話根本不感知。

https工作流程:

第一步:客戶使用https的url訪問web伺服器,要求與web伺服器建立ssl連線。

第三步:客戶端的瀏覽器與web伺服器開始協商ssl連線的安全等級,也就是資訊加密的等級。

第五步:web伺服器利用自己的私鑰解密出會話金鑰。

第六步:web伺服器利用會話金鑰加密與客戶端之間的通訊。

區別

面向連線vs無連線

tcp建立乙個連線需要3次握手ip資料報,斷開連線需要4次握手。另外斷開連線時發起方可能進入time_wait狀態長達數分鐘(視系統設定,windows一般為120秒),在此狀態下連線(埠)無法被釋放。

udp不需要建立連線,可以直接發起。

可靠vs不可靠

tcp利用握手、ack和重傳機制,udp沒有。

tcp利用seq序列號對包進行排序,udp沒有。

面向位元組流vs面向報文

面向報文

面向報文的傳輸方式是應用層交給udp多長的報文,udp就照樣傳送,即一次傳送乙個報文。因此,應用程式必須選擇合適大小的報文。若報文太長,則ip層需要分片。udp對應用層交下來的報文,既不合併,也不拆分,而是保留這些報文的邊界。這也就是說,應用層交給udp多長的報文,udp就照樣傳送,即一次傳送乙個報文。(乙個upd的最大報文長度2^16-1-20-8,20是ip報文頭,8是udp報文頭)

面向位元組流

面向位元組流的話,雖然應用程式和tcp的互動是一次乙個資料塊(大小不等),但tcp把應用程式看成是一連串的無結構的位元組流。tcp有乙個緩衝,當應用程式傳送的資料塊太長,tcp就可以把它劃分短一些再傳送。如果應用程式一次只傳送乙個位元組,tcp也可以等待積累有足夠多的位元組後再構成報文段傳送出去。

tcp有流量控制,udp沒有

tcp的頭部比20bytes,udp8byres

tcp應用場景:

效率要求相對低,但對準確性要求相對高的場景。因為傳輸中需要對資料確認、重發、排序等操作,相比之下效率沒有udp高。舉幾個例子:檔案傳輸(準確高要求高、但是速度可以相對慢)、接受郵件、遠端登入。

udp應用場景:

TCP UDP 協議 HTTP協議

http 是用於www瀏覽的乙個協議。tcp 是機器之間建立連線用的到的乙個協議。http是超文字傳輸協議,是客戶端瀏覽器或其他程式與web伺服器之間的應用層通訊協議。在internet上的web伺服器上存放的都是超文字資訊,客戶機需要通過http協議傳輸所要訪問的超文字資訊。http包含命令和傳輸...

TCP UDP 協議 HTTP協議

2010 02 08 16 33 3166人閱讀收藏 舉報tcp 網路web服務 internet 手機windows 1.tcp udp 面向連線的tcp 面向連線 就是在正式通訊前必須要與對方建立起連線。比如你給別人打 必須等線路接通了 對方拿起話筒才能相互通話。圖1 tcp transmiss...

傳輸層協議(TCP UDP協議)

tcp和udp都是 tcp ip協議族的傳輸層協議tcp將若干個位元組構成乙個分組,叫報文段 tcp報文段封裝在ip資料報中 tcp建立連線的過程稱為三次握手 女孩想了想認真的問男孩子 你真的要和我在一起嗎?你真的喜歡我嗎 男孩肯定的回答 我是認真的,在一起吧 還有一種情況 男孩在表白女孩後,女孩確...