有段時間我面試程式設計師時,喜歡問這個問題:區域網ip有哪些ip段?由這個問題再追問nat(網路位址轉換)。
可以看出在底層和協議設計中,欄位的擴大是非常麻煩的。ip位址也有類似問題。目前廣泛使用的是ipv4,乙個ip位址4個位元組,理論上共有2^32個ip位址,接近43億。這個數量還不到人均乙個,遠遠不夠,自然也不能每個裝置乙個公網ip了,所以internet規定了ipv4位址空間的一部份供專用位址使用,這些位址永遠不會被當做公用位址來分配,區域網內部ip就是使用這些專用位址。
小問題:像華為這種公司內部區域網能用192.168.x.x段麼?
搞網路管理的同學對dns比較熟悉,程式設計師也需要了解,不管是前端還是後端。
ip位址不好記,於是就有了網域名稱。瀏覽器訪問baidu.com時,會先做一次網域名稱解析,把baidu.com這個網域名稱解析成ip位址,然後才能發出ip包。dns的詳細介紹,這篇部落格介紹挺詳細的,參見
在windows和linux下解析網域名稱前,會先從本地hosts檔案裡查詢**對映關係,如果有,就先呼叫這個ip位址對映,完成網域名稱解析。 我們在做web開發時,會用這種方式來切換開發環境、測試環境、預發布環境和正式環境。
如果你在萬網註冊了乙個個人用的網域名稱,一般會直接用萬網的dns伺服器來管理該網域名稱的解析。對於門戶**,則會自己搭建dns伺服器來管理網域名稱,例如baidu.com/qq.com。自建dns伺服器既方便管理,又能提高安全等級,防範ddos網域名稱攻擊。
如果網域名稱的訪問量比較大,可以讓網域名稱對應多個ip位址,作業系統會隨機選擇其中乙個,這是最常見的web負載均衡方式。但因為dns的變更生效時間最長可達到24~48小時(自建dns伺服器可以配置更短的生效時間),一旦某個ip的機器故障,而dns又不能立即重新整理,會讓部分使用者服務不可用。於是就有了用lvs/nginx來動態負載均衡的方式,lvs的負載均衡基於ip層,nginx則是用http層的反向**機制。
為了給使用者提供更快的訪問速度,人們發明了cdn(content delivery network,內容分發網路)。簡單的說就是,乙個網域名稱對應有多個ip,這些ip分布在全國各地,使用者訪問網域名稱時,dns伺服器根據使用者的**ip,返回乙個就近的ip給使用者,從而實現更快的訪問速度。
從上面的描述可以知道,cdn要求各節點的內容是一致的,這樣才能讓各地使用者訪問到一致的內容,所以cdn主要用於web靜態資源的分發和加速。
web效能優化方案一般會有一條動靜分離,即把靜態資源使用的網域名稱和動態指令碼的網域名稱分開,有了cdn後,一般會把靜態資源的網域名稱託管給cdn以提高更快的訪問速度和更低的成本。
主程的晉公升攻略 1 重要的引言
雖然是引言,但也很重要。團隊在任命主程時,大多會挑選經驗多技術好的程式設計師,但是好的程式設計師不代表一任命就能做好主程的工作。主程和程式設計師工作內容和職責有明顯差別,好的程式設計師需要培養,合格的主程也需要輔導才能勝任。但許多主程是沒有被輔導環境的,遇到一名好的導師不容易,往往得自我輔導,邊乾邊...
go協程之間的執行順序以及和主協程的執行順序
package main var a string func f func hello func main 輸出 不確定 可能呼叫hello函式的某一時刻列印 可能hello函式執行完成後列印 可能不列印 hello world 原因 執行go f 語句建立goroutine和hello函式是在同乙...
主資料的3個特點 4個超越和3個二八原則
主資料 master data 是具有共享性的基礎資料,可以在企業內跨越各個業務部門被重複使用的,因此通常長期存在且應用於多個系統。由於主資料是企業基準資料,資料 單 一 準確 權威,具有較高的業務價值,因此是企業執行業務操作和決策分析的資料標準。主資料具備3個主要特徵 值 主資料是所有業務處理都離...