題外話:
當然個人也是有想法的,特別是這兩天碰巧和一個三四年經驗的java開發者呆在一起,對方說.net就是拉拉控件時,我還是很嚴厲的批評了對方,用自己比對方更年長的知識,重新引導對方對.net的看法。
不知道是誰在傳播這種.net只是XX論,傳播的這個“誰 ", 一定是個新手:所以建議新手,就不要整天跑外面亂吹了,好好學知識去吧。
對於老手,在對新手進行知識傳播時,特別是剛教授新學拉控件的時候: 一定要講下.net的精深,告訴他們學的是皮毛,沒事不要亂吹自己有多厲害,做人要謙虛。
當下的情況:
現在很多開發的書,它們只講.net的原理的開發手法,所以很多人只局域在.net的書上講的開發,一開始經驗值會刷的很快,但很快就刷不上去了,更別說達100級轉職了。
同樣的新手,試問其它語言(java) 和.net有啥不同?
同樣是初級,人家比你多懂點form標簽屬性的method屬性有Get、Post等;action的屬性可以指定數據傳輸到哪個頁面,而.net的新手從控件入門的不懂。
其實,新手只要順帶多了下解html,簡單了解下基礎Http協議,基本也和同級java夠吹了(最好還是謙虛少吹)。
所以教人控件的導師們,教的時候,除了引導學生對比查看前后生成的html和aspx之外,form屬性,和網絡通訊基礎,也要特別的花精力說一下。
現在回頭來看看瀏覽器通訊那點事:
當你在瀏覽器輸入:http://www.cyqdata.com,之后發生什么事?發生的事有很多,有人說了1小部分,今天我也說一小部分,剩下的YI大部分,有待探索。。。
1:首先瀏覽器不是吃素的,它給你一條輸入框,用於輸入網址:
知識點:Winform基礎:你也可以弄個TextBox,讓用戶輸入網址。
2:瀏覽器拿你的輸入后:
首先它要看一下是不是網址,如果不是,給你顯示你哥的,或導航到自己搜索去。
如果它是域名網址,得把它變成IP,怎么換成IP?
知識點:注冊表里,有IE瀏覽器默認錯誤請求時的定位地址,自己喜歡可以去改下。
3:域名換IP的內部流程:
知識點:涉及注冊表操作(禁用IE瀏覽器緩存或開啟)、其它瀏覽器的API(下面圖為 chrome的dns緩存清除設置)
2:查找系統緩存(如果沒有就找Hosts看看有沒有)
知識點:操作系統(算了,忽略)
知識點:Hosts的基礎操作,涉及IO、系統權限、文件屬性等操作。
知識點:本機DNS配置(默認路由器自動分配),網絡基本知識(IP、子網掩碼、網關、DNS)。
這個http請求數據怎么出去?
首先要開劈端口監聽,沒端口肯定出不去,到時候還要等待回來的數據也是從這端口進來。
這端口也不會是80,因為80系統自己占了,所以隨便來個10000號以上的。
知識點:Socket通訊、TCP協議。
4:有了端口,數據也發了,這數據都怎么流通的?
知識點:winapi,路由表操作、路由表執行原理,規則、靜態和動靜區別。
知識點:winapi,操作arp,如何發送api,讓你局域網同事朋友同學斷網。
知識點:底層驅動開發,這個領域不在行。
知識點:路由器的路由表維護。。。
好,之后瀏覽器接收回來做了些什么事的小部分故事,有人講了,就不重復了。
總結:
題內話:
每當我寫完一個軟件,剛發布的時候,總有一群源碼蟲跑來要源碼,我的原則都是,先分享思想,原理,最后才是源碼,學習思想很重要。
沒事別看源碼,除非你要做的事和源碼相關的。
需要開發相關的功能時:不要先看,先F5運行,再局部調試去看碼源。
其實你好好看看我的博客,提供的源碼不計其數,每一個作品,幾乎都會搭配源碼,認真學習過的,消費為已用的,估計都月收入過萬了!!!
正如我寫秋式廣告殺手,如果不懂這些原理,不懂的分析在合適的地方的攔截處理,怎么能折騰的出來呢?
上面說的,如果你覺的有點收獲。。。 。請點點點點。。。。右邊那個。。推薦。。。。