http協議學習日記

學習日記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請求包括如下內容:

   一個請求行、若干消息頭、以及實體內容,如下所示 :

 

請求行中的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響應:

一個HTTP響應代表服務器向客戶端回送的數據,它包括:

   一個狀態行、若干消息頭、以及實體內容 。


狀態行

   格式: 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  以上三個頭一起用,就可以控制所有的瀏覽器不要緩存數據


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章