一、標準通用標記語言(SGML)
1.HTML
即超文本標記語言(HyperText Markup Language),超文本指頁面內可以包含圖片、音樂、鏈接甚至程序等非文字元素,如果只用HTML 則只能做靜態(tài)網頁。
靜態(tài)網頁:指不含數據庫、不含程序和不可交互的網頁,適用于更新較少的展示型網頁,運行于客戶端,通常以 .html 或 .htm 或 .xml 或 .shtml 為后綴。無需經過服務器編譯便可直接加載到客戶瀏覽器上顯示出來,占用一定的服務器空間??稍陟o態(tài)網頁中加入 flash、 java 小程序、ActiveX 控件以及客戶端腳本,這些都由程序員事先編寫好放到服務器上。
動態(tài)網頁:動態(tài)網頁在服務器端運行,在不同時間會根據不同用戶返回不同的網頁,與服務器發(fā)生交互行為。以數據庫為基礎,可實現用戶的注冊、登錄、用戶管理等操作。動態(tài)網頁并不是獨立存在于服務器上的網頁文件,只有在客戶端發(fā)出請求后才返回一個完整的網頁。后綴可以為.jsp或.php或.asp或.cgi。
ActiveX控件:在靜態(tài)頁面中加入可以運行在瀏覽器上的程序,是靜態(tài)的,現在的瀏覽器基本以不支持。
applet:“l(fā)et”詞綴表示“小”,applet 表示用 Java 編寫的小應用程序(JavaApplet),即靜態(tài)的,該程序可以包含在 HTML 頁面中,與在頁面中包含圖像的方式大致相同,即<applet></appltet>一對標記。當支持 Java 的瀏覽器遇到這對標記時,便下載相應的小程序代碼在本地運行,已經淘汰,取而代之 JavaFX。
servlet:即 server applet,applet 擴充了網絡瀏覽器的能力,而 servlet 擴充了網絡服務器的能力。servlet 的功能在于交互地瀏覽和修改數據,生成動態(tài) web 內容,其過程為:客戶端發(fā)送請求到服務器,服務器將請求信息發(fā)送到 servlet,servlet 生成相應內容被發(fā)送到服務器,服務器將響應發(fā)送至客戶端。applet 與servlet 均沒有 main 函數。(比喻:JSP是服務員,servlet 是看完菜單告知哪個廚師來做飯的前臺。)JSP 顯示頁面和接收用戶的信息,而 servlet 主要負責頁面和業(yè)務層的信息交互。
CGI程序:是運行在網絡服務器上的一個程序,作用與 servlet 相似。但已被 servlet 替代,因為 CGI 程序每當客戶端發(fā)出一個新的請求,便要建立一個新的 CGI 實例,占用了大量的內存資源,用于實際開發(fā)很困難。而 servlet 被用戶發(fā)送的第一個請求激活后,繼續(xù)運行于后臺等待以后的請求,每個請求將生成一個新的線程而不是一個完整的進程,多個客戶可以在同一個進程中同時得到服務。
css:即層疊樣式表(cascading style sheets)是用于網頁排版的標記性語言,能對網頁中的排版進行像素級控制,主要用于對網頁中的字體、顏色、圖像、背景等其他元素進行控制,是對 HTML 的補充?!癏TML+CSS”可以實現靜態(tài)網頁。
div+css:div 是 HTML 中的一個標簽元素,為布局元素。div 可以理解成一個矩形框,css 控制這個矩形框在什么地方。CSS3 是 CSS 的一個標準,HTML5 是 HTML 的一個標準。
單頁面:整個頁面就是一個靜態(tài)的不刷新的 HTML 頁面,例如QQ空間中從日志到相冊,整個頁面并沒有刷新,而是中間的主體內容進行局部替換。
圖靈機:圖靈機可以理解成對人們使用紙筆進行運算的抽象,分為兩個步驟,在紙上寫或擦出某個符號,下一步動作取決于當前所關注的符號和此時的思維邏輯。
圖靈完備:即 Turing Completeness,判斷圖靈完備的方法就是看該語言能否模擬出圖靈機。
2.XML
即可擴展標記語言(Extensible Markup Language),和 html 相比,xml 允許用戶對自己的標記語言進行定義。
3.XHTML
即可擴展超文本標記語言,比 HTML 語法更嚴格
二、前端
1.腳本語言(scripting language)
腳本語言又被稱為擴建的語言或者動態(tài)語言,通常以文本保存,只有在被調用時才進行解釋或編譯。
2.JavaScript(js)
是一種腳本語言, 動態(tài)類型、弱類型、基于原型的語言,內置支持類型。用于 嵌入 HTML 網頁增加動態(tài)功能,向 HTML 頁面提供交互功能, 亦可寫成單獨的 js 文件便于結構和行為的分離。最早由 Netscape 公司實現,因與 Sun 公司合作,便取名 JavaScript。微軟推出了 JScript,都可以統(tǒng)稱兼容 ECMASript。后綴名為.js的文件就是 JavaScript 文件??捎糜诙嗥脚_多操作系統(tǒng)。被大多數瀏覽器支持。
動態(tài)類型:運行期才做類型檢查靜態(tài)類型:編譯期進行數據類型檢查弱類型:語言運行時會隱式的做數據類型轉換強類型:語言運行時確保不會做未授意的類型轉換基于原型的語言:如 JavaScript,只有對象沒有類,是對象繼承對象,而不是類繼承類?;陬愋偷恼Z言:如 Java
特性(動態(tài)性):是一種采用事件驅動的腳本語言,不需要服務器的支持,便可直接響應用戶的輸入。在訪問一個頁面時,用鼠標上移下移點擊都可以通過 JavaScript 對其進行響應。因此早期程序員喜歡通過 JavaScript 減輕服務器的負擔,然而不安全,隨著服務器的強壯,現在程序員喜歡使用在服務端的腳本來保證安全。有些特殊功能如 ajax 比如依賴 JavaScript 在客戶端進行支持?,F在 JavaScript 逐漸被用來編寫服務器端程序。
3.VBSript(VBS)
basic 語言起初是非結構化語言,后來經過完善成為結構化語言(Visual Basic,即VB),同時VB也是開發(fā)環(huán)境。
Microsoft Visual C++(簡稱Visual C++、MSVC、VC++或VC)為微軟公司的 C++開發(fā)工具。
VBS是微軟環(huán)境下的輕量級的解釋性腳本語言。
4.Ajax
即異步 JavaScript 和 XML(Asynchronous Javascript And XML),是一種能夠不刷新整個網頁的前提下還能更新部分網頁的技術。通過后臺與服務器進行少量數據交換,AJAX 可以使網頁實現異步更新。
5.JSON
即 JS 對象標記(JavaScript Object Notation),是一種輕量級數據交換格式,能夠代替 XML 的工作,即可以處理前端(JavaScript)和后臺(web 服務器端)之間的數據交互。特點是易于人們的讀寫習慣,易于機器的分析和運行,形式為一個以鍵值對形式表示的字符串。JSON 跨語言,在移動端(Android、IOS)數據都可以由 JSON 來傳輸。
6.boostrap
Bootstrap,來自 Twitter,是目前最受歡迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript的,它在jQuery的基礎上進行了更為個性化和人性化的完善,形成一套自己獨有的網站風格,并兼容大部分jQuery插件。
7.angular.js和JQuery
AngularJS是為了克服HTML在構建應用上的不足而設計的。AngularJS有著諸多特性,最為核心的是:MVC、模塊化、自動化雙向數據綁定、語義化標簽、依賴注入等等。HTML是一門很好的為靜態(tài)文本展示設計的聲明式語言。
jQuery 使用戶可以更加方便地處理 HTML(標準通用標記語言下的一個應用)、events、實現動畫效果,而且方便地為網站提供AJAX交互。
8.前端編輯器
Webstorm:重量級編輯器,當前段項目配置了各種的 grunt,bower,angular 后你會發(fā)現你很需要它。Brackets:適合寫 CSS。Dreamweaver:“所見即所得”HBuilder:適合寫 H5,相對厚重。Sublime:相當于一個升級版的記事本,有著強大的插件,建議安裝兩個(packagecontrol和emmet),輕量級編輯器,小巧智能。notepad++:插件多
三、后臺
1.JSP(J2EE)
即 Java 服務器頁面(JAVA Server Pages),是一種動態(tài)網站開發(fā)語言,有點類似于 ASP 技術,在傳統(tǒng)的 HTML 頁面文件(后綴名為*.htm或*.html)中插入 Java 程序段(Scriptlet)和 JSP 標記(tag),從而形成 JSP 文件,后綴名*.jsp。JSP 開發(fā)的 web 應用是跨平臺的,可以運行在 Linux 或者其他操作系統(tǒng)下。它實現了 HTML 中的 Java 擴展(以<%,%>形式),jsp 與 servlet 一樣運行在服務器端,將一個 HTML 文件返回給客戶端,因此客戶端有瀏覽器就可以瀏覽。servlet 是 JSP 的基礎,大型的 web 應用開發(fā)眾需要 servlet 和 JSP 同時配合。JSP 與 servlet 的關系:JSP 是 servlet 的擴展,在 JSP 之前就有 servlet 了。有客戶端, web服務器(web server)和應用服務器(application server),客戶端發(fā)出請求,web 服務器接受 http 請求,如果是 HTML、css 等靜態(tài)資源則 web 服務器可以自行處理 ,如果遇到動態(tài)資源比如 jsp 時便將請求轉至應用服務器中,由應用服務器處理。應用服務器也具有處理http 請求的能力,可能沒有 web 服務器那么專業(yè), 應用服務器同時也包含 web 容器。在應用服務器中,jsp 轉換成 servlet,在 servlet 容器中檢索是否已經存在匹配的 servlet 實例,若沒有則由 servlet 容器加載并實例化這個 servlet 類的一個實例對象,再有servlet 容器初始化并運行;若 servlet 容器中已存在,則直接運行。
web服務器:代表Nginx、IIS、Apache。 “相當于前臺接待”。
應用服務器:代表Bea WebLogic、IBM WebSphere、JBoss、Tomcat。Tomcat是Apache的擴展可以獨立于Apache運行?!跋喈斢谡嬲膬r值服務者”。
servlet容器:管理 servlet 的生命周期,存在于應用服務器中。Tomcat 既可以看成是 servlet 容器又可以看成是 web 容器,既可以處理靜態(tài)資源又可以處理動態(tài)的 servlet。 故可以使用兩個獨立的服務器比如 Nginx 和 WebLogic,也可以只用一個 Tomcat。
2.PHP和ruby
php:超文本預處理器(hypertext preprocessor),是一種 基于對象的開源腳本語言,用于 web 后臺開發(fā)。
ruby: 面向對象的后臺腳本語言?;趯ο螅翰惶峁┏橄?、重載和繼承面向對象:提供抽象、重載和繼承
3.NetBeans
一款 用Java 編寫的主要用于后臺開發(fā)的 IDE。
4.Node.js
是一種 JavaScript 的運行環(huán)境(runtime),是目前速度最快的 JavaScript 引擎,使 JavaScript 能脫離瀏覽器運行。對 Chrome V8 引擎進行了封裝。使用事件驅動,非阻塞 I/O 模型而得以輕量而高效。
用處:是 JavaScript 運行環(huán)境,也就是說能在服務器上跑 JavaScript 代碼,讓 JavaScript 實現服務器上的開發(fā)。一般是 js 程序員在用,屬于后端技術。
JavaScript 引擎:是一種專門處理 JavaScript 腳本的虛擬機,一般會符帶在瀏覽器中。
四、ASP、ASP.NET與.NET
ASP:類似于JSP和PHP,是一種后臺開發(fā)技術。
.NET:是一個 平臺,不是語言,包括運行時的環(huán)境和開發(fā)的環(huán)境??梢栽?.NET 平臺上用不同的語言開發(fā),例如 C#,VB.NET,HTML,F#,VC++.NET。有點類似于 java。JAVA 語言也是 java 平臺中的一個語言的名字,C# 同樣是 .NET 平臺中一個語言的名字, 即 java 跨平臺,.NET 跨語言。java 開源,.NET 由微軟開發(fā)不開源。java 編寫完一次后可以再 Linux 上或其它操作系統(tǒng)上運行,.NET 只適用于微軟,所以 java 跨平臺,.NET 不跨平臺。
ASP.NET(又稱ASP+):是基于 .NET Framework 的 web 開發(fā) 平臺。一般前端用 HTML+css,后端用 C#。.NET Framework:是 .NET 開發(fā)的軟件運行所必需的框架(framework)、運行環(huán)境。