http和tcp区别
一、基本概念
1、TCP連接
????? 手機能夠使用聯網功能是因為手機底層實現了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連接最顯著的特點是客戶端發送的每次請求都需要服務器回送響應,在請求結束后,會主動釋放連接。從建立連接到關閉連接的過程稱為“一次連接”。
??????1)在HTTP?1.0中,客戶端的每次請求都要求建立一次單獨的連接,在處理完本次請求后,就自動釋放連接。
??????2)在HTTP?1.1中則可以在一次連接中處理多個請求,并且多個請求可以重疊進行,不需要等待一個請求結束后再發送下一個請求。
??????由于HTTP在每次請求結束后都會主動釋放連接,因此HTTP連接是一種“短連接”,要保持客戶端程序的在線狀態,需要不斷地向服務器發起連接請求。通常的 做法是即時不需要獲得任何數據,客戶端也保持每隔一段固定的時間向服務器發送一次“保持連接”的請求,服務器在收到該請求后對客戶端進行回復,表明知道客 戶端“在線”。若服務器長時間無法收到客戶端的請求,則認為客戶端“下線”,若客戶端長時間無法收到服務器的回復,則認為網絡已經斷開。
二 區別
1? TCP對應于傳輸層,HTTP對應于應用層,從本質上來說,二者沒有可比性。
2? Http協議是建立在TCP協議基礎之上的,當瀏覽器需要從服務器獲取網頁數據的時候,會發出一次Http請求。Http會通過TCP建立起一個到服務器的連接通道,當本次請求需要的數據完畢后,Http會立即將TCP連接斷開,這個過程是很短的。所以Http連接是一種短連接,是一種無狀態的連接。
3? HTTP連接:http協議即超文本傳送協議,是web聯網的基礎,也是手機聯網常用的協議之一,HTTP協議是建立在TCP協議之上的一種應用。
HTTP最顯著的特點時客戶端發送的每次請求都需要服務器回送響應,在請求結束后,會主動釋放連接。
①:在HTTP1.0中,客戶端的每次請求都要求建立一次單獨的連接,在處理完本次請求后,就自動釋放連接。
②:HTTP1.1中則可以在一次連接中處理多個請求,并且多個請求可以重疊進行,不需要等待一個請求結束后再發下一個請求。
4? HTTP在每次請求結束后都會主動釋放連接,所以為了保持客戶端程序的在線狀態,需要不斷地向服務器發起連接請求。通常的做法時客戶端每隔一段時間向服務器發送一次“保持連接”的請求,服務器在收到該請求后對客戶端進行回復,表明知道客戶端在線,若服務器長時間收不到客戶端的請求,則認為下線,若客戶端長時間不收到服務器的回復,則認為網絡斷開。
?5??TCP是底層協議,定義的是數據傳輸和連接方式的規范。
HTTP是應用層協議,定義的是傳輸數據的內容的規范。
HTTP協議中的數據是利用TCP協議傳輸的,所以支持HTTP就一定支持TCP。
總結
以上是生活随笔為你收集整理的http和tcp区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 吴海燕C语言真题,基于APP的智能婴儿床
- 下一篇: java读取Excel2003和Exce