您當前位置>首頁 » 新聞資(zī)訊 » 網站(zhàn)建設 >
方立勳_30天掌握JavaWeb_Web開發入門
發表時間:2017-3-14
發布人:葵宇科技
浏覽次數:19
WEB開發的相關(guān)知識
- WEB,在英語中(zhōng)web即表示網頁的意思,它用于表示Internet主機上供外界訪問(wèn)的資(zī)源。
- Internet上供外界訪問(wèn)的Web資(zī)源分為:
- 靜态web資(zī)源(如(rú)html 頁面):指web頁面中(zhōng)供人們浏覽的數據始終是不變。
- 動(dòng)态web資(zī)源:指web頁面中(zhōng)供人們浏覽的數據是由程序産生的,不同時間點訪問(wèn)web頁面看到的内容各不相同。
- 靜态web資(zī)源開發技術(shù)
- Html
- 常用動(dòng)态web資(zī)源開發技術(shù):
- JSP/Servlet、ASP、PHP等
- 在Java中(zhōng),動(dòng)态web資(zī)源開發技術(shù)統稱為Javaweb,我們課程的重點也是教大家如(rú)何使用Java技術(shù)開發動(dòng)态的web資(zī)源,即動(dòng)态web頁面。
WEB服務器(qì)
- 學習web開發,需要先安裝一台web服務器(qì),然後再在web服務器(qì)中(zhōng)開發相應的web資(zī)源,供用戶使用浏覽器(qì)訪問(wèn)。
- 疑問(wèn):學習web開發,為什麼必須要先裝一個(gè)WEB服務器(qì)?
常見WEB服務器(qì)
WebLogic是BEA公司的産品,是目前應用最廣泛的Web服務器(qì),支持J2EE規範,而且不斷的完善以适應新的開發要求。
另一個(gè)常用的Web服務器(qì)是IBM公司的WebSphere,支持J2EE規範。
在小型的應用系統或者有特殊需要的系統中(zhōng),可(kě)以使用一個(gè)免費Web服務器(qì):Tomcat,該服務器(qì)支持全部JSP以及Servlet規範。
一些默認端口:
http:80
stmp:
https:
理解 http://www.baidu.com:
以http協議去訪問(wèn)www.baidu.com這台主機下(xià)默認端口(80端口)
主機名:www.baidu.com
域名:baidu.com
Tomcat服務器(qì)
Tomcat目錄層次結構
虛似目錄的映射方式
在server.xml文(wén)件的host元素中(zhōng)配置,例如(rú):
在Tomcat6中(zhōng),不再建議在server.xml文(wén)件中(zhōng)配置context元素,細節查看tomcat服務器(qì)關(guān)于context元素的說明。
讓tomcat自動(dòng)映射: tomcat服務器(qì)會自動(dòng)管理webapps目錄下(xià)的服務器(qì)webapps目錄中(zhōng)的we所有web應用,并把它映射成虛似目錄。換句話說,tomcatb應用,外界可(kě)以直接訪問(wèn)。
讓web應用被外界訪問(wèn)的三種方式:
- 直接扔到webapps下(xià)
- 在server.xml文(wén)件的host元素中(zhōng)配置<Context path=”/xxx” docBase=”c:\mail”/>
- 在服務器(qì)目錄\conf\catalina\localhost\新建一個(gè)xml文(wén)件,文(wén)件名就是web應用的名稱 <ontext docBase=”c:\mail” />
WEB應用的組成結構
web.xml文(wén)件
通(tōng)過web.xml文(wén)件,可(kě)以将web應用中(zhōng)的:
某個(gè)web資(zī)源配置為網站(zhàn)首頁
将servlet程序映射到某個(gè)url地址上
……
但凡涉及到對web資(zī)源進行配置,都需要通(tōng)過web.xml文(wén)件舉例:通(tōng)過web.xml文(wén)件配置網站(zhàn)首頁。
注意:Web.xml文(wén)件必須放在web應用\WEB-INF目錄下(xià)。
配置虛似主機
配置虛似主機就是配置一個(gè)網站(zhàn)。
如(rú)需在WEB服務器(qì)中(zhōng)配置一個(gè)網站(zhàn),需使用Host元素進行配置,例:
配置的主機(網站(zhàn))要想被外部訪問(wèn),必須在DNS服務器(qì)或windows系統中(zhōng)注冊。
配置多個(gè)網站(zhàn)。
缺省虛似主機。
Web資(zī)源訪問(wèn)過程
軟件密碼學基礎
公鑰的加密隻能私鑰解,私鑰加密的隻能公鑰解。
- 使用如(rú)下(xià)命令生成服務器(qì)證書(cmd下(xià))
keytool -genkey -alias tomcat -keyalg RSA- 在server.xml文(wén)件中(zhōng)配置加密連接器(qì),并指定加密連接器(qì)從哪個(gè)密鑰庫中(zhōng)獲取數字證書
<Connector port=”8443” protocol=”HTTP/1.1” SSLEnabled=”true”
maxThreads=”150” scheme=”https” secure=”true”
clientAuth=”false” sslProtocol=”TLS” keystoreFile=”conf.keystore” keystorePass=”123456”/>- 使用浏覽器(qì)訪問(wèn):https://localhost:8443
HTTP協議
http協議概述
- HTTP是hypertext transfer protocol(超文(wén)本傳輸協議)的簡寫,它是TCP/IP協議的一個(gè)應用層協議,用于定義WEB浏覽器(qì)與WEB服務器(qì)之間交換數據的過程。
- HTTP協議是學習JavaWEB開發的基石,不深入了解HTTP協議,就不能說掌握了WEB開發,更無法管理和(hé)維護一些複雜的WEB站(zhàn)點。
- HTTP協議的版本:HTTP/1.0、HTTP/1.1
什麼是http協議
- 客戶端連上web服務器(qì)後,若想獲得web服務器(qì)中(zhōng)的某個(gè)web資(zī)源,需遵守一定的通(tōng)訊格式,HTTP協議用于定義客戶端與web服務器(qì)通(tōng)迅的格式。
- 使用telnet程序連上web服務器(qì),并使用HTTP協議獲取某個(gè)頁面,快速了解 HTTP協議的作用。
- 安裝IE浏覽器(qì)插件HttpWatch,查看IE浏覽器(qì)通(tōng)過HTTP協議獲取某個(gè)頁面。
http1.0和(hé)http1.1
- 在HTTP1.0協議中(zhōng),客戶端與web服務器(qì)建立連接後,隻能獲得一個(gè)web資(zī)源。
- HTTP1.1協議,允許客戶端與web服務器(qì)建立連接後,在一個(gè)連接上獲取多個(gè)web資(zī)源。
- 使用telnet舉例說明。telnet localhost
- Q:一個(gè)web頁面中(zhōng),使用img标簽引用了三幅圖片,當客戶端訪問(wèn)服務器(qì)中(zhōng)的這個(gè)web頁面時,客戶端總共會訪問(wèn)幾次服務器(qì),即向服務器(qì)發送了幾次HTTP請求。
A:4次。請求網站(zhàn)一次,三張圖片三次。
HTP請求
客戶端連上服務器(qì)後,向服務器(qì)請求某個(gè)web資(zī)源,稱之為客戶端向服務器(qì)發送了一個(gè)HTTP請求。一個(gè)完整的HTTP請求包括如(rú)下(xià)内容:
一個(gè)請求行、若幹消息頭、以及實體内容,如(rú)下(xià)所示 :
空行下(xià)面是請求數據。
http請求的細節1–請求行:
請求行中(zhōng)的GET稱之為請求方式,請求方式有:
POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
常用的有: GET、 POST
用戶如(rú)沒有設置,默認情況下(xià)浏覽器(qì)向服務器(qì)發送的都是get請求,例如(rú)在浏覽器(qì)直接輸地址訪問(wèn),點超鍊接訪問(wèn)等都是get,用戶如(rú)想把請求方式改為post,可(kě)通(tōng)過更改表單的提交方式實現。不管POST或GET,都用于向服務器(qì)請求某個(gè)WEB資(zī)源,這兩種方式的區别主要表現在數據傳遞上:
如(rú)請求方式為GET方式,則可(kě)以在請求的URL地址後以?的形式帶上交給服務器(qì)的數據,多個(gè)數據之間以&進行分隔,例如(rú):
GET /mail/1.html?name=abc&password=xyz HTTP/1.1
GET方式的特點:在URL地址後附帶的參數是有限制的,其數據容量通(tōng)常不能超過1K。
如(rú)請求方式為POST方式,則可(kě)以在請求的實體内容中(zhōng)向服務器(qì)發送數據,Post方式的特點:傳送的數據量無限制。
何時使用GET和(hé)POST?
http請求的細節2–消息頭:
用于HTTP請求中(zhōng)的常用頭
- Accept: text/html,image 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),它所支持的數據類型
- Accept-Charset: ISO-8859-1 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),它支持哪種字符集
- Accept-Encoding: gzip,compress 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),支持的壓縮格式
- Accept-Language: en-us,zh-cn 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),它的語言環境
- Host: www.it315.org:80 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),想訪問(wèn)哪台主機
- If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),緩存數據的時間
- Referer: http://www.it315.org/index.jsp 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),客戶機是哪個(gè)頁面來的(防盜鍊)
- User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Cookie- Connection: close/Keep-Alive 浏覽器(qì)通(tōng)過這個(gè)頭告訴服務器(qì),請求完後是斷開鍊接還是何持鍊接
- Date: Tue, 11 Jul 2000 18:23:51 GMT
HTTP響應
一個(gè)HTTP響應代表服務器(qì)向客戶端回送的數據,它包括:
一個(gè)狀态行、若幹消息頭、以及實體内容。
http響應細節1–狀态行:
- 狀态行
格式: HTTP版本号 狀态碼 原因叙述
舉例:HTTP/1.1 200 OK - 狀态碼用于表示服務器(qì)對請求的處理結果,它是一個(gè)三位的十進制數。響應狀态碼分為5類,如(rú)下(xià)所示:
http響應細節2–狀态行:
HTTP請求中(zhōng)的常用響應頭
- Location: http://www.it315.org/index.jsp 服務器(qì)通(tōng)過這個(gè)頭,來告訴浏覽器(qì)跳到哪裡
- Server:apache tomcat 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)服務器(qì)的型号
- Content-Encoding: gzip 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì),數據的壓縮格式
- Content-Length: 80 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)回送數據的長度
- Content-Language: zh-cn 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)語言環境
- Content-Type: text/html; charset=GB2312 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)回送數據的類型
- Last-Modifierad: Tue, 11 Jul 2000 18:23:51 GMT
- Refresh: 1;url=http://www.it315.org 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)定時刷新
- Content-Disposition: attachment; filename=aaa.zip 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)以下(xià)載方式打數據
- Transfer-Encoding: chunked 服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)數據是以分塊方式回送的
- Set-Cookie:SS=Q0=5Lb_nQ; path=/search
- Expires: -1 控制浏覽器(qì)不要緩存(eg:服務器(qì)通(tōng)過這個(gè)頭,告訴浏覽器(qì)把回送的資(zī)源緩存多長時間,-1或0,則是不緩存)
- Cache-Control: no-cache
- Pragma: no-cache (服務器(qì)通(tōng)過以上兩個(gè)頭,也是控制浏覽器(qì)不要緩存數據)
- Connection: close/Keep-Alive
- Date: Tue, 11 Jul 2000 18:23:51 GMT
HTTP實用頭字段:
1. HTTP請求頭字段:*
- Range頭指示服務器(qì)隻傳輸一部分web資(zī)源,這個(gè)頭可(kě)以用來實現斷點續傳功能。Range字段可(kě)以通(tōng)過三種格式設置要傳輸的字節範圍;
- Range:bytes=1000-2000傳輸範圍從1000到2000字節。
- Range:bytes=1000-
傳輸web資(zī)源中(zhōng)第1000個(gè)字節以後的所有内容。 - Range bytes=1000
傳輸最後1000個(gè)字節。
2. HTTP響應消息頭字段:
- Accept-Ranges:這個(gè)字段說明web服務器(qì)是否支持Range支持,則返回Accept-Ranges;bytes,如(rú)果不支持,則返回Accept-Ranges:none
- Content-Range:指定了返回的web資(zī)源的字節範圍。這個(gè)字段值的格式是:例如(rú):Context-Range:1000-3000/5000