Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> (17)web開發/tomcat/HTTP協議

(17)web開發/tomcat/HTTP協議

編輯:關於Android編程

web開發概述

\

 

 

靜態web資源:內容是靜態的,不同的人在不同的時間來訪問時都是相同的內容。HTML、CSS、JS

動態web資源:內容是由程序生成的,不同的人在不同的時間訪問的內容很可能是不同的。

常見的動態web資源開發技術:

ASP、PHP、JSP/Servlet

C/S B/S之爭

雲、移動互聯網、html5、物聯網

tomcat的安裝配置

下載地址:http://tomcat.apache.org/

安裝目錄不能包含中文和空格

JAVA_HOME環境變量指定Tomcat運行時所要用的jdk所在的位置,注意,配到目錄就行了,不用指定到bin

端口占用問題:netstat -ano命令查看端口占用信息

Catalina_Home環境變量:startup.bat啟動哪個tomcat由此環境變量指定,如果不配置則啟動當前tomcat,推薦不要配置此環境變量

 

tomcat5要求jdk1.4以上

tomcat6要求jdk1.5以上

tomcat7要求jdk1.6以上

JAVA_HOME環境變量:指定tomcat啟動時使用的jdk所在的位置

Catalina_Home環境變量:指定tomcat在啟動時啟動哪個tomcat,一般不推薦配置

tomcat目錄結構_虛擬主機配置

bin ---- 啟動和關閉需要的bat文件所在的目錄

conf --- 配置目錄

lib --- tomcat運行時需要的jar包所在的目錄

logs --- 日志文件所在的目錄

temp --- tomcat運行時產生的臨時文件存放的目錄,不需要我們管理

webapps --- 開發中最常用的目錄,web應用放置到此目錄下浏覽器可以直接訪問

work --- 工作目錄,tomcat運行時產生的工作文件存放在這個目錄中

虛擬主機:

一個tomcat可以認為是一台真實主機.在一台真實主機中可以配置多個站點,這些站點在訪問者看來訪問他們就像在訪問各自獨立的主機一樣,所以我們可以認為這些站點都運行在tomcat這台真實主機當中的各自的虛擬主機當中.一個網站就可以認為是一個虛擬主機.

web應用:

一個虛擬主機中會有很多的web資源,但是web資源不能直接交給虛擬主機管理,需要按照一定方式組織成web應用虛擬主機才能使用.一般來說我們會按照功能將某一功能相關的所有的web資源組織成一個web應用後再交給虛擬主機.

為虛擬主機配置web應用:

(1)在Server.xml的標簽中,配置標簽,就可以為該虛擬主機配置一個web應用了, 如果將path設置為空則這個web應用為缺省web應用 這種配置方式需要重啟服務器不推薦

(2)在tomcat/conf/[Engin]/[Host]/在這個目錄下寫一個xml文件,其中xml文件的名字就是虛擬路徑,在這個xml中可以配置標簽,其中配置真實路徑.如果所配置的虛擬路徑中有/由於文件名中不允許包含/需要用#替代.只要將文件名設置為ROOT.xml則這個xml描述的web應用就成為了缺省web應用這種配置方式不需要重啟服務器,推薦

(3)直接將web應用放置到虛擬主機管理的目錄下,虛擬主機就可以找到這個web應用,從而管理這個web應用,只要將web應用文件夾的名稱改為ROOT,這個web應用就是缺省web應用

 

*web應用的虛擬路徑映射 --就是為web應用的真實存在的路徑配置一個浏覽器訪問的虛擬路徑

*配置缺省web應用-- 默認的web應用,當不寫web應用名時就訪問這個web應用

 

web應用目錄結構

web應用目錄結構:如果目錄結構不合法可能會出現各種奇葩的問題.

news

|

|--靜態資源和JSP文件都可以直接放置在web應用的目錄下,直接放在web應用下的內容,浏覽器可以直接訪問到

|

|--WEB-INF -- 可以沒有,但是最好有,如果有則一定要保證他的目錄結構是完整的.放置在WEB-INF目錄下的所有資源浏覽器沒有辦法直接進行訪問

|--classes -- 動態web資源運行時的class文件要放在這個目錄下

|--lib -- 動態web資源運行時所依賴的jar包要放在這個目錄下

|--web.xml -- 整個web應用的配置文件,配置主頁/Servlet的映射/過濾器監聽器的配置都需要依賴這個文件進行

tomcatweb應用配置_綜合演練

\

 

在conf/server.xml中標簽下配置標簽就可以為tomcat增加一台虛擬主機了

name -- 指定虛擬主機的名稱,浏覽器通過這個名稱訪問虛擬主機

appBase -- 虛擬主機管理的目錄,放置在這個目錄下的web應用當前虛擬主機可以自動加載

*由於浏覽器訪問地址時,需要將地址翻譯成對應的ip才能找到服務器,這其中翻譯的過程是由dns服務器來實現的.我們在做實驗的時候沒有辦法去修改dns服務器,此時可以使用hosts文件模擬dns的功能,從而完成實驗.

