假設大家在瀏覽器地址欄輸入這個問題的地址
https://www.cnnds.com
HTML 與 CSS
當自己的電腦得到一個 html頁面 (圖中HTTP 響應中 body 里的內容)之后,就會對它進行解析。HTML 就是一種超文本標記語言。給大家舉一些實例看看:
- [img]圖片[/img] 用來粘貼圖片
- [url]超鏈接[/url] 用來粘貼地址
服務器返回給你的html文件,寫的是一些代碼,大概是這樣的:
PHP 就是一種常見的用來寫服務器腳本的語言,其實只要是能拿來寫大家傳輸數據的通用接口(CGI)的語言都可以用來寫服務器腳本(也就是說幾乎所有編程語言都可以寫 = =b),只是因為現成工具的豐富程度和專攻程度不一樣,所以有一些語言在寫服務器端腳本的時候會比較熱門。
為了方便,我們在寫服務器腳本的時候,通常還會用個同語言寫的 Web Framework 來處理各種細節,防御一些常見的攻擊,提供跨站認證(比如用已有的微博賬號注冊其他網站)的接口,利用cookie處理登陸狀態和用戶設置,生成網頁模版之類的。如果你用 C# 或者 Visual Basic 寫服務器腳本,就可以用 http://ASP.NET 這個框架實現這些功能,幫你省點麻煩。不過現在不少人是反過來為了一個好用的 Web Framework 去選擇它對應的服務器腳本語言的。
一個普通網站訪問的過程
簡單概括一下,對于我們普通的網站訪問,涉及到的技術就是:
- 用戶操作瀏覽器訪問,瀏覽器向服務器發出一個 HTTP 請求;
- 服務器接收到 HTTP 請求,Web Server 進行相應的初步處理,使用服務器腳本生成頁面;
- 服務器腳本(利用Web Framework)調用本地和客戶端傳來的數據,生成頁面;
- Web Server 將生成的頁面作為 HTTP 響應的 body,根據不同的處理結果生成 HTTP header,發回給客戶端;
- 客戶端(瀏覽器)接收到 HTTP 響應,通常第一個請求得到的 HTTP 響應的 body 里是 HTML 代碼,于是對 HTML 代碼開始解析;
- 解析過程中遇到引用的服務器上的資源(額外的 CSS、JS代碼,圖片、音視頻,附件等),再向 Web Server 發送請求,Web Server 找到對應的文件,發送回來;
- 瀏覽器解析 HTML 包含的內容,用得到的 CSS 代碼進行外觀上的進一步渲染,JS 代碼也可能會對外觀進行一定的處理;
- 用戶與頁面交互(點擊,懸停等等)時,JS 代碼對此作出一定的反應,添加特效與動畫;
- 交互的過程中可能需要向服務器索取或提交額外的數據(局部的刷新,類似微博的新消息通知),一般不是跳轉就是通過 JS 代碼(響應某個動作或者定時)向 Web Server 發送請求,Web Server 再用服務器腳本進行處理(生成資源or寫入數據之類的),把資源返回給客戶端,客戶端用得到的資源來實現動態效果或其他改變。
注意這只是小網站里比較常見的模型,大網站為了解決規模問題還會有很多處理,每個環節都會有一些細微的差異,中間還會使用各種各樣的工具減輕服務器的壓力,提高效率,方便日常維護~
延伸閱讀 —— 那些看花眼的名詞
為了方便調試,很多 Web Framework 會自帶一個簡單的 Web Server,或者有些 Web Server 會自帶一個簡單的 Web Framework ,實際部署到服務器上開放使用的時候為了性能或者安全等多方面的考慮,可以把內置的 Web Server 換成其他的,比如 Apache 或者 Nginx (舉個栗子,知乎用的是 Tornado 做 Framework,Server 換成了 Nginx,見知乎使用了哪些框架和開源庫?)。如果是開源的東西,還可以在遵守開源協議的前提下自己改一下再用~
因為后端不像前端已經有 HTML + CSS + JS 這樣的既定事實標準,服務器腳本與 Web Framework 的選擇很多,所以新手會聽到很多眼花繚亂的技術名詞的地方多在這里~ 舉一些栗子,早年常見的服務器端語言有:
- 開源的 PHP
- Sun 公司的 JSP 中使用的 Java
- 微軟的 ASP 中使用的 VBScript
現在在這方面的應用熱起來的語言有
- Python,對應常見的 Framework 包括知乎和Quora有用到的 Tornado(其實是自帶 Framework 的 Web Server),社區很成熟的 Django (用戶包括 Instagram、Pinterest)等
- Ruby,一般都用 Rails 這個 Framework,用戶包括 Github、早期的 Twitter 等
- 逆天的 JavaScript,有了 Node.js 這個平臺,Web Server、服務器腳本和瀏覽器腳本全都可以用 JavaScript 來寫……Node.js上最常用的 Framework是Express
- 微軟家的則跟著 http://ASP.NET 轉移到了C# 或者 Visual Basic
- Erlang,擅長大規模的并發,不少游戲公司拿來寫服務器,靠幾十個工程師支撐幾億用戶的WhatsApp也是用的這個~
幾種常見的架構包括:
- LAMP = Linux + Apache + MySQL + PHP(P還可能是Python或Perl。有時候L會改成W=Windows。),也就是服務器上的操作系統是 Linux,Web Server 用 Apache,數據庫用 MySQL,服務器腳本用 PHP,這些都是開源技術,網站起步時用起來的成本會比較低,所以是普通網站里非常常見的架構(雖然對于發展得很大的網站會遇到很多瓶頸),Facebook就是這種,淘寶也曾經是。
- J2EE,Java 世界的架構,通常是企業用的(銀行、大型公司,.etc),比較常見地還會搭配一種 UNIX 做操作系統,Apache 做 Web Server,Tomcat 轉換 JSP 到 Java 給服務器程序用(其實它也自帶 Web Server),Oracle 數據庫等等。不一定拿來建站,常常用來提供企業里的各種需要用到網絡的業務。我們學校教務系統就是用J2EE做的=。= 淘寶現在也是從LAMP轉型到了這個。關于tomcat等之前的文章也有提及環境的配置。
- http://ASP.NET,微軟家的架構,通常會搭配 Windows Server 操作系統,SQL Server 數據庫,IIS 做 Web Server。StackOverflow和京東(曾經)就是這個架構。
- 神奇的MEAN架構,MongoDB做數據庫,Express做 Web Framework,Angular 做前端的 JavaScript 框架,Node.js 用于編寫 Web Server。神奇之處在于這幾個東西的語言都是 JavaScript (MongoDB的實現不是,但與外界溝通用的語言是)。因為是比較新的架構,還有待時間的考驗,不過被很多人(尤其是靠 JavaScript 吃飯的前端程序猿們)熱切關注。
- 一般來說重點不在技術而且在乎成本的新網站比較喜歡用 LAMP,重視安全穩定和速度的企業和機構喜歡 J2EE,想省事的網站喜歡 http://ASP.NET,比較 Geek 的網站和創業公司喜歡折騰各種 Python、Ruby、Node.js世界的東西,Google 這樣現成的技術都解決不了需求的超大型網站就自己折騰解決方案。
本文標題:你知道HTML、CSS、JS、Services、PHP、ASP.NET 是什么來頭么?
網頁URL:http://m.newbst.com/news5/97755.html
成都網站建設公司_創新互聯,為您提供搜索引擎優化、用戶體驗、商城網站、網站營銷、電子商務、關鍵詞優化
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