你知道HTML、CSS、JS、Services、PHP、ASP.NET 是什么來頭么?

2021-01-27    分類: 網站建設

假設大家在瀏覽器地址欄輸入這個問題的地址

https://www.cnnds.com


HTML 與 CSS

當自己的電腦得到一個 html頁面 (圖中HTTP 響應中 body 里的內容)之后,就會對它進行解析。HTML 就是一種超文本標記語言。給大家舉一些實例看看:

  • [img]圖片[/img] 用來粘貼圖片
  • [url]超鏈接[/url] 用來粘貼地址

服務器返回給你的html文件,寫的是一些代碼,大概是這樣的:



PHP 就是一種常見的用來寫服務器腳本的語言,其實只要是能拿來寫大家傳輸數(shù)據的通用接口(CGI)的語言都可以用來寫服務器腳本(也就是說幾乎所有編程語言都可以寫 = =b),只是因為現(xiàn)成工具的豐富程度和專攻程度不一樣,所以有一些語言在寫服務器端腳本的時候會比較熱門。

為了方便,我們在寫服務器腳本的時候,通常還會用個同語言寫的 Web Framework 來處理各種細節(jié),防御一些常見的攻擊,提供跨站認證(比如用已有的微博賬號注冊其他網站)的接口,利用cookie處理登陸狀態(tài)和用戶設置,生成網頁模版之類的。如果你用 C# 或者 Visual Basic 寫服務器腳本,就可以用 http://ASP.NET 這個框架實現(xiàn)這些功能,幫你省點麻煩。不過現(xiàn)在不少人是反過來為了一個好用的 Web Framework 去選擇它對應的服務器腳本語言的。

一個普通網站訪問的過程

簡單概括一下,對于我們普通的網站訪問,涉及到的技術就是:

  1. 用戶操作瀏覽器訪問,瀏覽器向服務器發(fā)出一個 HTTP 請求;
  2. 服務器接收到 HTTP 請求,Web Server 進行相應的初步處理,使用服務器腳本生成頁面;
  3. 服務器腳本(利用Web Framework)調用本地和客戶端傳來的數(shù)據,生成頁面;
  4. Web Server 將生成的頁面作為 HTTP 響應的 body,根據不同的處理結果生成 HTTP header,發(fā)回給客戶端;
  5. 客戶端(瀏覽器)接收到 HTTP 響應,通常第一個請求得到的 HTTP 響應的 body 里是 HTML 代碼,于是對 HTML 代碼開始解析;
  6. 解析過程中遇到引用的服務器上的資源(額外的 CSS、JS代碼,圖片、音視頻,附件等),再向 Web Server 發(fā)送請求,Web Server 找到對應的文件,發(fā)送回來;
  7. 瀏覽器解析 HTML 包含的內容,用得到的 CSS 代碼進行外觀上的進一步渲染,JS 代碼也可能會對外觀進行一定的處理;
  8. 用戶與頁面交互(點擊,懸停等等)時,JS 代碼對此作出一定的反應,添加特效與動畫;
  9. 交互的過程中可能需要向服務器索取或提交額外的數(shù)據(局部的刷新,類似微博的新消息通知),一般不是跳轉就是通過 JS 代碼(響應某個動作或者定時)向 Web Server 發(fā)送請求,Web Server 再用服務器腳本進行處理(生成資源or寫入數(shù)據之類的),把資源返回給客戶端,客戶端用得到的資源來實現(xiàn)動態(tài)效果或其他改變。

注意這只是小網站里比較常見的模型,大網站為了解決規(guī)模問題還會有很多處理,每個環(huán)節(jié)都會有一些細微的差異,中間還會使用各種各樣的工具減輕服務器的壓力,提高效率,方便日常維護~

延伸閱讀 —— 那些看花眼的名詞

