學習日記2
Web應用開發好後,若想供外界訪問,需要把web應用所在目錄交給web服務器管理,這個過程稱之爲虛擬目錄的映射。
虛擬目錄的映射三種方式:
1、在server.xml文件的host元素中配置,例如:
2、在Tomcat6中,不再建議在server.xml文件中配置context元素,細節查看tomcat服務器關於context元素的說明。
3、讓tomcat自動映射: tomcat服務器會自動管理webapps目錄下的所有web應用,並把它映射成虛擬目錄。換句話說,tomcat服務器webapps目錄中的web應用,外界可以直接訪問。
WEB應用的組成結構:
開發web應用時,不同類型的文件有嚴格的存放規則,否則不僅可能會使web應用無法訪問,還會導致web服務器啓動報錯。
Tomcat體系架構:
配置加密連接器:
加密過程:接收方產生一對公鑰和私鑰,發送方用接收方的產生的公鑰加密數據後,再用自己產生的私鑰再加密數據發送給接收方,接收方先用發送方的公鑰解密,再用自己的私鑰解密,在確認對方的公鑰時用到了Ca數字證書。
私鑰加密公鑰解密時,用於確保數據來源
配置過程:
• 在命令行中輸入命令:keytool -genkey -alias tomcat -keyalgRSA,根據提示輸入要產生密鑰庫的網站和密碼,產生.keystore文件,將該文件放入tomcat服務器conf文件夾下。
• 在tomcat的server.Xml文件中進行配置如下:
Http協議:
客戶端連上web服務器後,若想獲得web服務器中的某個web資源,需遵守一定的通訊格式,HTTP協議用於定義客戶端與web服務器通迅的格式。
HTTP是hypertext transfer protocol(超文本傳輸協議)的簡寫,它是TCP/IP協議的一個應用層協議,用於定義WEB瀏覽器與WEB服務器之間交換數據的過程。
在HTTP1.0協議中,客戶端與web服務器建立連接後,只能獲得一個web資源。
HTTP1.1協議,允許客戶端與web服務器建立連接後,在一個連接上獲取多個web資源。
Http請求:
客戶端連上服務器後,向服務器請求某個web資源,稱之爲客戶端向服務器發送了一個HTTP請求。一個完整的HTTP請求包括如下內容:
一個請求行、若干消息頭、以及實體內容,如下所示 :
l 請求行中的GET稱之爲請求方式,請求方式有:
• POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
• 常用的有: GET、 POST
• 用戶如沒有設置,默認情況下瀏覽器向服務器發送的都是get請求,例如在瀏覽器直接輸地址訪問,點超鏈接訪問等都是get,用戶如想把請求方式改爲post,可通過更改表單的提交方式實現。
不管POST或GET,都用於向服務器請求某個WEB資源,這兩種方式的區別主要表現在數據傳遞上:
如請求方式爲GET方式,則可以在請求的URL地址後以?的形式帶上交給服務器的數據,多個數據之間以&進行分隔,例如:
GET /mail/1.html?name=abc&password=xyzHTTP/1.1
GET方式的特點:在URL地址後附帶的參數是有限制的,其數據容量通常不能超過1K。
如請求方式爲POST方式,則可以在請求的實體內容中向服務器發送數據,Post方式的特點:傳送的數據量無限制。
http請求頭
Accept: 用於告訴服務器,客戶機所支持的數據類型
Accept-Charset: 用於告訴服務器,客戶機所採用的碼錶
Accept-Encoding: 用於告訴服務器,客戶機所支持的數據壓縮格式
Accept-Language: 用於告訴服務器,客戶機的語法環境
Host: 用於告訴服務器,客戶機想訪問服務器哪臺主機
If-Modified-Since: 用於告訴服務器,客戶機對於資源的最後緩存時間
Referer: 用於告訴服務器,客戶機是從哪個頁面去訪問服務器的 (防盜鏈)
User-Agent: 用於告訴服務器,客戶機的機器環境(例如所使用的操作系統,瀏覽器版本號)
Cookie:客戶端通過這個頭字段,可以帶一些數據給服務器
Connection:客戶端通過這個頭字段告訴服務器,請求完成後,是保持鏈接還是關閉鏈接
HTTP響應:
l 一個HTTP響應代表服務器向客戶端回送的數據,它包括:
一個狀態行、若干消息頭、以及實體內容 。
l 狀態行
格式: HTTP版本號 狀態碼 原因敘述<CRLF>
舉例:HTTP/1.1 200 OK
l 狀態碼用於表示服務器對請求的處理結果,它是一個三位的十進制數。響應狀態碼分爲5類,如下所示:
302:找別人
304和307:拿緩存
http響應頭
Location:這個頭通常配合302狀態碼使用,服務器使用這個頭告訴瀏覽器去找誰
Server:服務器通過這個頭告訴瀏覽器,服務器的類型
Content-Encoding: 服務器通過這個頭告訴瀏覽器,數據的壓縮格式(gzip)
Content-Length:服務器通過這個頭告訴瀏覽器,回送數據的長度
Content-Language:
Content-Type: 服務器通過這個頭告訴瀏覽器,回送數據的類型
Last-Modified: 服務器通過這個頭告訴瀏覽器,數據的最後修改時間
Refresh:服務器通過這個頭告訴瀏覽器,多長時間定時刷新
Content-Disposition: 控制瀏覽器以下載方式打開回送的數據
Transfer-Encoding: 服務器通過這個頭告訴瀏覽器,數據是以塊方式回送的
Expires:控制瀏覽器緩存數據的時間(-1或0,代表控制瀏覽器不要緩存)
Cache-Control: no-cache
Pragma: no-cache 以上三個頭一起用,就可以控制所有的瀏覽器不要緩存數據