03-tomcat服務(wù)器和http協(xié)議_第1頁
03-tomcat服務(wù)器和http協(xié)議_第2頁
03-tomcat服務(wù)器和http協(xié)議_第3頁
03-tomcat服務(wù)器和http協(xié)議_第4頁
03-tomcat服務(wù)器和http協(xié)議_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、web服務(wù)器web開發(fā)背景冃前市面上的軟件分為兩種:bs架構(gòu):瀏覽器端為服務(wù)器端的交互 ui界面是在服務(wù)器端cs架構(gòu):客戶端與服務(wù)器端的交互ui界面是在客戶端程序?qū)崿F(xiàn)1 .基本概念什么是webweb在英語中即表示網(wǎng)頁的意思,它用于表示internet主機(jī)上供外界訪問的資源以及超鏈接所組成的鏈表 放在internet網(wǎng)上供外界訪問的文件或程序被稱為web資源web資源被分為:靜態(tài) web 資源:htmls css、jpg動(dòng)態(tài) web 資源:servlet > jspasp php jsp+servlet2 .什么是web服務(wù)器?就是一臺(tái)電腦,安裝了一個(gè)服務(wù)器軟件3. 為什么需耍安裝web服

2、務(wù)器思考問題:從一臺(tái)計(jì)算機(jī)的ie瀏覽器如何去訪問另一臺(tái)計(jì)算機(jī)中的文件3.1兩臺(tái)計(jì)算機(jī)是如何實(shí)現(xiàn)通訊的?ip地址(計(jì)算機(jī)的唯一標(biāo)識(shí))ipv4 4個(gè)字節(jié)的整數(shù),每個(gè)字節(jié)以點(diǎn)號(hào)隔開00每個(gè)字節(jié)的取值0255在計(jì)算機(jī)中程序會(huì)綁定在某一個(gè)端口 0-65535盡量用1024以上的連接一臺(tái)計(jì)算機(jī)就需要輸入ip地址和端口號(hào)作為接收方,應(yīng)該綁定ip,監(jiān)聽指定的端口3.2 在本地寫程序添加一個(gè)服務(wù),供別人來訪問,假設(shè)監(jiān)聽8888端口3.3 編碼實(shí)現(xiàn)了一個(gè)本地服務(wù)器程序作用:管理本地的資源,只要將html頁面放到指定的目錄下,外界就可以訪問了3.4 安裝服務(wù)器的冃的:開發(fā)好的web資源可以發(fā)布

