客戶端:用戶安裝的軟件;mysql
服務端:統一管理數據庫的主機中的軟件就叫作服務端,再後來服務端不僅是管理數據,外加處理業務邏輯。sql
應用領域:mongodb
QQ數據庫
大型網絡遊戲編程
計算機發展初期用戶去取數據,直接就去主機拿,從這裏開始就分出了客戶端和服務端。瀏覽器
架構要求:服務器
應用領域:網絡
統一客戶端即默認安裝用戶電腦中的瀏覽器,訪問同種類的網站,具體業務的處理根據相應協議和標準提供通用的服務器程序,在不一樣的服務器處理。架構
實現遠程通訊必須具有:socket
1.物理鏈接介質 ---》 網卡
2.互聯網協議
互聯網協議又稱爲網絡七層協議,OSI七層協議,OSI是一個世界標準組織。
OSI
應用層: 應用層、表示層、會話層
Talent,FTP,SMTP,DNS,HTTP以及其餘應用協議
傳輸層:TCP,UDP
網絡層: IP,APP,RARP,ICMP
網絡接口:數據鏈路層、物理層
各類通訊網絡接口(以太網等)(物理網絡)
- 物理鏈接層 基於電信號發送二進制的數據0101010111。 010: 你 you 101: 我 I - 數據鏈路層 數據鏈路層的 "以太網協議",專門用於處理基於電信號發送二進制的數據。 以太網協議: 1.規定好電信號數據的分組方式。 2.每一臺鏈接網線的電腦都必需要由一塊 "網卡"。 - 網卡由不一樣廠商生產的 - 每塊網卡都會有世界上獨一無二12位的編號 "mac"地址。 - 前6位: 廠商號 - 後6位: 流水號 - 交換機: 可讓多臺電腦鏈接到一塊兒。 基於以太網協議發送數據: 特色: 廣播、單播 弊端: 廣播風暴、不能跨局域網通訊。 - 互聯網: 讓局域網之間進行通訊。 - 網絡層 IP地址: 用於標識惟一的一臺計算機(局域網)的地址。 IP: 點分十進制 最小值: 0.0.0.0 最大值: 255.255.255.255 IPV4(瞭解): 一開始用電腦的人很少,因此出現IPV4的協議版本。 IPV6(瞭解): 括號IP。 本機IP: 迴環地址 127.0.0.1 ---> localhost - 傳輸層 TCP/UDP協議,他們都是基於端口工做的。 - 端口號: 標識電腦上某個一個軟件。 - 端口號範圍: 0-65535 注意: 1.操做系統中,通常0-1024的端口都被默認使用了(0-1024不要動) 2.儘可能使用8000以後的端口號 8001 開發中經常使用軟件的默認端口號 (默寫) : mysql: 3306 mongodb: 27017 Django: 8000 Tomcat: 8080 Flask: 5000 Redis: 6379 若想服務端與客戶端進行通訊,必需要創建鏈接,產生雙向通道。 一條是客戶端往服務端發送消息的。 另外一條是服務端往客戶端發送消息的。 - 應用層 http ftp 總結: ip:用於惟一標識某一臺計算機的位置。 port: 端口用於確認計算機上的一個應用軟件。 ip + port: 世界上某一臺電腦上的一個應用軟件。
- TCP是一個流式協議 - 三次握手,四次揮手(*******): - 三次握手建鏈接: 創建雙向通道,創建好鏈接。 - listen: 監聽 - established: 確認請求創建鏈接 - 發送數據: write read 客戶端往服務端發送數據,數據存放在內存中,須要服務端確認收到,數據纔會在內存中釋放掉。 不然,會隔一段時間發送一次,讓服務端返回確認收到。 在一段時間內,若服務端仍是不返回確認收到,則取消發送。並釋放內存中的數據。 - 四次揮手斷鏈接: - TIME_WAIT: 時間等待
1.什麼是Socket? socket是一個模塊,能夠寫一套C/S架構的套接字。 2.爲何要使用Socket? socket套接字會封裝好各層協議的工做。 好處: 能夠節省開發成本。 3.如何使用 import socket 注意: 客戶端與服務端必須尊循: 一端send,另外一端recv 不一樣兩端同時send或recv