連線->傳輸資料->關閉連線
http是無狀態的,瀏覽器和伺服器每進行一次http操作,就建立一次連線,但任務結束就中斷連線。
也可以這樣說:短連線是指socket連線後傳送後接收完資料後馬上斷開連線。
連線->傳輸資料->保持連線 -> 傳輸資料-> 。。。 ->關閉連線。
長連線指建立socket連線後不管是否使用都保持連線,但安全性較差。
http也可以建立長連線的,使用connection:keep-alive,http 1.1預設進行持久連線。http1.1和http1.0相比較而言,最大的區別就是增加了持久連線支援(貌似最新的 http1.0 可以顯示的指定 keep-alive),但還是無狀態的,或者說是不可以信任的。
http協議即超文字傳送協議(hypertexttransfer protocol ),是web聯網的基礎,也是手機聯網常用的協議之一,http協議是建立在tcp協議之上的一種應用。
http連線最顯著的特點是客戶端傳送的每次請求都需要伺服器回送響應,在請求結束後,會主動釋放連線。從建立連線到關閉連線的過程稱為「一次連線」。
1)在http 1.0中,客戶端的每次請求都要求建立一次單獨的連線,在處理完本次請求後,就自動釋放連線。
2)在http 1.1中則可以在一次連線中處理多個請求,並且多個請求可以重疊進行,不需要等待乙個請求結束後再傳送下乙個請求。
socket 是應用層與tcp/ip協議族通訊的中間軟體抽象層,它是一組介面。
套接字(socket)是通訊的基石,是支援tcp/ip協議的網路通訊的基本操作單元。它是網路通訊過程中端點的抽象表示,包含進行網路通訊必須的五種資訊:連線使用的協議,本地主機的ip位址,本地程序的協議埠,遠地主機的ip位址,遠地程序的協議埠。
應用層通過傳輸層進行資料通訊時,tcp會遇到同時為多個應用程式程序提供併發服務的問題。多個tcp連線或多個應用程式程序可能需要通過同乙個 tcp協議埠傳輸資料。為了區別不同的應用程式程序和連線,許多計算機作業系統為應用程式與tcp/ip協議互動提供了套接字(socket)介面。應用層可以和傳輸層通過socket介面,區分來自不同應用程式程序或網路連線的通訊,實現資料傳輸的併發服務。
建立 socket 連線至少需要一對套接字,其中乙個執行於客戶端,稱為clientsocket,另乙個執行於伺服器端,稱為serversocket。
套接字之間的連線過程分為三個步驟:伺服器監聽,客戶端請求,連線確認。
伺服器監聽:伺服器端套接字並不定位具體的客戶端套接字,而是處於等待連線的狀態,實時監控網路狀態,等待客戶端的連線請求。
客戶端請求:指客戶端的套接字提出連線請求,要連線的目標是伺服器端的套接字。為此,客戶端的套接字必須首先描述它要連線的伺服器的套接字,指出伺服器端套接字的位址和埠號,然後就向伺服器端套接字提出連線請求。
連線確認:當伺服器端套接字監聽到或者說接收到客戶端套接字的連線請求時,就響應客戶端套接字的請求,建立乙個新的執行緒,把伺服器端套接字的描述發給客戶端,一旦客戶端確認了此描述,雙方就正式建立連線。而伺服器端套接字繼續處於監聽狀態,繼續接收其他客戶端套接字的連線請求。
建立socket連線時,可以指定使用的傳輸層協議,socket可以支援不同的傳輸層協議(tcp或udp),當使用tcp協議進行連線時,該socket連線就是乙個tcp連線。
tcp是面向連線的、傳輸可靠(保證資料正確性且保證資料順序)、用於傳輸大量資料(流模式)、速度慢,建立連線需要開銷較多(時間,系統資源)。
tcp是一種流模式的協議,是面向連線的,也就是說,在連線持續的過程中,socket 中收到的資料都是由同一臺主機發出的(劫持什麼的不考慮),因此,知道保證資料是有序的到達就行了,至於每次讀取多少資料不關心。
tcp:面向連線、傳輸可靠(保證資料正確性,保證資料順序)、用於傳輸大量資料(流模式)、速度慢,建立連線需要開銷較多(時間,系統資源)。
udp:面向非連線、傳輸不可靠、用於傳輸少量資料(資料報模式)、速度快。
關於tcp是一種流模式的協議,udp是一種資料報模式的協議,這裡要說明一下,tcp是面向連線的,也就是說,在連線持續的過程中,socket 中收到的資料都是由同一臺主機發出的(劫持什麼的不考慮),因此,知道保證資料是有序的到達就行了,至於每次讀取多少資料自己看著辦。
而udp是無連線的協議,也就是說,只要知道接收端的ip和埠,且網路是可達的,任何主機都可以向接收端傳送資料。這時候,如果一次能讀取超過乙個報文的資料,則會亂套。比如,主機a向傳送了報文p1,主機b傳送了報文p2,如果能夠讀取超過乙個報文的資料,那麼就會將p1和p2的資料合併在了一 起,這樣的資料是沒有意義的。
Http和Socket連線區別
1 tcp連線 要想明白socket連線,先要明白tcp連線。手機能夠使用聯網功能是因為手機底層實現了tcp ip協議,可以使手機終端通過無線網路建立tcp連線。tcp協議可以對上層網路提供介面,使上層網路資料的傳輸建立在 無差別 的網路之上。建立起乙個tcp連線需要經過 三次握手 第一次握手 客戶...
Http和Socket連線區別
1 tcp連線 要想明白socket連線,先要明白tcp連線。手機能夠使用聯網功能是因為手機底層實現了tcp ip協議,可以使手機終端通過無線網路建立tcp連線。tcp協議可以對上層網路提供介面,使上層網路資料的傳輸建立在 無差別 的網路之上。建立起乙個tcp連線需要經過 三次握手 第一次握手 客戶...
http和socket之長連線和短連線區別
tcp ip tcp ip是個協議組,可分為三個層次 網路層 傳輸層和應用層。在網路層有ip協議 icmp協議 arp協議 rarp協議和bootp協議。在傳輸層中有tcp協議與udp協議。在應用層有 tcp包括ftp http telnet smtp等協議 udp包括dns tftp等協議 短連線...