3、到服務(wù)器上,這樣外界就可以通過瀏覽器訪問了源程序:myserver java/ serversocket對(duì)象可以監(jiān)聽端口serversocket serversocket = new serversocket (6666);while(true) socket socket = serversocket. accept () ;/等待客戶端的連接請求,一旦冇請求過來,就結(jié)束阻塞,返回客戶端對(duì)象/ 一旦有客戶來訪問,就另開一個(gè)新線程去提供服務(wù),main線程繼續(xù)等待下一個(gè)客戶的連接 new thread(new myservice(socket)start();myservice.java/提供服

4、務(wù)inp ut stream in = socke t get inputs treemo;thread.sleep(200);int len = in . available () ; /估計(jì)此流不受阻塞能讀取的字節(jié)數(shù)byte buffer = new bytelen;inread(buffer);string request = new string (buffer);/ /截取第一行string firstline = requestsubstring (0, requestindexof ( nnn);string uriname = f irstline .spli t(” '

5、;*) 1 ;outputstream out = socket getoutputstr0arn();/根據(jù)需要訪問的資源創(chuàng)建file對(duì)象file file = new file (nsrch + uriname);if (!file.exists ()out. write ('*對(duì)不起!您訪問的資源不存在!別瞎搞!! " .getbytes ();outclose ();return ;/從文件讀,往瀏覽器寫fileinputstream fis = new filelnputstream(file);buffer = new byte1024;while ( (len

6、= fis read(buffer) > 0)outwrite(buffer, 0, len);socketclose ();二、tomcat服務(wù)器的安裝和配置冃前便用較多的服務(wù)器weblogic1. 使用tomcat 6.0.20. rar文件解壓即完成安裝2 . tomcat就是一個(gè)java 序,一定會(huì)用到j(luò)re所以需要配置環(huán)境變m java_home配置成jdk的安裝目錄c : jdkl. 6tomcat的啟動(dòng)是通過startup.bat文件,實(shí)際上startup.bat中是去調(diào)用 catalina.bat 文件, 而且是通過 %catalina_home%bincatalina

7、.bat 去找 所以為了保證服務(wù)器啟動(dòng)正常,需要配置catalina_home環(huán)境變量為tomcat的安裝目錄3 . tomcat的目錄結(jié)構(gòu)bin :存放一些執(zhí)行文件conf :存放服務(wù)器的配置文件lib :存放tomcat所依賴的jar文件 logs:存放h志文件temp:存放臨時(shí)文件 webapps: web applications存放所有的web應(yīng)用程序(web資源) work: tomcat的工作目錄,jsp翻譯成的servlet就在這個(gè)冃錄下4 . web應(yīng)用多個(gè)web資源存放在一個(gè)目錄下即為一個(gè)web應(yīng)用(web應(yīng)用程序、web工程)web應(yīng)用的目錄結(jié)構(gòu)靜態(tài)web資源直接放在目錄

8、下java類放在classes冃錄下web. xml文件負(fù)責(zé)管理web應(yīng)用下所有的gb資源所有jar包放在lib日錄下三、web應(yīng)用的映射1虛擬目錄一個(gè)web應(yīng)用(服務(wù)器上一個(gè)目錄)要想被供外界訪問,就必須要映射虛擬目錄在tomcat6中,放在webapps下的訶eb應(yīng)用,服務(wù)器會(huì)自動(dòng)做映射(將文件夾名稱作為虛擬路徑) 對(duì)于webapps冃錄外的web應(yīng)用需要手動(dòng)映射虛擬路徑1.1. 在server . xml文件可以配置<host><context path=,z/itcast" docbase=zzf : itcasta/ /></host>在

9、server . xml文件中配置contextpath需要重新啟動(dòng)tomcat服務(wù)器1.2. 在 %tomcat 目錄%confcatalinalocalhost 下寫一個(gè) xm丄文件文件名就是虛擬冃錄<context docbase=z,f: itcastz, />多級(jí)目錄配置 aaa#bbb . xml對(duì)應(yīng)/aaa/bbb如果文件名 是root, xml那就是配置了缺省的web應(yīng)用,訪問時(shí)不需要輸入 虛擬h錄web應(yīng)用下的目錄結(jié)構(gòu)如下圖2. web.xml管理web應(yīng)用下所有的web資源通俗地講,一個(gè)web應(yīng)用下所有的web資源如何被外界訪問都需要在此文件下做映射 包括咱們后

10、面學(xué)的servlet jsp都需要在這個(gè)文件中做映射實(shí)驗(yàn):配置web應(yīng)用的首頁在web應(yīng)用下新建目錄web-inf ,在此目錄下 新建web. xml文件 <?xml version=n1.0n encoding=niso-8 85 9-1"?><we b-app xmlns=l,http : /java . sun . com/xml/ns/ javaeen xmlns : xsi = ,http: /www w3 . org/2 001/xmlschema-instancen xsi:schemalocation=n http:/javasuncom/xml/n

11、s/javaee/web-app_2_5-xsdn version=n2.5n><welcome-f ile-list><we1come-file>itcasthtml</welcome-file> </welcome-file-list></web-app>3. 域名解析一個(gè)完整urlhttp:www sina com:8 0itcastindex.jsp協(xié)議名主機(jī)名端口號(hào)資源名(uri)ie訪問服務(wù)器的原理,在ie中輸入的地址中包含域名,域名就需要被翻譯成服務(wù)器的ip,才能訪問到服務(wù)器4. web應(yīng)用映射的練習(xí):新建一個(gè)we

12、b應(yīng)用配置成缺省的web應(yīng)用配置首頁配置tomcat監(jiān)聽端口為80在windows中注冊主機(jī)名新建一個(gè)web應(yīng)用 進(jìn)行配置,要求在ie輸入http: /www. baidu . com即可訪問頁面5. 虛擬主機(jī)服務(wù)器允許在一個(gè)ip上配置多個(gè)主機(jī),即虛擬主機(jī)http:/www sina com:80/index html中的起了兩個(gè)作用:找dns服務(wù)器,作為域名被解析為ip通過host頭告訴服務(wù)器訪問的主機(jī)名配置方式:在server . xml文件中配置host元素,需要指定name (主機(jī)名)> appbase 認(rèn)web應(yīng)用存放冃剝 appbase冃錄卜所有的web應(yīng)用,tomcat會(huì)口

13、動(dòng)映射虛擬路徑<host name=nwww. sohu. com*' appbase=nf : sohuwebapps" />做實(shí)驗(yàn):給新配置的虛擬主機(jī)配置缺省的web應(yīng)用<host name=h" appbase=nf:sohuwebapps" ><context path=n h docbase=nf:sohuwebappsabcn /></host>分析web資源訪問過程http:/www sohu com:80/abc/a html訪問一個(gè)a . html靜態(tài)web資源,ie做了什么事1)將作為域名

14、發(fā)送給dns ,解析成ip地址,訪問一臺(tái)服務(wù)器2 )發(fā)送host頭(www . sohu . com),告訴服務(wù)器我要訪問的虛擬主機(jī),服務(wù)器拿著host頭去server . xml文件 中找匹配的host元素3)將abc作為虛擬日錄,告訴服務(wù)器我要訪問的web應(yīng)用,服務(wù)器拿著abc找匹配的web應(yīng)用(context元素)4)將a.html作為資源名,告訴服務(wù)器我要訪問的web資源,服務(wù)器拿著a.html去web . xml文件中找映射 虛擬目錄對(duì)應(yīng)是一個(gè)web應(yīng)用的目錄,所以虛擬目錄也被我們稱作web應(yīng)用路徑(web應(yīng)用的上下文contextpath)四、http協(xié)議web開發(fā)的基石1. tc

