目錄mysql
應用領域sql
植物大戰殭屍; officemongodb
1.用戶操做系統安裝客戶端;產商操做系統部署服務端數據庫
2.每一個用戶都須要獨立安裝軟件,服務端升級也要每一個用戶升級編程
應用領域瀏覽器
QQ; 大型網絡遊戲網絡
服務端(server):架構
統一管理數據庫的主機中的軟件就叫作服務端,再後來 服務端不僅是管理數據,外加處理業務邏輯.(24小時不間斷提供服務)socket
客戶端(client):學習
用戶安裝的軟件;(若是想要服務,隨時均可以去尋找服 務享受)
優勢:
軟件使用穩定,而且能夠節省網絡資源;
缺點:
1.若用戶想在贊成設備上使用使用多個軟件,必須下載多個客戶端;
2.軟件的每一次更新,客戶端也必須跟着重新下載更新.
b/s架構
browser: 瀏覽器(客戶端)
server: 服務端
應用領域
例如瀏覽器,直接輸入域名,獲得你想要的......
優勢:
以瀏覽器充當客戶端,無需用戶下載多個軟件,也無需用戶下載更新 版本
缺點:
消耗網絡資源過大,當網絡不穩定時,軟件的使用也會不穩定.
全部網絡編程的先進技術都是源於軍事,但願經過遠程獲取數據,因此出現了"網絡編程".
早期如何實現遠程通訊:
--打電話--->電話線
--純平電腦(大屁股電腦)---> 網線,有線網卡
--筆記本電腦-->有線網卡,無線網卡
實現遠程通訊的必須具有:
1.物理鏈接介質---->網卡....
2.互聯網協議
-人與人之間溝通的介質:中文,英文
-計算機之間溝通的介質:'互聯網協議"
互聯網協議又稱爲七層協議,OSI七層協議,OSI是一個世界標準組織
OSI七層協議:
--應用層
--表示層
--會話層
--傳輸層
--網絡層
--數據鏈路層
--物理鏈接層
學習由下到上:
==物理鏈接層==
基於電信號發送二進制的數據0101010111.
010: 你 you
101: 我 l
==數據鏈路層==
數據鏈路層的"以太網協議",專門處理基於電信號發送二進制的數 據
以太網協議
1.規定好電信號數據的分組方式.
2.每一臺鏈接網線的電腦都必需要有一塊"網卡"
3.網卡由不一樣廠商生產的,每塊網卡都會有世界上獨一無二12位 的編號"mac"地址;前六位:廠商號,後六位:流水號
4.交換機:可讓多臺電腦鏈接到一塊兒.
基於以太網協議發送數據:
特色:廣播,單播
弊端:廣播風暴,不能跨局域網通訊
5.互聯網:讓局域網之間進行通訊.
==網絡層==
IP地址: 用於標識惟一的一臺計算機(局域網)的地址
IP: 點分十進制
最小值: 0.0.0.0
最大值: 255.255.255.255
IPV4(瞭解):一開始用電腦的人很少,因此出現IPV4的協議版本
IPV6(瞭解):迴環地址 127.0.0.1--->localhost
==傳輸層==
TCP/UDP協議,他們都是基於端口工做的.
端口號:標識電腦上某一個軟件.
端口號範圍:0-65535
==注意==:
1.操做系統中,通常0-1024的端口都被默認使用了(0-1024)不要動
2.儘可能使用8000後的端口號:
開發中經常使用軟件的默認端口號(==重要==):
mysql: 3306
mongodb: 27017
Django: 8000
Tomcat: 8080
Flask: 5000
Redis: 6379
若想要服務端與客戶端進行通訊,必需要創建鏈接,產生雙向通道.
一條是客戶端往服務端發送消息的.
另外一條是服務端往客戶端發送消息的.
==應用層==
http
ftp
==小結==:
IP:用於惟一標識某一臺計算機的位置
port:端口用於確認計算機的一個應用軟件.
IP + port:世界上某一臺電腦的一個應用軟件
TCP協議工做原理:
TCP是一個流式協議
三次握手,四次揮手:
三次握手創建鏈接
創建雙向通道,創建好鏈接.
listen:監聽
established:確認請求創建鏈接
發送數據
write
read
客戶端王服務端發送數據,數據存放在內存中,須要服務端確認收到,數據纔會在內存中釋放掉.不然,會隔一段時間發送一次,讓服務端返回確認收到.
在一段時間內,若服務端仍是不返回確認收到,則取消發送.並釋放內存中的數據
四次揮手斷鏈接
TIME_WAIT:時間等待
什麼是socket
socket是一個模塊,能夠寫一套c/s架構的套接字.
爲何要使用socket?
socket套接字會封裝好各層協議的工做
好處:能夠節省開發成本
如何使用
import socket
==注意==:客戶端與服務端必須遵循:
一段send,另外一端recv
不能兩端同時send或recv