Web程序工作原理詳解
1.Web程序工作原理
(1)Web一詞的含義
Network:【計(jì)算機(jī)】電腦網(wǎng)絡(luò),網(wǎng)
Web:【計(jì)算機(jī)】萬維網(wǎng)(WorldWideWeb),互聯(lián)網(wǎng)(Internet)
Web程序,顧名思義,即工作在Web上的程序。
(2)單機(jī)程序工作原理
單機(jī),即不連接到其他計(jì)算機(jī)的計(jì)算機(jī),不在網(wǎng)絡(luò)中。例如:兩單機(jī)A、B,只在A上安裝有程序X,若要在B上得到X的運(yùn)行結(jié)果,則必須在B上安裝一遍X,然后運(yùn)行。若B類的計(jì)算機(jī)比較多,則需要逐一安裝運(yùn)行。它們之間不能直接進(jìn)行通信和協(xié)作。如圖1所示。
(3)客戶機(jī)/服務(wù)器程序工作原理
將單機(jī)連成網(wǎng)絡(luò),如將A與B連成網(wǎng)絡(luò),則可以使它們之間提供服務(wù),如A向B提供服務(wù)。常見的服務(wù)是文件共享,F(xiàn)TP文件下載等。我們把提供(響應(yīng))服務(wù)的計(jì)算機(jī)稱作服務(wù)器(Server),接受(請(qǐng)求)服務(wù)的計(jì)算機(jī)稱作客戶機(jī)(Client),也叫工作站(Workstations)??蛻魴C(jī)/服務(wù)器程序的工作原理如圖2所示。
服務(wù)器和客戶機(jī)的角色可以轉(zhuǎn)換。一臺(tái)計(jì)算機(jī),可以對(duì)自己提供服務(wù),這時(shí)它既是服務(wù)器,也是客戶機(jī)。如,計(jì)算機(jī)A把自己的文件夾a共享,然后在網(wǎng)絡(luò)上找到A,則可以下載a,即自己對(duì)自己提供了服務(wù),自己請(qǐng)求并響應(yīng)了服務(wù)。
客戶機(jī)/服務(wù)器的這種計(jì)算機(jī)間的協(xié)作方式,稱為C/S方式,或C/S架構(gòu)。
C/S程序分為兩部分:服務(wù)器端和客戶機(jī)端,分別稱為服務(wù)器端程序(或服務(wù)程序)和客戶端程序(或客戶程序)。對(duì)于客戶端程序,對(duì)每一個(gè)客戶機(jī),也都要分別安裝,這一點(diǎn)與單機(jī)程序的分發(fā)相同,也很麻煩。但是,安裝好了客戶端程序后,就可以通過通信線路與服務(wù)器交互,或通過服務(wù)器,與其他客戶機(jī)通信。典型的例子是大家常用的聊天程序QQ,如圖3所示。
(4)瀏覽器/服務(wù)器程序工作原理
若通過客戶機(jī)中的瀏覽器(Browser),向服務(wù)器發(fā)出請(qǐng)求,接收其響應(yīng)的結(jié)果,那么,這時(shí),我們稱這樣的協(xié)作方式為B/S方式,或B/S架構(gòu),其工作原理如圖4所示:
這時(shí),客戶端程序就是瀏覽器,而瀏覽器的安裝是隨著操作系統(tǒng)的安裝完成的,不需要用戶額外安裝。對(duì)他們而言,使用B/S程序(如上網(wǎng)看新聞,收發(fā)電子郵件),可不需要安裝專門的客戶端程序,直接在瀏覽器中操作即可。這使得B/S程序的維護(hù)十分方便,因?yàn)椴挥霉芸蛻舳顺绦?,只要維護(hù)好服務(wù)器端程序即可。
(5)C/S、B/S服務(wù)器的組成
服務(wù)器,是擔(dān)負(fù)服務(wù)任務(wù)的機(jī)器。這些服務(wù)任務(wù)由一般專門的軟件來完成。一般地,把具有某種服務(wù)功能的服務(wù)器軟件及其所在的機(jī)器,都統(tǒng)稱為XX服務(wù)器(XX表示某種具體服務(wù))。這些軟件可以集中于一臺(tái)機(jī)器中(如圖5),這樣的機(jī)器可以稱為集中式服務(wù)器;也可以單獨(dú)存在于某臺(tái)機(jī)器中(如圖6),這樣的機(jī)器可以稱為獨(dú)立式服務(wù)器,多個(gè)獨(dú)立式服務(wù)器可組成服務(wù)器群或矩陣。
按照服務(wù)任務(wù),常見的幾種服務(wù)器軟件如表 1 所示。
服務(wù)器端腳本:用服務(wù)器端編程語言編寫的程序。
服務(wù)器端編程語言:只運(yùn)行在服務(wù)器端,被服務(wù)器所解釋和執(zhí)行的編程語言,如PHP語言。
(6)B/S程序工作的具體過程(如圖7)
(7)PHP程序工作的具體過程
具體過程是Apache、PHP、瀏覽器之間的協(xié)作過程:
用戶通過瀏覽器向服務(wù)器請(qǐng)求PHP文件(如在地址欄輸入:http://localhost/index.php),Apache在服務(wù)器上用戶文檔發(fā)布目錄下查找瀏覽器所請(qǐng)求的PHP文件,若找不到,則向?yàn)g覽器返回錯(cuò)誤信息,否則,將其提交給PHP解釋器解釋執(zhí)行,PHP解釋器對(duì)該P(yáng)HP文件進(jìn)行語法分析,若發(fā)現(xiàn)語法錯(cuò)誤,則經(jīng)Apache返回錯(cuò)誤信息(以瀏覽器能識(shí)別的代碼表示)到瀏覽器,否則執(zhí)行該P(yáng)HP程序(可能包含對(duì)數(shù)據(jù)庫MySQL的操作),將PHP程序執(zhí)行結(jié)果(以瀏覽器能識(shí)別的代碼表示)經(jīng)Apache返回到瀏覽器,瀏覽器對(duì)返回結(jié)果進(jìn)行解釋、執(zhí)行,執(zhí)行的結(jié)果顯示在瀏覽器窗口中。
如果瀏覽器所請(qǐng)求的文件不是PHP文件,而是HTML文件或JavaScript文件。該過程將簡(jiǎn)化:Apache在服務(wù)器上用戶文檔發(fā)布目錄下查找瀏覽器所請(qǐng)求的HTML文件或JavaScript文件,若找不到,則向?yàn)g覽器返回錯(cuò)誤信息,否則,將其返回給瀏覽器,瀏覽器對(duì)返回的結(jié)果進(jìn)行解釋、執(zhí)行,執(zhí)行的結(jié)果顯示在瀏覽器窗口中。
2.瀏覽器工作過程
(1)Web客戶端工作過程
任何應(yīng)用系統(tǒng)都必須有一個(gè)提供用戶操作的界面,即用戶界面。瀏覽器的工作,從整個(gè)B/S程序來看,是用戶與B/S程序打交道的一個(gè)界面(接口)。它的任務(wù)是:
A.收集用戶輸入的數(shù)據(jù)
B.將用戶數(shù)據(jù)發(fā)送到服務(wù)器
C.接收服務(wù)器返回的響應(yīng)
D.解釋,執(zhí)行這些代碼
可見,瀏覽器扮演的是服務(wù)器在用戶那里的一個(gè)代理(Agent)的角色。這個(gè)代理,具有收集消息,請(qǐng)求響應(yīng)和解釋服務(wù)器發(fā)回的指示的作用。
(2)Web客戶端代碼
無論是組織用于收集用戶數(shù)據(jù)的界面,還是解釋來自服務(wù)器的指示形成結(jié)果界面,都是用Web客戶端代碼實(shí)現(xiàn)的。常用的Web客戶端代碼有HTML語言、JavaScript語言、CSS、XML等語言。
3.HTML工作原理
(1)HTML簡(jiǎn)介
HTML:HyperTextMarkupLanguage,超文本標(biāo)記語言。
20世紀(jì)80年代末,在歐洲粒子物理實(shí)驗(yàn)室(CERN:theEuropeanLabloratoryforParticlePhysics)工作的TimBerners-Lee(WWW之父)通過研究發(fā)現(xiàn):人們視覺處理是以頁為基礎(chǔ)的。于是他得出一個(gè)結(jié)論:電子資料應(yīng)以頁的方式呈現(xiàn)。以此為出發(fā)點(diǎn),他使用超文本為中心的管理方式來組織網(wǎng)絡(luò)上的資料,并提出了建立存取與瀏覽網(wǎng)頁的方法:建立了超文本標(biāo)記語言;設(shè)計(jì)了超文本傳輸協(xié)議(HTTP:HypertextTransportProtocol),用于獲取超鏈接文件;使用統(tǒng)一資源定位器(URL:UniformResourceLocator)來定位網(wǎng)絡(luò)文件、站點(diǎn)或服務(wù)器。
(2)HTML工作原理
HTML本質(zhì)上不是程序語言,而是一種標(biāo)記語言。所謂標(biāo)記,在有的書上也叫標(biāo)簽,從面向?qū)ο蟮慕嵌榷裕褪菍?duì)瀏覽器對(duì)象的標(biāo)識(shí)的意思。它用來控制文字、圖片等瀏覽器的子對(duì)象在瀏覽器中的表現(xiàn),以及如何建立文件之間鏈接的標(biāo)記。這些標(biāo)記均放在文本格式的文件中。而程序與之最大的不同,就是可用來控制操作系統(tǒng)或應(yīng)用程序執(zhí)行并完成某項(xiàng)作業(yè)。超文本標(biāo)記語言的文檔應(yīng)該盡量做到,從形式上看,無論在任何操作系統(tǒng)的任何瀏覽器上打開都具有相同的效果。
(3)HTML的基本結(jié)構(gòu)
A.版本聲明,即序(Prologue)
B.頭部(Head)
C.主體(Body)
相關(guān)文章
PHP轉(zhuǎn)換Excel中日期和時(shí)間類型的處理問題
在實(shí)際應(yīng)用中PHP讀取的Excel文件的日期無法直接使用,會(huì)出現(xiàn)的一系列問題,本文給大家介紹PHP轉(zhuǎn)換Excel中日期和時(shí)間類型的處理問題,感興趣的朋友一起看看吧2023-10-10詳解PHP中strlen和mb_strlen函數(shù)的區(qū)別
在PHP中,strlen與mb_strlen是求字符串長(zhǎng)度的函數(shù),但是對(duì)于一些初學(xué)者來說,如果不看手冊(cè),也許不太清楚其中的區(qū)別2014-03-03ThinkPHP框架使用redirect實(shí)現(xiàn)頁面重定向的方法實(shí)例分析
這篇文章主要介紹了ThinkPHP框架使用redirect實(shí)現(xiàn)頁面重定向的方法,結(jié)合實(shí)例形式分析了thinkPHP中redirect進(jìn)行頁面重定向的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-04-04Kindeditor編輯器添加圖片上傳水印功能(php代碼)
這篇文章主要為大家詳細(xì)介紹了Kindeditor編輯器加圖片上傳水印功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08php中配置文件保存修改操作 如config.php文件的讀取修改等操作
有時(shí)候我們需要用php將一些配置參數(shù)寫到文件里面,方便后期讀取使用,這里就為大家分享一下具體的實(shí)現(xiàn)代碼,需要的朋友可以參考一下2021-05-05