15、p/ip協(xié)議:網(wǎng)絡(luò)通信協(xié)議(連接)ip協(xié)議: ip地址對(duì)應(yīng)一臺(tái)計(jì)算機(jī)(互聯(lián)網(wǎng)層)tcp高級(jí)協(xié)議:三次握手,發(fā)送請求、返回響應(yīng)、傳輸數(shù)據(jù)(傳輸層)2. http協(xié)議是建立在tcp協(xié)議的基礎(chǔ)之上(應(yīng)用層)w3c制定的通訊協(xié)議,作用是規(guī)定了瀏覽器與服務(wù)器之間通訊的格式3. http協(xié)議的版本httpl.o :建立連接,發(fā)送一次請求就斷開httpl.l :建立連接,可以無限次發(fā)送請求五、http請求消息ie向服務(wù)器發(fā)送的內(nèi)容內(nèi)容包括一個(gè)請求行、若t消息頭、以及實(shí)體內(nèi)容,其中的一些消息頭和實(shí)體內(nèi)容都是可選的,消息頭和實(shí)體內(nèi)容之 間要用空行隔開。post /itcast/ http/1.

16、1請求行accept: image/gif, image/x-xbitmap, */* 消息頭referer: http:/localhost:8080/iteast/accept-language: zh-cn,en-gb;q=0.8,ar-ye;q=0.7z ja-jp;q=0.5,de-ch;q=0.3z en-us;q=0.2 content-type: application/x-www-form-ur1encodedua-cpu: x86accept-encoding: gzip, deflateuser-agent: mozilla/4.0 (compmtible; msie 7

17、.0; windows nt 5.1; gtb6.5; ciba)host: localhost:8080content-length: 33connection: keep-alivecache-control: no-cachecookie: jsessionid=b0b3fb4ffb0315b3d3c620548dd4elebusername=zhangsan&password=1234561.請求行 get /itcast/m.htnu http/1.1請求方式共有7種,在實(shí)踐屮發(fā)現(xiàn)具屮的5種沒用,只需要學(xué)兩種get postget 方式:get 方式請求參數(shù)住 bl 在 ur

18、l jnlfti/itcast/a . html?username=aaa &password=lll,數(shù)ik 最多 ikpost方式:請求參數(shù)放在消息體中傳輸,相對(duì)安全,get大小限制ik, post無數(shù)據(jù)雖限制2 請求消息頭:ie瀏覽器用于向服務(wù)器說明情況的(瀏覽器環(huán)境)accept: text/html,image/*accept-charset: iso-8859-1accept-encoding: gzip,compressaccept-language: en-usa zh-cn說明瀏覽器接受的數(shù)據(jù)類型 說明瀏覽器使川的字符編碼 說明瀏覽器支持的壓縮格式 說明瀏覽器的語言環(huán)

19、境 說明瀏覽器要訪問的主機(jī)名if-modified-sinee: tue,11 jul 2000 18:23:51 gmt文件的修改時(shí)間,用于做緩存host: :80ref erer : http : /www. it315 . org/index . jsp 說明請求來自哪里,防盜鏈(做實(shí)驗(yàn))說明連接狀態(tài)user-agent: mozilla/4.0 (compatible; msie 5.5; windows nt 5.0)說明瀏覽器內(nèi)核 cookie向服務(wù)器發(fā)送cookieconnection: close/keep-alivedate: tue, 11 jul

20、 2000 18:23:51 gmt客戶端計(jì)算機(jī)時(shí)間六、http響應(yīng)消息內(nèi)容包括一個(gè)狀態(tài)行、若干消息頭、以及實(shí)體內(nèi)容,其小的一些消息頭和實(shí)體內(nèi)容都是可選的,消息頭和實(shí)休內(nèi)容之 間要用空行隔開。http/1.1 200 ok 狀態(tài)行server : apache-coyote/1 1 消息頭content-type: text/htm丄;charset=gb18030content-length: 766date: thu, 07 jul 2011 15:40:02 gmt<!doctype html public "-/w3c/dtd html 4.01 transitiona

21、l/enn> 肖,凰體 <html><head><title>my jsp 1 index.jsp1 starting page</title></head><body>hello</body></html>1 .狀態(tài)行 http/1 1 404 not found協(xié)議版木狀態(tài)碼:200 (ok) 302307請求重定向,你訪問我,我通知你訪問另一個(gè)資源304通知瀏覽器去讀緩存404找不到資源500服務(wù)器程序出錯(cuò)2響應(yīng)消息頭服務(wù)器向?yàn)g覽器說明情況(處理結(jié)果)location : http:/w

22、/index.jsp通矢f1瀏覽器去訪問另一個(gè)資源server : apache tomcat說明月比務(wù)器content-encoding: gzip通知瀏覽器數(shù)據(jù)的壓縮格式content-length : 80通知瀏覽器發(fā)送數(shù)據(jù)的長度content-language : zh-cn通知瀏覽器語言環(huán)境content-type : text/html; charset=gb2312通知瀏覽器文件的格式和編碼last-modified: tue, 11 jul 2000 18:23:51 gmt告訴瀏覽器文件的修改時(shí)間refresh : 1; url=http : /www

23、 .通知瀏覽器自動(dòng)刷新content-disposition : attachment; filename=aaazip 通知瀏覽2帶以卜載的方亍弋打開資源 set-cookie:ss=q0=5lb_nq; path=/search 發(fā) cookieexpires: -1/3種禁止緩存的頭字段cache-control: no-cachepragma: no-cache connection : close/keep-alive連接狀態(tài)date: tue, 11 jul 2000 18:23:51 gmt 系統(tǒng)吋間七、https協(xié)議1 . https是一種加密協(xié)議能保證數(shù)據(jù)的

24、安全2 .不對(duì)稱加密 對(duì)稱加密3. https1)制作數(shù)字證書keytool -genkey -alias tomcat -keyalg rsad:documents and settingsxuwenhaikeytoo1 -genkey -alias tomcat -keyalg rsa 觸入keystore密碼: 岸次輸入新密碼:尿的曇字與姓氏是什么?unknown:localhost您的組織單位名稱是什么?unknown:您的組織名稱是什么?unknown:您所在的城市或區(qū)域名稱是什么?unknown:您濟(jì)右幽州或省份名稱是什么?unknown:該單位的兩字母國家代碼是什么unknown

25、:n=localhost. ou =unknown . 0=unknown . l=unknown . st =unknown . c=unknown 正確嗎? 否:y輸入toncat 的主密碼(女口臬和 keystone 密召耳*冃同, 校回車):2)將證卩拷貝至tomcatconf3)修改server. xml文件 配置https連接器<connector port=n8443n protocol="http/l.1n sslenabled=”true" maxthreads=,f 15011 scheme=nhttps" secure=,ftrue" clientauth=nfalsen sslprotocol=,tlsf,keystorefile=nconfkeystore" keystorepass=n12 3456n />4)重啟服務(wù)器打開ie訪問https:/localhost:84435)ie中安裝證書此網(wǎng)站的安全證書有間題。繼續(xù)瀏覽證書錯(cuò)誤分xji不受信任的證書

溫馨提示

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

評(píng)論

0/150

提交評(píng)論