1. 程式人生 > >簡單介紹一下web開發中用到的一些技術

簡單介紹一下web開發中用到的一些技術

一、標準通用標記語言(SGML)

1.HTML

即超文字標記語言(HyperText Markup Language),超文字指頁面內可以包含圖片、音樂、連結甚至程式等非文字元素,如果只用HTML則只能做靜態網頁

靜態網頁:指不含資料庫、不含程式和不可互動的網頁,適用於更新較少的展示型網頁,運行於客戶端,通常以.html或.htm或.xml或.shtml為字尾。無需經過伺服器編譯便可直接載入到客戶瀏覽器上顯示出來,佔用一定的伺服器空間。可在靜態網頁中加入flash、java小程式ActiveX控制元件以及客戶端指令碼,這些都由程式設計師事先編寫好放到伺服器上。

動態網頁:動態網頁在伺服器端執行,在不同時間會根據不同使用者返回不同的網頁,與伺服器發生互動行為。以資料庫為基礎,可實現使用者的註冊、登入、使用者管理等操作。動態網頁並不是獨立存在於伺服器上的網頁檔案,只有在客戶端發出請求後才返回一個完整的網頁。字尾可以為.jsp或.php或.asp或.cgi。

ActiveX控制元件:在靜態頁面中加入可以執行在瀏覽器上的程式,是靜態的,現在的瀏覽器基本以不支援。

applet:“let”詞綴表示“小”,applet表示用Java編寫的小應用程式(JavaApplet),即靜態的,該程式可以包含在HTML頁面中,與在頁面中包含影象的方式大致相同,即<applet></appltet>一對標記。當支援Java的瀏覽器遇到這對標記時,便下載相應的小程式程式碼在本地執行,已經淘汰,取而代之JavaFX。

servlet:即server applet,applet擴充了網路瀏覽器的能力,而servlet擴充了網路伺服器的能力。servlet的功能在於互動地瀏覽和修改資料,生成動態web內容,其過程為:客戶端傳送請求到伺服器,伺服器將請求資訊傳送到servlet,servlet生成相應內容被髮送到伺服器,伺服器將響應傳送至客戶端。applet與servlet均沒有main函式。(比喻:JSP

是服務員,servlet是看完選單告知哪個廚師來做飯的前臺。)JSP顯示頁面和接收使用者的資訊,而servlet主要負責頁面和業務層的資訊互動。

CGI程式:是執行在網路伺服器上的一個程式,作用與servlet相似。但已被servlet替代,因為CGI程式每當客戶端發出一個新的請求,便要建立一個新的CGI例項,佔用了大量的記憶體資源,用於實際開發很困難。而servlet被使用者傳送的第一個請求啟用後,繼續運行於後臺等待以後的請求,每個請求將生成一個新的執行緒而不是一個完整的程序,多個客戶可以在同一個程序中同時得到服務。

css:即層疊樣式表(cascading style sheets)是用於網頁排版的標記性語言,能對網頁中的排版進行畫素級控制,主要用於對網頁中的字型、顏色、影象、背景等其他元素進行控制,是對HTML的補充。“HTML+CSS”可以實現靜態網頁。

div+css:div是HTML中的一個標籤元素,為佈局元素。div可以理解成一個矩形框,css控制這個矩形框在什麼地方。CSS3是CSS的一個標準,HTML5是HTML的一個標準。

單頁面:整個頁面就是一個靜態的不重新整理的HTML頁面,例如QQ空間中從日誌到相簿,整個頁面並沒有重新整理,而是中間的主體內容進行區域性替換。

圖靈機:圖靈機可以理解成對人們使用紙筆進行運算的抽象,分為兩個步驟,在紙上寫或擦出某個符號,下一步動作取決於當前所關注的符號和此時的思維邏輯。

圖靈完備:即Turing Completeness,判斷圖靈完備的方法就是看該語言能否模擬出圖靈機。

2.XML

即可擴充套件標記語言(Extensible Markup Language),和html相比,xml允許使用者對自己的標記語言進行定義。

3.XHTML

即可擴充套件超文字標記語言,比HTML語法更嚴格

二、前端

1.指令碼語言(scripting language)

指令碼語言又被稱為擴建的語言或者動態語言,通常以文字儲存,只有在被呼叫時才進行解釋或編譯。

2.JavaScript(js)

是一種指令碼語言,動態型別、弱型別、基於原型的語言,內建支援型別。用於嵌入HTML網頁增加動態功能,向HTML頁面提供互動功能,亦可寫成單獨的js檔案便於結構和行為的分離。最早由Netscape公司實現,因與Sun公司合作,便取名JavaScript。微軟推出了JSript,都可以統稱相容ECMASript。字尾名為.js的檔案就是JavaScript檔案。可用於多平臺多作業系統。被大多數瀏覽器支援。 動態型別:執行期才做型別檢查 靜態型別:編譯期進行資料型別檢查 弱型別:語言執行時會隱式的做資料型別轉換 強型別:語言執行時確保不會做未授意的型別轉換 基於原型的語言:如JavaScript,只有物件沒有類,是物件繼承物件,而不是類繼承類。 基於型別的語言:如Java

特性(動態性):是一種採用事件驅動的指令碼語言,不需要伺服器的支援,便可直接響應使用者的輸入。在訪問一個頁面時,用滑鼠上移下移點選都可以通過JavaScript對其進行響應。因此早期程式設計師喜歡通過JavaScript減輕伺服器的負擔,然而不安全,隨著伺服器的強壯,現在程式設計師喜歡使用在服務端的指令碼來保證安全。有些特殊功能如ajax比如依賴JavaScript在客戶端進行支援。現在JavaScript逐漸被用來編寫伺服器端程式。

