WEB簡介
發表時(shí)間:2018-9-1
發布人(rén):融晨科技
浏覽次數:62
WEB
一、Web簡介
1、 簡介
- 早期的(de)web應用主要(yào / yāo)是(shì)靜态頁面的(de)浏覽,這(zhè)些靜态頁面使用HTML語言編寫,放在(zài)服務器上(shàng),用戶使用浏覽器通過HTTP協議請求服務器上(shàng)的(de)web頁面,服務器上(shàng)的(de)web服務器軟件接受到(dào)用戶發送的(de)請求後,讀取請求URI所标識的(de)資源,加上(shàng)消息包頭發送給客戶端的(de)浏覽器,浏覽器解析響應中的(de)HTML數據,向用戶呈現多姿多彩的(de)HTML頁面。
- 但是(shì)随着網絡的(de)發展,很多線下業務開始向網上(shàng)發展,基于(yú)Internet的(de)web應用也(yě)變得越來(lái)越複雜用戶所訪問的(de)資源已不(bù)僅僅局限于(yú)服務器硬盤上(shàng)存放的(de)靜态網頁,更多的(de)應用需要(yào / yāo)根據用戶的(de)請求動态生成網頁信息,複雜的(de)還需要(yào / yāo)從數據庫中提取信息,經過一定的(de)運算,生成一個(gè)頁面返回給客戶
- 如何才能實現? 利用已經實現HTTP協議的(de)服務器端軟件,這(zhè)些軟件預先給我們留出(chū)了(le/liǎo)擴展的(de)接口,我們隻需要(yào / yāo)按照一定的(de)規則提供相應的(de)擴展功能,當這(zhè)類web服務器接受到(dào)客戶端請求後,判斷請求是(shì)否是(shì)訪問我們提供的(de)擴展功能,如果是(shì),将請求交由我們編寫的(de)程序去處理,處理完成後,程序将處理結果交回web服務器軟件,web服務器軟件拿到(dào)結果後,再将結果作爲(wéi / wèi)相應信息返回給客戶端。
- 早起使用的(de)web服務器擴展機制是(shì)CGI,它允許用戶調用web服務器上(shàng)的(de)CGI程序,CGI全稱 Common Gateway Interface 公共網關接口,大(dà)多數的(de)CGI程序使用Perl來(lái)編寫,也(yě)有通過C,Python或PHP編寫,用戶通過單擊某個(gè)連接或者直接在(zài)浏覽器的(de)地(dì / de)址欄輸入URL來(lái)訪問CGI程序,web服務器接受到(dào)請求後,發現這(zhè)個(gè)請求是(shì)給CGI程序的(de),于(yú)是(shì)就(jiù)啓動并運行這(zhè)個(gè)CGI程序,對用于(yú)請求進行處理。CGI程序解析請求中的(de)CGI數據,處理數據,并且産生一個(gè)響應,這(zhè)個(gè)響應被返回給web服務器,web服務器包裝這(zhè)個(gè)響應,以(yǐ)HTTP響應的(de)形式發送給Web浏覽器。但是(shì)CGI編寫困難,對用戶請求的(de)響應時(shí)間較長以(yǐ)進程方式運行導緻性能受限制。
2、Web應用曆史
2.1、單機程序
軟件從附着于(yú)電腦硬件之(zhī)日起,就(jiù)在(zài)不(bù)斷的(de)進行着自我完善和(hé / huò)演變。從其使用模式的(de)角度出(chū)發,可以(yǐ)簡單分爲(wéi / wèi)單機程序和(hé / huò)網絡程序。發展到(dào)今時(shí)今日仍有大(dà)量的(de)不(bù)依賴網絡的(de)單機程序被我們使用,如記事本、Excel、PPT、ZIP壓縮等軟件都是(shì)大(dà)家熟知的(de)裝機必備軟件
2.2、網絡程序
當電腦越來(lái)越多的(de)參與到(dào)日常生産生活中,單機程序已經不(bù)能滿足企業的(de)需要(yào / yāo)。企業級應用要(yào / yāo)求能夠最大(dà)程度的(de)讓更多的(de)客戶端參與到(dào)協同辦公之(zhī)中,所以(yǐ)依賴于(yú)網絡的(de)程序開始大(dà)力發展起來(lái)。
2.3、主機+終端模式
最早的(de)網絡程序是(shì)基于(yú)主機+終端模式的(de),也(yě)就(jiù)是(shì)整個(gè)應用中隻有一台大(dà)型主機,各個(gè)操作地(dì / de)點都是(shì)使用一條專線與主機相連,終端不(bù)提供任何運算和(hé / huò)界面,類似于(yú)Unix形式,所有的(de)運算和(hé / huò)處理都由主機來(lái)完成。主機一般處理能力非常強大(dà),并且穩定,主要(yào / yāo)機型都是(shì)由IBM這(zhè)樣的(de)大(dà)公司提供。
圖-1 主機-終端模式
但上(shàng)述模式中,主機的(de)高昂的(de)價格以(yǐ)及擴展難、維護費用高等弊端并不(bù)是(shì)一般企業所能承受,所以(yǐ)除銀行、航空訂票、證券等大(dà)企業在(zài)使用以(yǐ)外,大(dà)多數企業開始轉投CS架構的(de)程序,即客戶端服務器架構。
2.4、C/S架構
1、說(shuō)明
CS架構的(de)發展過程經曆了(le/liǎo)兩層CS架構,三層CS架構以(yǐ)及多層CS架構的(de)演變。
兩層的(de)CS架構是(shì)由客戶端和(hé / huò)後面的(de)數據庫組成的(de)。數據庫用于(yú)存放數據,并且使用數據庫編程語言編寫業務邏輯,客戶端則使用VB、VC、Delphi這(zhè)樣的(de)可視化編程方便的(de)語言來(lái)開發客戶端的(de)輸入輸出(chū)界面。用戶通過界面向服務器發送請求,服務器發回的(de)數據則通過界面進行顯示,服務器的(de)角色就(jiù)由數據庫來(lái)充當。這(zhè)樣做的(de)好處就(jiù)是(shì)開發效率高,滿足企業需求。但是(shì)這(zhè)種架構存在(zài)着很大(dà)的(de)弊端,第一是(shì)可移植性差,如當數據庫從SQL Server更換爲(wéi / wèi)Oracle時(shí)就(jiù)必須将業務邏輯用新的(de)語言再重新編寫一遍;第二則是(shì)大(dà)型系統做不(bù)了(le/liǎo),因爲(wéi / wèi)客戶端與數據庫需要(yào / yāo)建立持續的(de)連接,而(ér)數據庫能夠支持的(de)最大(dà)連接數是(shì)有限制的(de)。所以(yǐ)在(zài)2000年這(zhè)樣的(de)架構流行之(zhī)後,慢慢的(de)就(jiù)開始向三層CS架構轉變。
三層的(de)CS架構指的(de)是(shì)客戶端+應用服務器+數據庫,即将混合在(zài)數據庫端的(de)業務邏輯從中分離出(chū)來(lái),放入到(dào)應用服務器中,數據庫隻負責數據的(de)管理、存儲及檢索。客戶端負責界面。三層之(zhī)中的(de)應用服務器其實也(yě)是(shì)程序,類似于(yú)前面講過的(de)TCP、Socket編程,任何支持TCP編程的(de)語言都可以(yǐ)作爲(wéi / wèi)應用服務器。三層CS架構的(de)工作流程。
C / S 三層架構圖
用戶通過GUI(圖形用戶界面)進行操作,然後調用客戶端的(de)通信模塊,通信模塊依據自定義協議将請求數據打包,通過網絡發送該請求,到(dào)達應用服務器時(shí),應用服務器同樣也(yě)有一個(gè)通信模塊,将收到(dào)的(de)數據包按照協議進行拆包,調用相應的(de)業務處理模塊,處理數據,其中可能需要(yào / yāo)訪問數據庫來(lái)完成數據的(de)獲取,将處理完的(de)結果再次發送給通信模塊,通信模塊将結果按照自定義協議進行打包,然後将數據包發送給客戶端的(de)通信模塊,客戶端進行拆包獲取響應數據,将結果顯示在(zài)界面上(shàng),更新界面上(shàng)的(de)數據顯示。
這(zhè)樣的(de)程序結構雖然在(zài)一定程度上(shàng)降低了(le/liǎo)對數據庫編程的(de)依賴,并且能夠适應大(dà)型的(de)應用程序,但數據通信模塊的(de)增加卻提升了(le/liǎo)開發的(de)難度以(yǐ)及整體架構的(de)複雜度。
2、優缺
優點
- 能充分發揮客戶端PC的(de)處理能力,很多工作可以(yǐ)在(zài)客戶端處理後再提交給服務器,所以(yǐ)CS客戶端響應速度快。
- 操作界面漂亮、形式多樣,可以(yǐ)充分滿足客戶自身的(de)個(gè)性化要(yào / yāo)求。
- C/S結構的(de)管理信息系統具有較強的(de)事務處理能力,能實現複雜的(de)業務流程。
- 安全性能可以(yǐ)很容易保證,C/S一般面向相對固定的(de)用戶群,程序更加注重流程,它可以(yǐ)對權限進行多層次校驗,提供了(le/liǎo)更安全的(de)存取模式,對信息安全的(de)控制能力很強。一般高度機密的(de)信息系統采用C/S結構适宜。
缺點
- 需要(yào / yāo)專門的(de)客戶端安裝程序,分布功能弱,針對點多面廣且不(bù)具備網絡條件的(de)用戶群體,不(bù)能夠實現快速部署安裝和(hé / huò)配置。
- 兼容性差,對于(yú)不(bù)同的(de)開發工具,具有較大(dà)的(de)局限性。若采用不(bù)同工具,需要(yào / yāo)重新改寫程序。開發、維護成本較高,需要(yào / yāo)具有一定專業水準的(de)技術人(rén)員才能完成,發生一次升級,則所有客戶端的(de)程序都需要(yào / yāo)改變。。
- 用戶群固定。由于(yú)程序需要(yào / yāo)安裝才可使用,因此不(bù)适合面向一些不(bù)可知的(de)用戶,所以(yǐ)适用面窄,通常用于(yú)局域網中
2.5、B/S架構
1、說(shuō)明
爲(wéi / wèi)了(le/liǎo)降低三層CS架構中與通信有關的(de)複雜度,BS架構開始成爲(wéi / wèi)了(le/liǎo)網絡程序中一大(dà)重要(yào / yāo)的(de)架構類型。
BS架構即Browser + Web Server + DB
圖-3 B/S三層架構圖
由于(yú)三層CS架構中,自定義協議提升了(le/liǎo)整體的(de)複雜度,那麽就(jiù)将自定義協議變成标準的(de)HTTP協議。于(yú)是(shì)客戶端使用HTTP協議進行數據打包拆包的(de)程序即各廠商依據标準開發的(de)浏覽器,Web服務器也(yě)是(shì)基于(yú)HTTP協議由一些廠商提供,如IIS,Apache等。這(zhè)樣基于(yú)浏覽器和(hé / huò)服務器的(de)架構中,由于(yú)協議已被限定,所以(yǐ)與通信有關的(de)數據打包拆包的(de)過程都不(bù)用我們開發人(rén)員來(lái)編寫程序,隻需要(yào / yāo)考慮将HTTP協議解析出(chū)來(lái)的(de)數據進行業務處理,以(yǐ)及将什麽樣的(de)結果提供給響應即可。也(yě)就(jiù)是(shì)開發過程中隻需要(yào / yāo)考慮7,8,9這(zhè)三個(gè)步驟即可。于(yú)是(shì)大(dà)大(dà)降低了(le/liǎo)網絡程序的(de)開發難度,所以(yǐ)這(zhè)種架構得到(dào)了(le/liǎo)大(dà)量的(de)應用。
2、優缺點
優點
- 分布性強,客戶端零維護。隻要(yào / yāo)有網絡、浏覽器,可以(yǐ)随時(shí)随地(dì / de)進行查詢、浏覽等業務處理。
- 業務擴展簡單方便,通過增加網頁即可增加服務器功能。
- 維護簡單方便,隻需要(yào / yāo)改變網頁,即可實現所有用戶的(de)同步更新。
- 開發簡單,共享性強。
缺點
- 個(gè)性化特點明顯降低,無法實現具有個(gè)性化的(de)功能要(yào / yāo)求。
- 在(zài)跨浏覽器上(shàng),BS架構不(bù)盡如人(rén)意。
- 客戶端服務器端的(de)交互是(shì)請求-響應模式,通常動态刷新頁面,響應速度明顯降低(Ajax可以(yǐ)一定程度上(shàng)解決這(zhè)個(gè)問題)。無法實現分頁顯示,給數據庫訪問造成較大(dà)的(de)壓力。
- 在(zài)速度和(hé / huò)安全性上(shàng)需要(yào / yāo)花費巨大(dà)的(de)設計成本。
- 功能弱化,難以(yǐ)實現傳統模式下的(de)特殊功能要(yào / yāo)求。
二、什麽WEB應用程序
- WEB應用程序指供浏覽器訪問的(de)程序,通常也(yě)簡稱爲(wéi / wèi)web應用。例如有x.html 、x.html…..多個(gè)web資源,這(zhè)多個(gè)web資源用于(yú)對外提供服務,此時(shí)應把這(zhè)多個(gè)web資源放在(zài)一個(gè)目錄中,以(yǐ)組成一個(gè)web應用程序
- 一個(gè)web應用由多個(gè)靜态web資源和(hé / huò)動态web資源組成,如:html、css、js文件,Jsp文件、java程序、支持jar包、配置文件等等。
- Web應用開發好後,若想供外界訪問,需要(yào / yāo)把web應用所在(zài)目錄交給web服務器管理
三、WEB應用程序的(de)開發
1、概要(yào / yāo)
Web應用程序指供浏覽器訪問的(de)程序,通常也(yě)簡稱爲(wéi / wèi)web應用
2、靜态web
定義
指web頁面中供人(rén)們浏覽的(de)數據始終是(shì)不(bù)變,例如 .htm、.html,這(zhè)些是(shì)網頁的(de)後綴,用戶直接訪問這(zhè)些文件就(jiù)能看到(dào)内容
流程示例圖
缺點
1、Web頁面中的(de)内容無法動态更新,所有的(de)用戶每時(shí)每刻看見的(de)内容和(hé / huò)最終效果都是(shì)一樣的(de)。
2、靜态WEB無法連接數據庫,無法實現和(hé / huò)用戶的(de)交互
靜态WEB想達到(dào)動态效果需要(yào / yāo)用到(dào)的(de)技術
JavaScript(常用)
JScript
ScriptEase
VBScript
3、動态web
定義
指web頁面中浏覽的(de)數據是(shì)由程序産生的(de),不(bù)同時(shí)間點,不(bù)同地(dì / de)點,不(bù)同人(rén)訪問同一個(gè)web頁面看到(dào)的(de)内容和(hé / huò)界面可能不(bù)一樣,而(ér)且動态WEB具有交互性,WEB的(de)頁面的(de)内容可以(yǐ)動态更新
流程示意圖(java爲(wéi / wèi)例)
動态WEB中,程序依然使用客戶端和(hé / huò)服務端,客戶端依然使用浏覽器(IE、FireFox等),通過網絡(Network)連接到(dào)服務器上(shàng),使用HTTP協議發起請求(Request),現在(zài)的(de)所有請求都先經過一個(gè)WEB Server Plugin(服務器插件)來(lái)處理,此插件用于(yú)區分是(shì)請求的(de)是(shì)靜态資源(.htm或者是(shì).htm)還是(shì)動态資源。
如果WEB Server Plugin發現客戶端請求的(de)是(shì)靜态資源(.htm或者是(shì).html),則将請求直接轉交給WEB服務器,之(zhī)後WEB服務器從文件系統中取出(chū)内容,發送回客戶端浏覽器進行解析執行。
如果WEB Server Plugin發現客戶端請求的(de)是(shì)動态資源(.jsp、.asp/.aspx、.php),則先将請求轉交給WEB Container(WEB容器),在(zài)WEB Container中連接數據庫,從數據庫中取出(chū)數據等一系列操作後動态拼湊頁面的(de)展示内容,拼湊頁面的(de)展示内容後,把所有的(de)展示内容交給WEB服務器,之(zhī)後通過WEB服務器将内容發送回客戶端浏覽器進行解析執行
動态web技術
- ASP
- PHP
- JSP
三、什麽是(shì)WEB 服務器
1、概念
- 一台負責提供網頁的(de)電腦,主要(yào / yāo)是(shì)各種編程語言構建而(ér)成的(de),通過HTTP協議傳給客戶端(一般是(shì)指網頁浏覽器)。
- 一個(gè)提供網頁的(de)服務器程序
- 服務器是(shì)一種被動程序:隻有當Internet上(shàng)運行在(zài)其他(tā)計算機中的(de)浏覽器發出(chū)請求時(shí),服務器才會響應
2、常見的(de)WEB服務器
Tomcat服務器
Tomcat是(shì)一個(gè)實現了(le/liǎo)JAVA EE标準的(de)最小的(de)WEB服務器,是(shì)Apache 軟件基金會的(de)Jakarta 項目中的(de)一個(gè)核心項目,由Apache、Sun 和(hé / huò)其他(tā)一些公司及個(gè)人(rén)共同開發而(ér)成。因爲(wéi / wèi)Tomcat 技術先進、性能穩定,而(ér)且開源免費,因而(ér)深受Java 愛好者的(de)喜愛并得到(dào)了(le/liǎo)部分軟件開發商的(de)認可,成爲(wéi / wèi)目前比較流行的(de)Web 應用服務器。學習JavaWeb開發一般都使用Tomcat服務器,該服務器支持全部JSP以(yǐ)及Servlet規範
Apache2服務器
Apache HTTP Server(簡稱Apache)是(shì)Apache軟件基金會的(de)一個(gè)開放源代碼的(de)網頁服務器軟件,可以(yǐ)在(zài)大(dà)多數電腦操作系統中運行,由于(yú)其跨平台和(hé / huò)安全性被廣泛使用,是(shì)最流行的(de)Web服務器軟件之(zhī)一。它快速可靠,并且可以(yǐ)通過簡單API擴充,将Python/Perl等解析器編譯到(dào)服務器中
IBM WebSphere服務器
WebSphere Application Server 是(shì)一種功能完善、開放的(de)Web應用程序服務器,是(shì)IBM公司電子(zǐ)商務計劃的(de)核心部分,它是(shì)基于(yú) Java 的(de)應用環境,用于(yú)建立、部署和(hé / huò)管理 Internet 和(hé / huò) Intranet Web 應用程序。這(zhè)一整套産品進行了(le/liǎo)擴展,以(yǐ)适應 Web應用程序服務器的(de)需要(yào / yāo),範圍從簡單到(dào)高級直到(dào)企業級
WebLogic服務器
是(shì)美商Oracle的(de)主要(yào / yāo)産品之(zhī)一,系購并得來(lái)。是(shì)商業市場上(shàng)主要(yào / yāo)的(de)Java(J2EE)應用服務器軟件之(zhī)一,是(shì)世界上(shàng)第一個(gè)成功商業化的(de)J2EE應用服務器,目前已推出(chū)到(dào)12c(12.1.1)版。而(ér)此産品也(yě)延伸出(chū)WebLogic Portal, WebLogic Integration等企業用的(de)中間件(但目前Oracle主要(yào / yāo)以(yǐ)Fusion Middleware融合中間件來(lái)取代這(zhè)些WebLogic Server之(zhī)外的(de)企業包),以(yǐ)及OEPE(Oracle Enterprise Pack for Eclipse)開發工具。
WebLogic最早由WebLogic Inc.開發,後并入BEA公司,最終BEA公司又并入Oracle公司Nginx服務器
Nginx(發音同engine x)是(shì)一個(gè) Web服務器,也(yě)可以(yǐ)用作反向代理,負載平衡器和(hé / huò) HTTP緩存。該軟件由 Igor Sysoev 創建,并于(yú)2004年首次公開發布。同名公司成立于(yú)2011年,以(yǐ)提供支持。
Nginx 是(shì)免費的(de)開源軟件,根據類似 BSD許可證的(de)條款發布。大(dà)部分 Web服務器通常使用 NGINX 作爲(wéi / wèi)負載均衡器。IIS服務器
Microsoft的(de)Web服務器産品爲(wéi / wèi)Internet Information Services (IIS),IIS 是(shì)允許在(zài)公共Intranet或Internet上(shàng)發布信息的(de)Web服務器。ⅡS是(shì)目前最流行的(de)Web服務器産品之(zhī)一,很多著名的(de)網站都是(shì)建立在(zài)ⅡS的(de)平 台上(shàng)。IIS提供了(le/liǎo)一個(gè)圖形界面的(de)管理工具,稱爲(wéi / wèi)Internet信息服務管理器,可用于(yú)監視配置和(hé / huò)控制Internet服務
Lighttpd服務器
Lighttpd是(shì)由一個(gè)德國(guó)人(rén)寫的(de)開源軟件,其目标是(shì)提供一個(gè)專門針對高性能網站,安全、快
速、兼容性好并且靈活的(de)Web Server環境。它具有内存開銷低、CPU占用率低、效能好,以(yǐ)及
模塊豐富等特點。支持FastCGI、CGI. Auth、輸出(chū)壓縮(output compress )、URL重寫及Alias
等重要(yào / yāo)功能。Lighttpd跟Nginx一樣,也(yě)是(shì)一款輕量級Web服務器,是(shì)Nginx的(de)競争對手之(zhī)一