客戶端:能向伺服器傳送資訊,提出請求。
伺服器:能接受客戶端發來的請求,並能夠傳送資料給客戶端以做出回應。
1、客戶端與伺服器是怎樣進行通訊的?
1)通訊首先需要進行通訊的實體
2)然後是通訊的媒介
例如電纜或者光纜,也可能是介於某個頻譜範圍內看不見的無線電波
3)最關鍵的是通訊協議(http和socket協議))
1、 套接字(socket)概念
套接字是通訊的基石,是支援tcp/ip協議的網路通訊的基本單元,包含進行網路通訊必須的5種資訊:連線使用的協議,本地主機的ip位址,本地程序的協議埠,遠地主機的ip位址,遠地程序的協議埠。
應用層通過傳輸層進行資料通訊的時候,tcp會遇到同時為多個應用程式程序提供併發服務的問題。多個tcp連線或者多個應用程式程序可能需要同乙個tcp協議埠傳輸資料。為了區別不同的應用程式的程序和連線,計算機系統就為應用程式與tcp/ip協議互動提供了套接字介面(socket)。
2、建立socket連線
建立socket連線至少需要一堆套接字,乙個執行在客戶端,稱為clientsocket,另乙個執行在伺服器端,稱為severclient
套接字的連線分為三個步驟:伺服器監聽,客戶端請求,連線確認
建立socket連線時,可以通過使用的傳輸層協議,socket可以支援不同的傳輸層協議(tcp和udp),當使用tcp協議進行連線時,該socket連線就是乙個tcp連線
1)應用層:網路服務於終端使用者的乙個介面
協議有:http,tftp,smtp,snmp,dns,https,pop3,dhcp
2)表示層:資料的表示,安全,壓縮(在5層模型裡已經合併到了應用層)
格式:ascii,jpeg,加密格式等
3)會話層:建立,管理,終止回話(在5層模型裡已經合併到了應用層)
對應主機程序,指本地機與遠端主機正在進行的對話
4)傳輸層
定義傳輸資料的協議埠號,以及流程和差錯校驗
協議有:tcp,udp,資料報一旦離開網絡卡就進入到網路傳輸層
協議:icmp igmp,(ipv4,ipv6)
1)tcp/ip 是供已經連線到網際網路的計算機進行通訊的通訊協議
2)tcp/ip 指的是傳輸控制協議與網際協議
3)定義了電子裝置如計算機怎麼連入網際網路,以及之間怎麼傳輸資料。
tcp用於應用程式之間的通訊
當應用程式希望通過tcp與另乙個應用程式通訊時,他發乙個通訊請求,這個請求必須送到乙個確切的位址,在雙方「握手」之後,tcp將在兩個應用程式之間建立乙個全雙工的通訊,這個會占用兩個計算機之間的通訊線路,直到它被一方或者雙方關閉為止。
ip是無連線的
ip協議對應於網路層
ip是用於計算機之間的通訊
ip不會占用通訊線路,這樣降低了網路線路的需求,每條線可以滿足不同的計算機之間的通訊需要
http協議:對應於應用層,http協議基於tcp連線的
tcp協議:對應於傳輸層
ip協議:對應於網路層
tcp/ip 是傳輸層協議,主要解決資料如何在網路中傳輸,而http是應用層的協議,主要解決如何包裝資料
socket是對tcp協議的封裝,它是乙個呼叫介面(api),通過socket,我們才能夠使用tcp/ip
http連線:http連線就是所謂的短連線,就是客戶端向伺服器端傳送一次請求,伺服器端相應後連線就會斷掉。
socket連線:socket連線就是所謂的長連線,理論上是客戶端一旦和伺服器端建立連線就不會分開,但是受環境影響,也可能斷開,比方網路故障,其中一端down了,或者是兩者長時間沒有傳輸資料
tcp連線三次握手:
第一次握手:客戶端傳送syn包到伺服器端,等待伺服器確認
第二次握手:伺服器端收到syn包,必須確認客戶端的syn包,同時自己也傳送乙個syn包,即syn+ack,伺服器處於send-recv狀態
第三次握手:客戶端收到伺服器端的syn+ack包,向伺服器傳送確認報ack,此包傳送完畢,客戶端和伺服器端進入到established狀態,完成三次握手
客戶端與伺服器端通訊
關係圖 傳送 邏輯管理器 處理邏輯傳送指令 指令解析管理器 根據協議xml解析指令成二進位制資料 把二進位制資料傳給伺服器 接收 伺服器傳送二進位制資料到客戶端 指令解析管理器 根據協議xml解析二進位制資料 根據解析資料對映到邏輯類來處理 2 1 3 20 2,2 21 1,1,2 指令名和指令名...
客戶端跳轉與伺服器端跳轉
客戶端跳轉時用httpservletresopse物件的sendredirect函式實現,伺服器端跳轉是使用requestdispather物件的forward方法實現的。這兩者之間的區別主要體現在三個方面 1.使用伺服器端跳轉時,客戶瀏覽器的位址列並不會顯示目標位址的url,而是用客戶端跳轉時,位...
客戶端跳轉與伺服器端跳轉
客戶端跳轉時用httpservletresopse物件的sendredirect函式實現,伺服器端跳轉是使用requestdispather物件的forward方法實現的。這兩者之間的區別主要體現在三個方面 1.使用伺服器端跳轉時,客戶瀏覽器的位址列並不會顯示目標位址的url,而是用客戶端跳轉時,位...