網路編程簡介:django
什麼是網絡編程:編程
網絡一般指的是計算機中的互聯網,是由多臺計算機經過網線或其餘媒介相互鏈接組成的,flask
編寫基於網絡的應用程序的過程稱之爲網絡編程瀏覽器
那麼爲何要學習網絡編程:服務器
咱們已經知道計算機,由操做系統,應用程序組成,有了這三個元素,就能夠在本身的電腦上運行一些應用程序了,好比玩玩紙牌,掃掃雷什麼的,只能玩單機的遊戲微信
若是想要與其餘計算機一塊兒玩,就必需要讓你的計算機和其餘計算機可以互相傳遞數據網絡
學習網絡編程就是要學習利用網絡來與另外一臺計算機相互傳輸數據,開發出支持網絡通信的應用程序,這樣就能夠足不出戶也能夠知天下事架構
軟件開發架構:tcp
C/S架構:學習
學習網絡編程就是要經過網絡來訪問另外一臺計算機的數據,這樣必然須要至少倆臺計算機,一臺計算機上放着要分享的數據和用於分享的數據的程序,另外一臺計算機上運行訪問數據的程序,
咱們把提供數據的一方稱之爲服務器(server),把訪問數據的一方稱之爲客戶端(client)
這就是C/S架構
電腦上要看視頻就須要裝看視頻的程序.例如騰訊視頻,它就是客戶端程序,騰訊公司的機房裏運行着騰訊視頻的服務器程序,因此它也是C/S構架的程序
另外瀏覽器也能夠訪問服務器上的網頁數據,稱之爲B/S,其本質上也是C/S只不過客戶端是瀏覽器
總結:
C/S架構(client/ server)
c:客戶端
s:服務端
B/S結構(browser / server)
b:瀏覽器
s:服務器
注意:bs結構本質上也是cs結構
手機端看上去cs結構比較火,實際上bs已經崛起了,
微信支付寶都在作一件事:統一接口
服務端:24小時不間斷提供服務
客戶端:何時想體驗服務,就去找心儀的服務端尋求服務
網絡通信協議:
倆臺計算機想要通信的話,必須具有倆個基本要素
1.物理鏈接介質,包括網線,無線電,光纖等
2.通信協議
1.物理鏈接介質
好比說電話機 要打通電話則必須先接通電話線,電流才能沿着電話線到達另外一臺電話機,電話線則是物理介質
2.通信協議:
協議就是標準,你們都要遵循相同的標準才能正常交流通信
好比說倆我的要交流,必須說雙方都能理解的語言,否則你說你的語言,我說個人語言,雙方都聽不懂,人要想實現無障礙交流必須說統一的語言 >>> 英文
**計算機與計算機之間要想實現遠程通訊除了有物理鏈接介質以外還須要
有一套公共的標準/協議
OSI七層模型:
應用層
表示層
會話層
傳輸層
網絡層
數據鏈路層
物理鏈接層
爲了方便記住,而簡化了一下,變爲OSI五層模型
應用層
傳輸層
網絡層
數據鏈路層
物理鏈接層
1.物理鏈接層:
基於電信號傳輸010101001的二進制數據
2.數據鏈路層
1.規定了電信號的分組方式
2.規定了任何一臺接入互聯網的計算機都必須有一塊網卡,
每一塊網卡上面都刻有世界上獨一無二的編號
12位16進制數
前六位是廠商編號
後六位是流水線編號
咱們管這12位數叫作mac地址
注意:以上倆點合成爲‘以太網協議’
3.網絡層:
IP協議
規定了只要是接入互聯網的計算機都必須有一個IP地址
ip地址特色:點分十進制
ip地址最小:0.0.0.0
ip地址最大:255.255.255.255
ip地址目前有兩個版本:IPV4 IPV6(因爲IPV4已經不夠表示目前存在的計算機了 因此推出了IPV6版本)
IP地址是動態分配的
4.傳輸層
TCP/UDP都是基於端口工做的協議
端口(port)
計算機與計算機之間實際上是計算機上的應用程序與應用程序之間的通訊
端口:就是用來標識一臺計算機上的某個應用程序
端口號的範圍:0~65535
注意:0~1024這些都是操做系統默認使用的端口號
建議:使用8000以後的端口
MySQL默認端口:3306
Redis默認端口:6379
django默認端口:8000
flask默認端口:5000
端口號是動態分配的,好比說第一次啓動qq分配的是8989端口號,將qq關閉再次啓動端口號可能就變了
總結:
ip地址:是用來惟一標識接入互聯網的一臺計算機
port端口:用來惟一標識一臺計算機上的某個啓動的應用程序
ip+port:惟一標識接入互聯網一臺計算機上的某個啓動的引用程序
5.應用
http協議 ftp協議
數據傳輸傳輸層
TCP協議
流失協議,可靠協議
基於TCP協議通訊,必選先創建雙向通道
爲何說是可靠協議,由於tcp傳輸數據的可靠緣由在於他有反饋機制,
由於發送數據的一方必須等到接收方的響應,纔會刪除內存中的數據,
沒有響應的話則不會刪除,會每隔一段時間就發一次,一直等到有響應後纔會刪除內存中的數據
三次握手:
三次握手的過程實際上實在確認我發的你能收到,你發的我也能收到,從而保證數據傳輸的的可靠性,
連接是一個虛擬的概念,不實際存在,只要三次握手成功即表示鏈接創建成功!
TCP協議要求在發送數據後,必須接收到對方的回覆信息才能確認數據成功發送,若是一段時內沒有收到回覆信息,會自動從新發送,若是重試的次數過多則表示連接可能已經中斷!
四次揮手:
四次揮手的目的是保證雙方的數據傳輸已經所有完成,一樣是爲了保證數據的完整性
四次揮手中間的倆步是不能合併的,由於服務端須要檢測是否還有未發玩的數據
其優勢很明顯:可以保證數據傳輸是完整的
缺點:因爲每次都須要傳輸確認信息,致使傳輸效率下降
場景:多用於必須保證數據完整性的場景,例如文本信息,支付信息等!