HTTP:超文本傳輸協(xié)議卓起,首先它是一個協(xié)議衫生,并且是基于TCP/IP協(xié)議基礎之上的應用層協(xié)議。TCP/IP協(xié)議是傳輸層協(xié)議细办,主要解決數據如何在網絡中傳輸橙凳,HTTP是應用層協(xié)議,主要解決如何包裝數據笑撞。HTTP協(xié)議詳細規(guī)定了瀏覽器與服務器之間相互通信的規(guī)則岛啸,是萬維網交換信息的基礎。HTTP是基于請求-響應形式并且是短連接茴肥,并且是無狀態(tài)的協(xié)議坚踩。針對其無狀態(tài)特性,在實際應用中又需要有狀態(tài)的形式瓤狐,因此一般會通過session/cookie技術來解決此問題瞬铸。
Socket:Socket不屬于協(xié)議范疇批幌,而是一個調用接口(API),Socket是對TCP/IP協(xié)議的封裝嗓节,通過調用Socket荧缘,才能使用TCP/IP協(xié)議。Socket連接是長連接赦政,理論上客戶端和服務器端一旦建立連接將不會主動斷開此連接胜宇。Socket連接屬于請求-響應形式,服務端可主動將消息推送給客戶端恢着。
總結:①HTTP是基于Socket的實現,且建立的連接為短鏈接
②Socket建立的連接是長連接,Http傳輸的數據格式是"已經規(guī)定好的"桐愉;
請求頭content-type 、content-length
響應頭
③Socket實現的數據傳輸是最原始的掰派,Socket實現的數據傳輸格式可以自定義
④ HTTP是基于tcp的,Socket可實現在Tcp\Udp協(xié)議下相互通訊的方式从诲。