3.VBSript(VBS)

basic語言起初是非結構化語言,後來經過完善成為結構化語言(Visual Basic,即VB),同時VB也是開發環境。

Microsoft Visual C++(簡稱Visual C++、MSVC、VC++或VC)為微軟公司的C++開發工具。

VBS是微軟環境下的輕量級的解釋性指令碼語言。

4.Ajax

即非同步JavaScript和XML(Asynchronous Javascript And XML),是一種能夠不重新整理整個網頁的前提下還能更新部分網頁的技術。通過後臺與伺服器進行少量資料交換,AJAX可以使網頁實現非同步更新。

5.JSON

即JS物件標記(JavaScript Object Notation),是一種輕量級資料交換格式,能夠代替XML的工作,即可以處理前端(JavaScript)和後臺(web伺服器端)之間的資料互動。特點是易於人們的讀寫習慣,易於機器的分析和執行,形式為一個以鍵值對形式表示的字串。JSON跨語言,在移動端(Android、IOS)資料都可以由JSON來傳輸。

6.boostrap

前端UI框架,詳情https://www.cnblogs.com/mbailing/p/5627792.html

7.angular.js和JQuery

前端框架庫,詳情https://www.cnblogs.com/mbailing/p/5627792.html

8.前端編輯器

Webstorm:重量級編輯器,當前段專案配置了各種的grunt,bower,angular後你會發現你很需要它。 Brackets:適合寫CSS。 Dreamweaver:“所見即所得” HBuilder:適合寫H5,相對厚重。 Sublime:相當於一個升級版的記事本,有著強大的外掛,建議安裝兩個(packagecontrol和emmet),輕量級編輯器,小巧智慧。 notepad++:外掛多

三、後臺

1.JSP(J2EE)

即Java伺服器頁面(JAVA Server Pages),是一種動態網站開發語言,有點類似於ASP技術,在傳統的HTML頁面檔案(字尾名為*.htm或*.html)中插入Java程式段(Scriptlet)和JSP標記(tag),從而形成JSP檔案,字尾名*.jsp。JSP開發的web應用是跨平臺的,可以執行在Linux或者其他作業系統下。它實現了HTML中的Java擴充套件(以<%,%>形式),jsp與servlet一樣執行在伺服器端,將一個HTML檔案返回給客戶端,因此客戶端有瀏覽器就可以瀏覽。servlet是JSP的基礎,大型的web應用開發眾需要servlet和JSP同時配合。 JSP與servlet的關係:JSP是servlet的擴充套件,在JSP之前就有servlet了。有客戶端,web伺服器(web server)和應用伺服器(application server),客戶端發出請求,web伺服器接受http請求,如果是HTML、css等靜態資源則web伺服器可以自行處理 ,如果遇到動態資源比如jsp時便將請求轉至應用伺服器中,由應用伺服器處理。應用伺服器也具有處理http請求的能力,可能沒有web伺服器那麼專業,應用伺服器同時也包含web容器。在應用伺服器中,jsp轉換成servlet,在servlet容器中檢索是否已經存在匹配的servlet例項,若沒有則由servlet容器載入並例項化這個servlet類的一個例項物件,再有servlet容器初始化並執行;若servlet容器中已存在,則直接執行。 web伺服器:代表Nginx、IIS、Apache。 “相當於前臺接待”。 應用伺服器:代表Bea WebLogic、IBM WebSphere、JBoss、Tomcat。Tomcat是Apache的擴充套件可以獨立於Apache執行。“相當於真正的價值服務者”。 servlet容器:管理servlet的生命週期,存在於應用伺服器中。 Tomcat既可以看成是servlet容器又可以看成是web容器,既可以處理靜態資源又可以處理動態的servlet。故可以使用兩個獨立的伺服器比如Nginx和WebLogic,也可以只用一個Tomcat。

2.PHP和ruby

php:超文字前處理器(hypertext preprocessor),是一種基於物件的開源指令碼語言,用於web後臺開發。 ruby:面向物件的後臺指令碼語言。 基於物件:不提供抽象、過載和繼承 面向物件:提供抽象、過載和繼承

3.NetBeans

一款用Java編寫的主要用於後臺開發的IDE。

4.Node.js

是一種JavaScript的執行環境(runtime),是目前速度最快的JavaScript引擎,使JavaScript能脫離瀏覽器執行。對Chrome V8引擎進行了封裝。使用事件驅動,非阻塞I/O模型而得以輕量而高效。

用處:是JavaScript執行環境,也就是說能在伺服器上跑JavaScript程式碼,讓JavaScript實現伺服器上的開發。一般是js程式設計師在用,屬於後端技術。

JavaScript引擎:是一種專門處理JavaScript指令碼的虛擬機器,一般會符帶在瀏覽器中。

四、ASP、ASP.NET與.NET

ASP:類似於JSP和PHP,是一種後臺開發技術。 .NET:是一個平臺,不是語言,包括執行時的環境和開發的環境。可以在.NET平臺上用不同的語言開發,例如C#,VB.NET,HTML,F#,VC++.NET。 有點類似於java。JAVA語言也是java平臺中的一個語言的名字,C#同樣是.NET平臺中一個語言的名字,即java跨平臺,.NET跨語言。java開源,.NET由微軟開發不開源。java編寫完一次後可以再Linux上或其它作業系統上執行,.NET只適用於微軟,所以java跨平臺,.NET不跨平臺ASP.NET(又稱ASP+):是基於.NET Framework的web開發平臺。一般前端用HTML+css,後端用C#。 .NET Framework:是.NET開發的軟體執行所必需的框架(framework)、執行環境。