1.2 是如何工作的?
提供的簡化技術棧在幕后進行了大量處理。 對編譯過程的重視對Web平臺來說是新事物。 圖1.4解釋了的各個部分。
圖1.4 的內部工作原理視圖。 開發和內容團隊維護基于的網站的源代碼。 該代碼由網站數據和一組模板組成。 構建器在編譯過程中獲取代碼以創建靜態網站的HTML/CSS/JS內容。 構建器還可以在編譯時調用服務并輸出充當API的JSON文檔。 該輸出被提供給CDN以在地理上進行分配。 客戶端從最近的CDN端點獲取網站。 客戶端執行可以從服務中請求其它數據的代碼。
相當一部分的萬維網由CMS管理的網站組成。 內容管理系統 (CMS) 是用于創建和管理數字內容的工具。 大多數網站中的內容與表示邏輯分開,可以由不同的人管理,這需要開發和維護與業務邏輯不同的技能集。 在基于的網站中,我們將內容存儲在標記文檔中,而不是存儲在數據庫中。 與數據庫表中的單元格不同,標記文檔允許使用常規的基于文本的編輯器查看和編輯頁面內容。 如果需要,內容作者或編輯者可以直接編輯這些文件或使用圖形CMS。 開發人員維護模板和業務邏輯以組合數據并創建網站。 這些文件可以在像Git這樣的版本控制系統中進行管理,并托管在這樣的基于云的存儲庫系統上,以管理更改。 這形成了網站的標記(M)層。
像Hugo這樣的網站構建器使用存儲在標記文件中的數據將網站編譯為HTML和CSS文件,和基于圖像的資產。 構建者可以通過API與外部和內部服務進行通信,以獲取要編譯到網站中的數據。 構建器還可以將網站內容構建成像JSON這樣的機器友好格式。 JSON文件充當標記頁面中的代碼或原生移動應用程序使用的API(稱為偽API)。
老式做法
編寫內容并將其保存在磁盤上的文件夾中,然后將其上傳到管理內容的共享主機提供商。這種開發路徑看起來很像早期網頁開發,我們過去通過FTP上傳HTML和PHP文件。 相似之處很容易看到。 這些相似之處引發了這樣一個問題:這一次有什么不同?
自從我們放棄控制完整的服務器以來,網頁技術已經成熟了很多。 現在,前端技術執行許多功能11對戰平臺圖在哪個文件夾,而這些功能在當時需要服務器代碼。 此外,共享托管平臺已將自身升級到云,你可以在其中將托管和計算擴展到互聯網規模。 即使是傳統的基于Web技術棧的服務也是云托管的。
相較那個時代的另一個重大變化是工具。 以前像這樣的工具最初是同時針對設計師和最終用戶的,讓網站變成了一個復制粘貼的腳本網絡,就連網站作者都不理解。 現代工具以幫助開發人員為目標,并有助于優化、維護和性能。 現在我們用這些工具設計網站,而不是把它們混在一起。 我們從早期的網頁工作中吸取經驗。 我們有一個更好的系統,具有足夠的能力和靈活性,可以構建任何所需的應用程序而無需做妥協。
地理分布的CDN的機器托管已編譯的網站以供使用。 距離終端用戶最近的CDN節點將該內容提供給終端用戶。 所有靜態內容都是與用戶無關的11對戰平臺圖在哪個文件夾,并且可以快速產生。 對于動態數據,可以使用代碼。 是的J層。 為網站提供了互動性和個性化。
層可以與各種服務通信以提供動態內容。 這些服務公開了構成的A層的API。 這些API封裝了傳統技術棧的應用程序服務器的剩余部分。 建議使用托管服務,如第三方擁有的服務或FaaS(功能即服務)云解決方案上托管的服務,以最大限度地減少維護。
1.1
在中,大部分邏輯應該駐留在哪里?