WEB技術
1.1 HTTP協議和B/S 結構
操作系統有進程子系統,使用多進程就可以充分利用硬件資源。進程中可以多個線程,每一個線程可以被CPU調度執行,這樣就可以讓程序并行的執行。這樣一臺主機就可以作為一個服務器為多個客戶端提供計算服務。
客戶端和服務端往往處在不同的物理主機上,它們分屬不同的進程,這些進程間需要通信??缰鳈C的進程間通信需要使用網絡編程。最常見的網絡編程接口是Socket。
Socket稱為套接字,本意是插座。也就是說網絡通訊需要兩端,如果一端被動的接收另一端請求以提供計算和數據的稱為服務器端,另一端往往只是發起計算或數據請求,稱為客戶端。
這種編程模式稱為Client/Server編程模式,簡稱C/S編程。開發的程序也稱為C/S程序。C/S編程往往使用傳輸層協議(TCP/UDP),較為底層,比如:QQ,360,xshell等
1990年,HTTP協議和瀏覽器誕生。在應用層使用文本跨網絡在不同進程間傳輸數據,最后在瀏覽器中將服務器端返回的HTML渲染出來。由此,誕生了網頁開發。
網頁是存儲在WEB服務器端的文本文件,瀏覽器發起HTTP請求后,到達WEB服務程序后,服務程序根據URL讀取對應的HTML文件,并封裝成HTTP響應報文返回給瀏覽器端。
起初網頁開發主要指的是HTML、CSS等文件制作,目的就是顯示文字或圖片,通過超級鏈接跳轉到另一個HTML并顯示其內容。
后來,網景公司意識到讓網頁動起來很重要,傍著SUN的Java的名氣發布了JavaScript語言,可以在瀏覽器中使用JS引擎執行的腳本語言,可以讓網頁元素動態變化,網頁動起來了。
為了讓網頁動起來,微軟使用ActiveX技術、SUN的Applet都可以在瀏覽器中執行代碼,但都有安全性問題。能不能直接把內容直接在WEB服務器端組織成HTML,然后把HTML返回給瀏覽器渲染呢?
最早出現了CGI(Common Gateway Interface)通用網關接口,通過瀏覽器中輸入URL直接映射到一個服務器端的腳本程序執行,這個腳本可以查詢數據庫并返回結果給瀏覽器端。這種將用戶請求使用程序動態生成的技術,稱為動態網頁技術。先后出現了ASP、PHP、JSP等技術,這些技術的使用不同語言編寫的程序都運行在服務器端,所以稱為WEB后端編程。有一部分程序員還是要編寫HTML、CSS、JavaScript,這些代碼運行在瀏覽器端,稱為WEB前端編程。合起來稱為Browser/Server編程,即B/S編程。
1.2 瀏覽器
1980年代,Tim Berners-Lee為CERN(歐洲核子研究中心,當時歐洲最大的互聯網節點)設計基于超文本思想的ENQUIRE項目,以促進科研人員之間的信息共享和更新。1989年3月他編寫了《信息化管理:建議》一文,并構建基于Internet的Hypertext系統,并在CERN開發了World Wide Web項目,打造了世界上第一個網站,于1991年8月6日正式上線。
Tim Berners-Lee于1990年12月29日發明了第一個瀏覽器WorldWideWeb
,還發明了HTTP協議。
1994年為了完成麻省理工學院(MIT)與歐洲粒子物理研究所(CERN)之間的協同工作,Tim創建了W3C( World Wide Web Consortium 萬維網聯盟),負責萬維網持續發展,并提出W3C的標準應該基于無專利權、無版稅
Marc Andreessen于1993年發明了馬賽克Mosaic瀏覽器。
看到了這個技術的前景,不久后他成立自己的公司——網景Netscape。1994發布了Netscape Navigator瀏覽器,席卷全球。1995年微軟發布IE,開啟第一次瀏覽器大戰,最終后來居上。
1999年網景被AOL收購,收購后不久,Netscape公開了瀏覽器代碼,并創建了Mozilla組織。Mozilla組織使用Gecko引擎重寫瀏覽器。
Mozilla組織使用Gecko引擎發布了幾款瀏覽器,最終于2004年更名為Firefox瀏覽器。
2003年5月,網景被解散。
AOL于2007年12月宣布停止支持Netscape瀏覽器。
Apple的Safari于2003發布第一個測試版。
2008年Google的Chrome瀏覽器帶著 V8 JS引擎橫空出世。2008年IE占據瀏覽器市場份額的75%,Firefox占近20%,2019 年Chrome占據市場份額近70%。
2018年12月,微軟宣布打算基于Chromium開源項目開發新版本的Edge瀏覽器。1月16日微軟正式宣布了適用于Windows和macOS的基于Chromium開源項目Microsoft Edge瀏覽器的全面上市。
瀏覽器市場份額:https://gs.statcounter.com/
瀏覽器內兩大核心:渲染引擎(解析html)和 JS引擎(解析javascript)
1.3 網頁技術
1.3.1 靜態網頁技術
早期的HTML設計之初,只能HTML,里面可以顯示文字、圖片,使用CSS來控制顏色、字體大小等。再后來引入了JavaScript就可以是網頁可以人機交互、可以讓元素動起來。但這都不是內容的動態變化。
1.3.2 動態網頁技術
網頁的內容是后端根據用戶從瀏覽器端提交的請求不同,通過后臺的程序進行執行,將運行的結果生成內容臨時拼湊生成HTML,返回到瀏覽器端,通過瀏覽器端渲染呈現。常見的有 JSP、PHP、ASP和DotNet、Nodejs等。也可以將動態資源靜態化,以加快速度
本文鏈接:http://www.thecarconnectin.com/35084.html
板凳
剛來這里,慢慢探索中。