大剑无锋之TCP和HTTP的区别【面试推荐】
1、TCP連接
????? 手機能夠使用聯(lián)網(wǎng)功能是因為手機底層實現(xiàn)了TCP/IP協(xié)議,可以使手機終端通過無線網(wǎng)絡建立TCP連接。TCP協(xié)議可以對上層網(wǎng)絡提供接口,使上層網(wǎng)絡數(shù)據(jù)的傳輸建立在“無差別”的網(wǎng)絡之上。
??????建立起一個TCP連接需要經(jīng)過“三次握手”:
??????第一次握手:客戶端發(fā)送syn包(syn=j)到服務器,并進入SYN_SEND狀態(tài),等待服務器確認;
??????第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態(tài);
??????第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務器進入ESTABLISHED狀態(tài),完成三次握手。
??????握手過程中傳送的包里不包含數(shù)據(jù),三次握手完畢后,客戶端與服務器才正式開始傳送數(shù)據(jù)。理想狀態(tài)下,TCP連接一旦建立,在通信雙方中的任何一方主動關閉連 接之前,TCP?連接都將被一直保持下去。斷開連接時服務器和客戶端均可以主動發(fā)起斷開TCP連接的請求,斷開過程需要經(jīng)過“四次握手”(過程就不細寫 了,就是服務器和客戶端交互,最終確定斷開)
2、HTTP連接
??????HTTP協(xié)議即超文本傳送協(xié)議(Hypertext?Transfer?Protocol?),是Web聯(lián)網(wǎng)的基礎,也是手機聯(lián)網(wǎng)常用的協(xié)議之一,HTTP協(xié)議是建立在TCP協(xié)議之上的一種應用。
??????HTTP連接最顯著的特點是客戶端發(fā)送的每次請求都需要服務器回送響應,在請求結(jié)束后,會主動釋放連接。從建立連接到關閉連接的過程稱為“一次連接”。
??????1)在HTTP?1.0中,客戶端的每次請求都要求建立一次單獨的連接,在處理完本次請求后,就自動釋放連接。
??????2)在HTTP?1.1中則可以在一次連接中處理多個請求,并且多個請求可以重疊進行,不需要等待一個請求結(jié)束后再發(fā)送下一個請求。
??????由于HTTP在每次請求結(jié)束后都會主動釋放連接,因此HTTP連接是一種“短連接”,要保持客戶端程序的在線狀態(tài),需要不斷地向服務器發(fā)起連接請求。通常的 做法是即時不需要獲得任何數(shù)據(jù),客戶端也保持每隔一段固定的時間向服務器發(fā)送一次“保持連接”的請求,服務器在收到該請求后對客戶端進行回復,表明知道客 戶端“在線”。若服務器長時間無法收到客戶端的請求,則認為客戶端“下線”,若客戶端長時間無法收到服務器的回復,則認為網(wǎng)絡已經(jīng)斷開。
摘自:https://www.cnblogs.com/baizhanshi/p/8482612.html
總結(jié)
以上是生活随笔為你收集整理的大剑无锋之TCP和HTTP的区别【面试推荐】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大剑无锋之delete、drop、tru
- 下一篇: 大剑无锋之数据库的范式【面试推荐】