HTTP vs TCP/IP
TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)協議屬于傳輸層協議。其中TCP提供IP環境下的數據可靠傳輸,它提供的服務包括數據流傳送、可靠性、有效流控、全雙工操作和多路復用。通過面向連接、端到端和可靠的數據包發送。通俗說,它是事前為所發送的數據開辟出連接好的通道,然后再進行數據發送;而UDP則不為IP提供可靠性、流控或過失恢復功能。1般來講,TCP對應的是可靠性要求高的利用,而UDP對應的則是可靠性要求低、傳輸經濟的利用。TCP支持的利用協議主要有:Telnet、FTP、SMTP等;UDP支持的利用層協議主要有:NFS(網絡文件系統)、SNMP(簡單網絡管理協議)、DNS(主域名稱系統)、TFTP(通用文件傳輸協議)等。
TPC/IP協議是傳輸層協議,主要解決數據如何在網絡中傳輸,而HTTP是利用層協議,主要解決如何包裝數據。關于TCP/IP和HTTP協議的關系,網絡有1段比較容易理解的介紹:“我們在傳輸數據時,可以只使用(傳輸層)TCP/IP協議,但是那樣的話,如果沒有利用層,便沒法辨認數據內容,如果想要使傳輸的數據成心義,則必須使用到利用層協議,利用層協議有很多,比如HTTP、FTP、TELNET等,也能夠自己定義利用層協議。WEB使用HTTP協議作利用層協議,以封裝HTTP
文本信息,然后使用TCP/IP做傳輸層協議將它發到網絡上。”
HTTP vs Socket
HTTP:超文本傳輸協議,首先它是1個協議,并且是基于TCP/IP協議基礎之上的利用層協議。TCP/IP協議是傳輸層協議,主要解決數據如何在網絡中傳輸,HTTP是利用層協議,主要解決如何包裝數據。HTTP協議詳細規定了閱讀器與服務器之間相互通訊的規則,是萬維網交換信息的基礎。HTTP是基于要求-響應情勢并且是短連接,并且是無狀態的協議。針對其無狀態特性,在實際利用中又需要有狀態的情勢,因此1般會通過session/cookie技術來解決此問題。
Socket:Socket不屬于協議范疇,而是1個調用接口(API),Socket是對TCP/IP協議的封裝,通過調用Socket,才能使用TCP/IP協議。Socket連接是長連接,理論上客戶端和服務器端1旦建立連接將不會主動斷開此連接。Socket連接屬于要求-響應情勢,服務端可主動將消息推送給客戶端。