*缺省虛擬主機:如果來訪者是通過ip來訪問,這個時候服務器無法辨別當前要訪問的是哪台虛擬主機中的資源,此時訪問缺省虛擬主機.缺省虛擬主機可以在server.xml中engin標簽上通過defaultHost屬性進行配置.

\

 

零散知識

 

打war包,減少web應用的體積方便傳輸,並且在虛擬主機管理的目錄下,war默認可以自動解壓

Jar -xvf test.war *

或者壓縮為zip文件後,改名為war.

 

通用Context配置、通用web.xml配置

 

Tomcat服務器的管理平台

(1)打war包:方式一:jar -cvf news.war *方式二:直接用壓縮工具壓縮為zip包,該後綴為.war

(2)通用context和通用web.xml,所有的都繼承子conf/context.xml,所有的web.xml都繼承自conf/web.xml

(3)reloadable讓tomcat自動加載更新後的web應用,當java程序修改後不用重啟,服務器自動從新加載,開發時設為true方便開發,發布時設為false,提高性能

(4)Tomcat管理平台,可以在conf/tomcat-users.xml下配置用戶名密碼及權限

HTTP協議概述

規定客戶端和服務器如何進行交互

基於TCP/IP協議的應用層協議

 

HTTP協議基於請求響應模型

一次請求對應一次響應

請求只能由客戶端發出,服務器只能被動的等待請求做出響應

 

1.0和1.1的區別

 

telnet/httpwatche

HTTP協議詳解

HTTP請求

請求行

GET /books/java.html HTTP/1.1

請求方式

七種請求方式: POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT

真正使用的時候:POST/GET

GET請求方式和POST請求區別在於請求參數在傳遞的過程中方式不同

如果是GET提交,請求參數將會附加在請求的URL後面作為請求地址的一部分帶到服務器端,可以傳輸的數據大小有限制一般不允許超過1K.

如果是POST提交,請求參數將會在http請求的實體內容中進行傳輸,這種方式傳輸的數據沒有大小限制.

 

利用form表單提交數據時,form表明明確的聲明要用POST提交,這是請求參數就是POST提交

除此以外所有方式的請求參數都是GET提交

 

 

請求的資源部分的名稱

所遵循的協議版本

若干請求頭

Accept: text/html,image/* 客戶端可以接受的數據類型

Accept-Charset: ISO-8859-1 客戶端接受數據需要使用的字符集編碼

Accept-Encoding: gzip,compress 客戶端可以接受的數據壓縮格式

Accept-Language: en-us,zh-cn 可接受的語言環境

Host: www.it315.org:80 想要訪問的虛擬主機名

If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT 這是和緩存相關的一個頭,帶著緩存資源的最後獲取時間

Referer: http://www.it315.org/index.jsp 這個頭表示當前的請求來自哪個鏈接,這個頭和防盜鏈的功能相關

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) 客戶端的一些基本信息

Cookie 會在後面講會話技術的時候單講

Connection: close/Keep-Alive 指定是否繼續保持連接

Date: Tue, 11 Jul 2000 18:23:51 GMT 當前時間

 

實體內容

 

HTTP響應

狀態行

HTTP/1.1 200 OK

格式: HTTP版本號 狀態碼 原因敘述

狀態碼:

200:請求處理成功

302:請求重定向

304、307:服務器通知浏覽器使用緩存

404:資源未找到

500:服務器端錯誤

 

若干響應頭

Location: http://www.it315.org/index.jsp 配合302實現請求重定向

Server:apache tomcat 服務器的基本信息

Content-Encoding: gzip 服務器發送數據時使用的壓縮格式

Content-Length: 80 發送數據的大小

Content-Language: zh-cn 發送的數據使用的語言環境

Content-Type: text/html; charset=GB2312 當前所發送的數據的基本信息,(數據的類型,所使用的編碼)

Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT 緩存相關的頭

Refresh: 1;url=http://www.it315.org 通知浏覽器進行定時刷新,此值可以是一個數字指定多長時間以後刷新當前頁面,這個數字之後也可以接一個分號後跟一個URL地址指定多長時間後刷新到哪個URL

Content-Disposition: attachment;filename=aaa.zip 與下載相關的頭

Transfer-Encoding: chunked 傳輸類型,如果是此值是一個chunked說明當前的數據是一塊一塊傳輸的

Set-Cookie:SS=Q0=5Lb_nQ; path=/search 和cookie相關的頭,後面課程單講

ETag: W/"83794-1208174400000" 和緩存機制相關的頭

Expires: -1 指定資源緩存的時間,如果取值為0或-1浏覽就不緩存資源

Cache-Control: no-cache 緩存相關的頭,如果為no-cache則通知浏覽器不緩存

Pragma: no-cache 緩存相關的頭,如果為no-cache則不緩存

以上三個頭都是用來控制緩存的,是因為歷史原因造成的,不同的浏覽器認識不同的頭,我們通常三個一起使用保證通用性。

Connection: close/Keep-Alive 是否保持連接

Date: Tue, 11 Jul 2000 18:23:51 GMT 當前時間

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved