HTTP和TCP的區別和聯絡

2021-10-11 16:36:34 字數 2591 閱讀 6427

http與tcp的區別和聯絡

相信不少初學網路開發的都想知道http與tcp連線究竟有什麼區別,希望通過自己的淺顯理解能對初學者有所幫助。

基本概念

1. tcp連線

現在的終端裝置(手機、pc)之所以能夠使用網路的原因是因為在裝置的底層實現了tcp/ip協議,可以使終端通過無線網路建立tcp連線。tcp協議可以對上層網路提供介面,使上層網路資料的傳輸建立在「無差別」的網路之上。

建立起乙個tcp連線需要經過「三次握手」:

第一次握手:客戶端傳送syn包(syn=j)到伺服器,並進入syn_send狀態,等待伺服器確認;

第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入syn_recv狀態;

第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手。

握手過程中傳送的包裡不包含資料,三次握手完畢後,客戶端與伺服器才正式開始傳送資料。理想狀態下,tcp連線一旦建立,在通訊雙方中的任何一方主動關閉連 接之前,tcp 連線都將被一直保持下去。斷開連線時伺服器和客戶端均可以主動發起斷開tcp連線的請求,斷開過程需要經過「四次握手」(過程就不細寫 了,就是伺服器和客戶端互動,最終確定斷開).

2. http連線
http協議即超文字傳送協議(hypertext transfer protocol ),是web聯網的基礎,也是終端裝置常用的協議之一,http協議是建立在tcp協議之上的一種應用。

相互關係

我一直以為http和tcp是兩種不同的,但是地位對等的協議,雖然知道tcp是傳輸層,而http是應用層,今天學習了下,知道了 http是要基於tcp連線基礎上的,簡單的說,tcp就是單純建立連線,不涉及任何我們需要請求的實際資料,簡單的傳輸。http是用來收發資料,即實際應用上來的。

從傳輸層,先說下tcp連線,我們要和服務端連線tcp連線,需要通過三次連線,包括:請求,確認,建立連線。即傳說中的「三次握手協議」。

第一次:c傳送乙個請求連線的位碼syn和乙個隨機產生的序列號給seq,然後s收到了這些資料。

第二次:s收到了這個請求連線的位碼,啊呀,有人向我發出請求了麼,那我要不要接受他的請求,得實現確認一下,於是,傳送了乙個確認碼 acn(seq+1),和syn,seq給c,然後c收到了,這個是第二次連線。

第三次:c收到了確認的碼和之前傳送的syn一比較,偶喲,對上了麼,於是他又傳送了乙個acn(seq+1)給s,s收到以後就確定建立連線,至此,tcp連線建立完成。

簡單就是:請求,確認,連線。

2.從實際上的資料應用來說http

在前面客戶端和應用伺服器建立tcp連線之後,就需要用http協議來傳送資料了,http協議簡單來說,還是請求,確認,連線。

總體就是c傳送乙個http請求給s,s收到了這個http請求,然後返回給chttp響應,然後c的中介軟體或者說瀏覽器把這些資料渲染成為了網頁,展示在使用者面前。

第一:傳送乙個http請求給s,這個請求包括請求頭和請求內容:

request header:

請求的方法是post/get,請求的url,http協議版本

請求的資料,和編碼方式

是否有cookie和cooies,是否快取等。

post和get請求方式的區別是,get把請求內容放在url後面,但是url長度有限制。而post是以表單的形勢,適合要輸入密碼之類的,因為不在url中顯示,所以比較安全。

request body:(請求體)

s收到了http請求,然後根據請求頭,返回http響應。

response header:包括了1.cookies或者sessions2.狀態嗎3.內容大小等
response body:  

- 即響應的內容,包括,js什麼的。

- 第三,c收到了以後,就由瀏覽器完成一系列的渲染,包括執行js指令碼等。

- tcp是底層通訊協議,定義的是資料傳輸和連線方式的規範

- http是應用層協議,定義的是傳輸資料的內容的規範

- http協議中的資料是利用tcp協議傳輸的,所以支援http也就一定支援tcp

- http支援的是www服務

- 而tcp/ip是協議

- 它是internet國際網際網路絡的基礎。tcp/ip是網路中使用的基本的通訊協議。

- tcp/ip實際上是一組協議,它包括上百個各種功能的協議,如:遠端登入、檔案傳輸和電子郵件等,而tcp協議和ip協議是保證資料完整傳輸的兩個基本的重要協議。通常說tcp/ip是internet協議族,而不單單是tcp和ip。

HTTP與TCP的區別和聯絡

相信不少初學應用網路程式開發的朋友都想知道http與socket連線究竟有什麼區別,希望通過自己的淺顯理解能對初學者有所幫助。一 基本概念 1 tcp連線 手機能夠使用聯網功能是因為手機底層實現了tcp ip協議,可以使手機終端通過無線網路建立tcp連線。tcp協議可以對上層網路提供介面,使上層網路...

HTTP與TCP的區別和聯絡

參考 tcp對應於傳輸層,http對應於應用層,從本質上來說,二者沒有可比性。http協議是建立在tcp協議基礎之上的,當瀏覽器需要從伺服器獲取網頁資料的時候,會發出一次http請求。http會通過tcp建立起乙個到伺服器的連線通道,當本次請求需要的資料完畢後,http會立即將tcp連線斷開,這個過...

HTTP與TCP的區別和聯絡

一 基本概念 1 tcp連線 手機能夠使用聯網功能是因為手機底層實現了tcp ip協議,可以使手機終端通過無線網路建立tcp連線。tcp協議可以對上層網路提供介面,使上層網路資料的傳輸建立在 無差別 的網路之上。建立起乙個tcp連線需要經過 三次握手 第一次握手 客戶端傳送syn包 syn j 到伺...