Web運(yùn)作原理簡(jiǎn)單解析_第1頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、web運(yùn)作原理簡(jiǎn)單解析要理解tomcat其實(shí)首先就是要理解web的運(yùn)行原理,基本上每個(gè)人都上網(wǎng),但是既然我們自己在學(xué)習(xí)在做動(dòng)態(tài)網(wǎng)頁(yè),有沒(méi)有真正考慮過(guò)我們?cè)趻呙榫W(wǎng)頁(yè)時(shí)底層的一些基本運(yùn)行原理。當(dāng)我們輸入一個(gè)網(wǎng)址,如http:/這中間其實(shí)是你的客戶端掃瞄器與服務(wù)器端的通信過(guò)程,詳細(xì)如下:就是這樣的一個(gè)容易過(guò)程,這個(gè)過(guò)程無(wú)數(shù)書(shū)上也有,還有圖。但是,就是這個(gè)樣子的一個(gè)過(guò)程,中間就有無(wú)數(shù)值得探討的地方。我們來(lái)解析一下,從上面這個(gè)過(guò)程中分析出掃瞄器應(yīng)當(dāng)有的功能:web服務(wù)器應(yīng)當(dāng)具有的功能:http客戶程序(掃瞄器)和http服務(wù)器分離由不同的軟件開(kāi)發(fā)商提供,目前最流行的掃瞄器ie,firefox,googl

2、e chrome,apple safari等等,最常用的web服務(wù)器有iis,tomcat,weblogic,jboss等。不同的掃瞄器和web服務(wù)器都是不同的編程語(yǔ)言編寫(xiě)的,那么用c+編寫(xiě)的http客戶端掃瞄器能否與用java編寫(xiě)的web服務(wù)舉行通信呢?允許在蘋(píng)果系統(tǒng)上的safari掃瞄器能否與運(yùn)行在windows或者linux平臺(tái)上的web服務(wù)器舉行通信呢?前面說(shuō)了這么多,就是引出這一句話。為什么不同語(yǔ)言編寫(xiě),不同平臺(tái)運(yùn)行的軟件雙方能夠看懂對(duì)方的數(shù)據(jù)呢?這主要?dú)w功于http協(xié)議。http哀求格式http協(xié)議規(guī)定,http哀求由三部分組成看一個(gè)http哀求的列子:1.哀求辦法,uri和htt

3、p協(xié)議版本這三個(gè)都在http哀求的第一行,以空格分開(kāi),以上代碼中post為哀求方式,/servlet/default.jsp為uri, http/1.1為http協(xié)議版本2.哀求頭哀求頭包含許多有關(guān)客戶端環(huán)境和哀求正文的實(shí)用信息。比如包含掃瞄器類型,所用語(yǔ)言,哀求正文類型以及哀求正文長(zhǎng)度等。3.哀求正文http協(xié)議規(guī)定,哀求頭和哀求正文之間必需以空行分割(rn),這個(gè)空行很重要,它表示哀求頭已經(jīng)結(jié)束,接下來(lái)是哀求正文。在哀求正文中可以包含客戶以post方式提交的數(shù)據(jù)表單lastname=franks&firstname=michaelhttp響應(yīng)格式和哀求相像,http響應(yīng)也是

4、由3部分組成1.http協(xié)議版本,狀態(tài)代碼和描述http響應(yīng)第一行也是3個(gè)內(nèi)容,同樣以空格分隔,依次是http協(xié)議版本,狀態(tài)代碼以及對(duì)狀態(tài)代碼的描述。狀態(tài)代碼200表示服務(wù)器已經(jīng)勝利處理了客戶端發(fā)送的哀求。狀態(tài)代碼是三位整數(shù),以1,2,3,4,5開(kāi)始,詳細(xì)有哪些頻繁的狀態(tài)代碼這里不再多做描述。2.響應(yīng)頭響應(yīng)頭主要是一些描述信息,如服務(wù)器類型,正文類型和正文長(zhǎng)度等3.響應(yīng)正文響應(yīng)正文就是服務(wù)器返回的詳細(xì)數(shù)據(jù),它是掃瞄器真正哀求拜訪的信息,最頻繁的固然就是html。同樣,響應(yīng)正文和響應(yīng)頭同樣需要以空行分割分析前面說(shuō)了這么多,描述的http哀求和響應(yīng)的內(nèi)容,主要是引出下面的內(nèi)容,既然tomcat可以

