一、互聯網基礎
關鍵字:互聯網,萬維網,HTTP,url,ip
1、互聯網與萬維網
互聯網:互聯網是線路、協議以及通過TCP/IP協議實現數據電子傳輸的硬件和軟件的集合體。Internet提供的主要服務有萬維網(WWW)、文件傳輸(FTP)、電子郵件E-mail、遠程登錄(Telnet)等。萬維網是網頁集合,是互聯網的主要部分,可以看做是在互聯網上的一種應用。
目前,圍繞互聯網發展的業務主要有兩類,分別是ISP(互聯網服務提供商)與ICP(互聯網內容提供商);前者是指向廣大用戶綜合提供互聯網接入業務、信息業務和增值業務的電信運營商(比如中國電信、移動、聯通提供的寬度服務),後者是指向廣大用戶綜合提供互聯網信息和增值業務的企業(比如:新浪、搜狐、騰訊)。
萬維網:1994年,萬維網是存儲在互聯網計算機中,超文本標記語言(HTML)組織的超文本文檔(網頁)集合,通過超鏈接實現連接。網頁瀏覽器從網頁服務器取回稱爲“文檔”或“網頁”的信息並顯示。
超文本傳輸協議(HTTP)提供了訪問超文本信息的功能,是萬維網客戶端和服務器間的應用層通信協議。
2、網址
URL:萬維網網址,任何一個信息資源都有統一的並且在網上唯一的地址。
URL格式:協議+域名+路徑+?+參數
參考文獻:https://blog.csdn.net/Hello_Fsir/article/details/88799806 url路由配置及渲染方式
Http GET請求:把參數放到url中,通過?xx=xxx
形式傳遞
在flask中,route方法默認只能使用GET請求,可以通過傳遞參數methods參數進行改變。例:
@app.route('/list/', methods=['GET', 'POST'])
在定義url規則時,一定要注意在最後加一個斜槓,如果不加斜槓,那麼在瀏覽器訪問這個url時加了斜槓,那麼就訪問不到,用戶體驗不太好;如果在url規則中加了斜槓,輸入url時加不加斜槓都可以訪問
ip地址:互聯網計算機地址
路由:又稱網關設備,是用於連接多個邏輯上分開的網絡。路由器構成了Internet的骨架。路由器通常連接兩個或多個由IP子網或點到點協議標識的邏輯端口。路由器設置了一段自動分配的IP範圍,如果上網終端向路由器請求分配IP,路由器就會選擇一個未使用的分配給上網終端。
交換機主要是用於組建局域網,而路由器則是負責讓主機連接外網。
二、家用網絡常識
1、動態ip與靜態ip
動態ip:動態指當你每一次上網時,電信會隨機分配一個IP地址。而對於大多數撥號上網的用戶,由於其上網時間和空間的離散性,爲每個用戶分配一個固定的IP地址(靜態IP)是非常不可取的,這將造成IP地址資源的極大浪費。通過Modem、ISDN、ADSL、有線寬頻、小區寬頻等方式上網的計算機,都是在每次上網的時候臨時分配一個IP地址。
靜態ip:對於一個設立了因特網服務的組織機構,由於其主機對外開放了諸如WWW、FTP 、E-mail等訪問服務,通常要對外公佈一個固定的IP地址,以方便用戶訪問。當然,數字IP不便記憶和識別,人們更習慣於通過域名來訪問主機,而域名實際上仍然需要被域名服務器(DNS )翻譯爲IP地址。例如,你的主頁地址,用戶可以方便地記憶和使用,而域名服務器會將這個域名翻譯爲101.12.123.234,這纔是你在網上的真正地址。
2、撥號上網( 貓(模電)加電話線ISP撥號)
需要用戶擁有一臺個人電腦、一個調制解調器(Modem)和一根電話線,再向本地ISP供應商申請自己的賬號,或購買上網卡,擁有自己的用戶名和密碼後,然後通過撥打ISP的接入號連接到Internet上。
具體來說家庭寬帶的撥號,是基於PPPoE的撥號模式。在家庭寬帶接入網中,PPPoE撥號的目的,是爲了鑑別用戶的身份並完成計費。哪怕是包月或者是包年的寬帶,都需要計費,這就是撥號的目的。
拓展文獻:路由器不用撥號能直接上網是爲什麼?http://ask.zol.com.cn/x/4972311.html
已經將寬帶帳號和密碼填寫進路由器,當第一次路由器通電工作,就會自動拔號連接上互聯網
拓展文獻:不懂就問,用自己的路由器撥號上網和用電信光貓撥號上網之間到底有啥區別?
區別就是,1.路由器撥號那麼貓就是個橋,路由器直接獲取 ip 上網 2.貓直接撥號那麼就是貓獲取 ip,路由器只是獲取了貓 DHCP 的 IP.貓直接撥號,你可以不用路由器,電腦插上網線連接貓,或者直接連上貓的 wifi 就可以。(電信光貓有wifi功能,但仍不支持多用戶ip動態分配吧)
3、路由模式和橋接模式
光貓在路由模式下完成了撥號(收費)和路由(連接互聯網)。它自己PPPOE撥號並做NAT,成爲一臺獨立的網關,不需要一臺機器專門來開機並設置共享上網功能來爲其他人做網關,或不需要寬帶路由器來做網關,直接與局域網交換機連接就可以共享上網了。
橋接模式:相當於交換模式。網橋工作在數據鏈路層,是連接兩個局域網的一種存儲、轉發設備,能將一個大的LAN分割爲多個網段,或將兩個以上的LAN互聯爲一個邏輯LAN,使LAN上的所有用戶都可訪問服務器。路由器工作在網絡層,根據網絡地址如IP地址進行轉發。
拓展文獻:我爲什麼要把光貓設置爲橋接模式?用路由器撥號上網有什麼好處
我解決的方法就把光貓改爲橋接模式。(不會影響IPTV)讓光貓迴歸最基本的功能:光電轉換、IPTV、座機。購買一個性能稍好的路由器,來完成最佔用資源的路由、DHCP服務、NAT、WIFI等功能。
1)適用層次不同。網橋是數據鏈路層的設備,在網絡互聯中起到數據接收、地址過濾與數據轉發的作用,用來實現多個網絡系統之間的數據交換;路由器是網絡層的設備,主要用於處理同一個局域網內的數據;
2)適用對象不同。路由模式適用於家庭、單位等小型局域網;網橋適用於網吧、學校、企業、社區等大型組網;
3)設備接口不同。橋模式設備的接口不需要設置IP地址就可以工作,路由模式設備的接口必須配置IP地址才能工作;
4、網關與DNS
網關實質上是一個網絡通向其他網絡的IP地址,網關ip即路由ip。
DNS域名系統,用於域名與 IP 地址的相互轉換。
5、網絡連接
網絡連接方式 | 網卡/網絡適配器設備 | ip | 連接方式 |
有線連接/以太網(部分) | 有線網卡 | 撥號,路由 | |
無線連接 | 無線網卡 | ||
藍牙連接 | |||
虛擬機適配器 | 虛擬網卡(vmnet1-僅主機模式,vmnet8-NAT模式) | 橋接,NAT,僅主機 |
本地連接指設備的網絡創建和鏈接,比如主機通過有線網卡創建本地連接,虛擬機通過NAT連接方式和vmnet8虛擬網卡創建本地連接。如果計算機有多個網絡適配器,則每個網絡適配器的本地連接圖標都將顯示在“網絡連接”文件夾中。如果計算機網絡適配器即網卡沒裝好或者驅動沒裝,則以太網(本地連接)圖標都將不會顯示在“網絡連接”文件夾中。
三、局域網通信
關鍵字:局域網,HTTP,url,虛擬機,NAT
1、局域網
本地使用Vmware搭建了多臺虛擬機,對於PC而言,相當於多了一塊網卡,每塊網卡都有自己的ip地址。
當虛擬機網卡使用host-only模式,那麼虛擬機的本地連接跟vmnet1網卡相連
當虛擬機網卡使用nat模式,那麼虛擬機的本地連接跟vmnet8網卡相連
虛擬機網絡設成橋接的那是跟主機的一樣都是從網絡提供商那獲得的ip,如果設成nat的那就是192.168
私網地址:劃出來專門作爲局域網內網使用的IP地址。內、外網是相對於防火牆而言的,在防火牆內部叫做內網,反之就是外網。
局域網內部網絡的所有IP地址都可使用私網地址,而這些私網地址在訪問 Internet 時會經過 NAT ( Network Address translation,網絡地址轉換)技術轉換爲公網地址再訪問 Internet。所以在公網上看不到這些私有地址。
有了私網地址,世界上所有局域網都可以用這些私有網絡地址來標識局域網絡內部的主機,從而避免了IPv4地址用盡的情況,因爲私網地址既可以由這個企業的局域網使用,又可以由那個公司的局域網使用,即私網地址可以不斷地重複使用。小型企業或家庭網絡可以選擇192.168.0.0。
A類地址 10.0.0.0~10.255.255.255 B類地址 172.16.0.0 ~172.31.255.255 C類地址 192.168.0.0~192.168.255.255
以太網:目前應用最普遍的局域網技術
2、網絡連接模式
(1)橋接模式
設成橋接的那是跟主機的一樣都是從網絡提供商那獲得的ip
(2)NAT模式
設成nat的那就是192.168
(3)Host-only模式
用vmware虛擬機首推host-only模式,將物理網卡網絡共享給一個虛擬網卡(安裝vmware時會自動安裝兩個虛擬網卡,選擇其中一個便可),這時被共享的那張虛擬網卡會自動配上IP,根據系統分配IP不同,比如win7系統自動分配給虛擬網卡的IP是192.168.137.1,這時來設置虛擬機的IP,虛擬機的IP只要設置成跟被共享的虛擬網卡的IP(192.168.137.1)同一個網段就可以了,網關設置成虛擬網卡的IP(192.168.137.1),這樣就行了,虛擬機通過虛擬網卡跟物理機相連,而且共享物理機的網絡,只要物理機能上網,虛擬機也能上網,不受物理機IP影響
四、ping 網絡診斷工具
1、配置查詢 ipconfig 或者 ipconfig/all
2、ping:包探索器,網絡連接和配置檢測,測試目的站是否可達及瞭解其有關狀態。
語法:cmd~ 百度ipv4:180.76.76.76
ping 180.76.76.76
每個主機都可能有多個 ip 地址,比如多個網卡或多 ip,127.0.0.1 是本地環回地址,專供自己訪問自己,速度快(不用經過整個協議棧),永遠都不能出現在主機外部的網絡中,所以只適合用在開發環境。
拓展閱讀:Ping命令的七種用法 https://www.sohu.com/a/309859050_1001693233
3、同網段通信
同網段和不同網段設備通信原理詳解 https://blog.csdn.net/tao546377318/article/details/50313441
五、Flask搭建HTTP通信中的一些小坑
1、服務器部署失敗
if __name__ == '__main__':
app.run()
Flask運行app.run()默認的配置是127.0.0.1:5000
127.0.0.1 是一個環回地址,並不表示“本機”。0.0.0.0纔是真正表示“本網絡中的本機”。即:
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8090)
在實際應用中,一般我們在服務端綁定端口的時候可以選擇綁定到0.0.0.0,這樣我的服務訪問方就可以通過我的多個ip地址訪問我的服務。比如我有一臺服務器,一個外網地址A,一個內網地址B,如果我綁定的端口指定了0.0.0.0,那麼通過內網地址或外網地址都可以訪問我的應用。但是如果我只綁定了內網地址,那麼通過外網地址就不能訪問。所以如果綁定0.0.0.0,也有一定安全隱患,對於只需要內網訪問的服務,可以只綁定內網地址。
查詢外網IP地址的方法:在百度搜索裏輸入IP地址,然後查詢。
內網ip又稱本機ip,外網ip又稱運行商ip。
參考文獻:127.0.0.1和0.0.0.0地址的區別 https://blog.csdn.net/lycyingO/article/details/104509316
參考文獻:內網ip和外網ip區別 https://blog.csdn.net/weixin_42724467/article/details/89147214
參考文獻:app = Flask(__name__) 是個什麼東西 https://www.cnblogs.com/chaojiyingxiong/p/9549987.html
參考文獻:Flask和@app.route() https://blog.csdn.net/fang_chuan/article/details/81874678
最後,推薦《Flask Web開發實戰:入門、進階與原理解析(李輝著 )》,需要PDF供學習使用,可以私信我。