為了方便調試,很多 Web Framework 會自帶一個簡單的 Web Server,或者有些 Web Server 會自帶一個簡單的 Web Framework ,實際部署到服務器上開放使用的時候為了性能或者安全等多方面的考慮,可以把內置的 Web Server 換成其他的,比如 Apache 或者 Nginx (舉個栗子,知乎用的是 Tornado 做 Framework,Server 換成了 Nginx,見知乎使用了哪些框架和開源庫?)。如果是開源的東西,還可以在遵守開源協(xié)議的前提下自己改一下再用~

因為后端不像前端已經有 HTML + CSS + JS 這樣的既定事實標準,服務器腳本與 Web Framework 的選擇很多,所以新手會聽到很多眼花繚亂的技術名詞的地方多在這里~ 舉一些栗子,早年常見的服務器端語言有:

  • 開源的 PHP
  • Sun 公司的 JSP 中使用的 Java
  • 微軟的 ASP 中使用的 VBScript

現(xiàn)在在這方面的應用熱起來的語言有

  • Python,對應常見的 Framework 包括知乎和Quora有用到的 Tornado(其實是自帶 Framework 的 Web Server),社區(qū)很成熟的 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,擅長大規(guī)模的并發(fā),不少游戲公司拿來寫服務器,靠幾十個工程師支撐幾億用戶的WhatsApp也是用的這個~

幾種常見的架構包括:

  • LAMP = Linux + Apache + MySQL + PHP(P還可能是Python或Perl。有時候L會改成W=Windows。),也就是服務器上的操作系統(tǒng)是 Linux,Web Server 用 Apache,數(shù)據庫用 MySQL,服務器腳本用 PHP,這些都是開源技術,網站起步時用起來的成本會比較低,所以是普通網站里非常常見的架構(雖然對于發(fā)展得很大的網站會遇到很多瓶頸),F(xiàn)acebook就是這種,淘寶也曾經是。
  • J2EE,Java 世界的架構,通常是企業(yè)用的(銀行、大型公司,.etc),比較常見地還會搭配一種 UNIX 做操作系統(tǒng),Apache 做 Web Server,Tomcat 轉換 JSP 到 Java 給服務器程序用(其實它也自帶 Web Server),Oracle 數(shù)據庫等等。不一定拿來建站,常常用來提供企業(yè)里的各種需要用到網絡的業(yè)務。我們學校教務系統(tǒng)就是用J2EE做的=。= 淘寶現(xiàn)在也是從LAMP轉型到了這個。關于tomcat等之前的文章也有提及環(huán)境的配置。
  • http://ASP.NET,微軟家的架構,通常會搭配 Windows Server 操作系統(tǒng),SQL Server 數(shù)據庫,IIS 做 Web Server。StackOverflow和京東(曾經)就是這個架構。
  • 神奇的MEAN架構,MongoDB做數(shù)據庫,Express做 Web Framework,Angular 做前端的 JavaScript 框架,Node.js 用于編寫 Web Server。神奇之處在于這幾個東西的語言都是 JavaScript (MongoDB的實現(xiàn)不是,但與外界溝通用的語言是)。因為是比較新的架構,還有待時間的考驗,不過被很多人(尤其是靠 JavaScript 吃飯的前端程序猿們)熱切關注。
  • 一般來說重點不在技術而且在乎成本的新網站比較喜歡用 LAMP,重視安全穩(wěn)定和速度的企業(yè)和機構喜歡 J2EE,想省事的網站喜歡 http://ASP.NET,比較 Geek 的網站和創(chuàng)業(yè)公司喜歡折騰各種 Python、Ruby、Node.js世界的東西,Google 這樣現(xiàn)成的技術都解決不了需求的超大型網站就自己折騰解決方案。

本文標題:你知道HTML、CSS、JS、Services、PHP、ASP.NET 是什么來頭么?
網頁URL:http://www.muchs.cn/news5/97755.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、用戶體驗、商城網站、網站營銷、電子商務關鍵詞優(yōu)化

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網站建設