5、作為web服務(wù)器,那么我們自己能不能按照http哀求和響應(yīng)搭建一個(gè)自己容易的web服務(wù)器呢?我們?cè)趩?dòng)好tomcat后,拜訪的地址如http:/:8080/index.html, 經(jīng)過(guò)分析,前面的無(wú)非就是主機(jī)ip,而8080就是tomcat監(jiān)聽(tīng)端口, index.html是我們需要拜訪的網(wǎng)址,其實(shí)也就是tomcat幫我們讀取之后,響應(yīng)給我們的內(nèi)容,這是在tomcat上存在的一個(gè)網(wǎng)頁(yè)。按照上面的分析,我們自己要建一個(gè)容易的web服務(wù)器,那就容易了,就是自己寫(xiě)一段java代碼,代替tomcat監(jiān)聽(tīng)在8080端口,然后打開(kāi)網(wǎng)頁(yè)輸入8080端口后進(jìn)入自己的代碼程序,

6、解析http哀求,然后在服務(wù)器本地讀取html文檔,最后再響應(yīng)回去不就行了么?用java套接字創(chuàng)建http服務(wù)器程序首先做好預(yù)備工作,注重囫圇測(cè)試工程的路徑是下面這樣子的,:web運(yùn)作原理容易解析這個(gè)html文件在工程中我放在了test文件夾下面,接下來(lái)上代碼html中的代碼很容易index.htmlhttpserver.java大家可以看到上面的代碼其實(shí)就是操作了一些http哀求與響應(yīng)的協(xié)議字符串而已。寫(xiě)好上面的代碼后,我們啟動(dòng)掃瞄器,輸入http:/:8080/index.html 大家會(huì)看到下面的效果:web運(yùn)作原理容易解析掃瞄器自動(dòng)幫我們輸出了index.html下面

7、的文字,這其實(shí)就是一個(gè)容易自制的http遠(yuǎn)程拜訪,但是上面的代碼就只是能按照原始的html返回內(nèi)容,不能和客戶端發(fā)生交互,那么現(xiàn)在做一個(gè)容易交互。和服務(wù)器舉行交互比如我們輸入如下網(wǎng)址:http:/:8080/servlet/helloservlet?username=yingside那么久應(yīng)當(dāng)能浮現(xiàn)下面這樣的效果web運(yùn)作原理容易解析輸入:http:/:8080/servlet/helloservlet?username=lovo就會(huì)是這樣的效果:web運(yùn)作原理容易解析其實(shí)這里我們只要對(duì)之前的代碼做一下容易的修改,讓代碼能夠分析出后面的值就行了。首先,先來(lái)看

8、一下,我們修改之后工程的路徑,由于代碼中一些路徑都是寫(xiě)死了的,為了避開(kāi)出錯(cuò),大家先根據(jù)我工程的路徑搭建就行了.web運(yùn)作原理容易解析這里把分析后面參數(shù)值的內(nèi)容特地放在了一個(gè)類中,為了讓這個(gè)類具有通用性,定義了一個(gè)接口servlet.javainit()辦法:為初始化辦法,當(dāng)httpserver創(chuàng)建了實(shí)現(xiàn)該接口的類的一個(gè)實(shí)例后,就會(huì)立刻調(diào)用該實(shí)例的init()辦法service()辦法:用于響應(yīng)http哀求,產(chǎn)生詳細(xì)的http響應(yīng)結(jié)果。helloservlet.java說(shuō)的容易點(diǎn),其實(shí)就是把解析http哀求和響應(yīng)協(xié)議字符串放在了這個(gè)helloservlet.java的類里面。最后把httpserver做一下修改,索性重新新建一個(gè)類httpserverparam.java,大家可以下去自行比較一下兩個(gè)的區(qū)分httpserverparam.java修改之后的helloserverparam的基本規(guī)律就是假如客戶端哀求的uri位于servlet子名目下,就根據(jù)serlvet來(lái)處理,否則就根據(jù)一般的靜態(tài)文件來(lái)處理。當(dāng)客戶端哀求拜訪特定的servlet時(shí),服務(wù)器端代碼先從自己的servletcache緩存中尋覓特定的servlet實(shí)例,假如存在就調(diào)用它的service()辦法;否則就先創(chuàng)建servlet實(shí)例,把它放入servletcache緩存中,再調(diào)用它的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論