1. 程式人生 > >TCP/IP Http 和Https之間的區別

TCP/IP Http 和Https之間的區別

一直對TCP Http 和Socket稀裡糊塗的,今天專門的查了下:
  1. TCP/IP是個協議組,它分為網路層,傳輸層和應用層,

     在網路層有IP協議、ICMP協議、ARP協議、RARP協議和BOOTP協議。
       在傳輸層中有TCP協議與UDP協議。
       在應用層有FTP、HTTP、TELNET、SMTP、DNS等協議。

  2. TCP 是傳輸層協議,主要解決資料如何在網路中傳輸的,TCP連線是長連線
    第一次握手:客戶端傳送請求包到伺服器,等待伺服器確認
    第二次握手:伺服器響應客戶端請求,同時也傳送一個迴應包給客戶端
    第三次握手:客戶端收到伺服器的迴應包後,向伺服器傳送確認包

    握手過程中傳送的包裡,不包含資料,三次握手完畢後,客戶端與服務端才正式的開始傳遞資料。
    TCP一旦連線起來,在客戶端和服務端任何一方主動關閉連線之前,TCP連線都將被一直保持下去。
    斷開連線時,伺服器和客戶端都可以主動發起斷開TCP連線的請求。


  3. HTTP(超文字傳輸協議)應用層協議,主要解決怎麼包裝資料,Http連線是短連線,它是無狀態的,瀏覽器和伺服器每進行一次http操作,就建立一次連線,但任務結束就斷開連線, HTTP是利用TCP在兩臺電腦(通常是Web伺服器和客戶端)之間傳輸資訊的協議,

  4. socket是對TCP/IP協議的封裝,Socket本身並不是協議,而是一個呼叫介面(API)。

實際上,傳輸層的TCP是基於網路層的IP協議的,而應用層的HTTP協議又是基於傳輸層的TCP協議的,而Socket本身不算是協議,就像上面所說,它只是提供了一個針對TCP或者UDP程式設計的介面,