Tomcat、http、get/post

fan_rockrock發表於2016-06-23

		
	* WEB的學習
		* 伺服器
			* 網路的架構(面試題)
				* C/S	client/server	客戶端/伺服器端		例子:QQ	快播	暴風影音
					* 優點:互動性好,伺服器壓力小。
					* 缺點:客戶端更新了,下載。
					
				* B/S	browser/server	瀏覽器/伺服器端		例子:購物網站	12306	
					* 缺點:伺服器壓力大。
					* 優點:伺服器更新就ok。
			
			* WEB網頁	javaweb	使用java開發網頁。
			* 靜態的web資源
				* HTML、CSS、JAVASCRIPT
			* 動態的web資源	
				* 資料發生變化。例子:
				* Servlet/JSP	
				* ASP	.net	微軟開發
				* PHP	開源(開發網站那速度真快),提供模板。
				* RUBY	小日本開發的。
				* JAVA做什麼?後臺的管理系統,處理大資料。
			
			* 伺服器的介紹
				* 原理:網路程式設計。
				* 概念:
					* 硬體:就是一臺主機。
					* 軟體:安裝了伺服器的軟體(tomcat)。	
					* 安裝軟體後,稱為WEB伺服器。
					* 啟動伺服器,訪問資源。
					* 訪問:http://+ip+埠號	找到主機。如果資源的檔案,就可以訪問了。
					* 訪問百度:http://www.baidu.com/
					* HTTP協議預設埠號是80,可以不寫。
					* ping www.baidu.com	61.135.169.121
					
					* 如果想訪問本機的伺服器(擴充套件)
						* http://localhost:80
						* http://127.0.0.1:80
					
			* 常見伺服器
				* WebLogic	BEA公司開發的(被Oracle收購了)	收費的	支援JAVAEE所有的規範(EJB servlet/jsp規範)
					* (JAVA	MySql(Oracle)	WebLogic)
					
				* WebSphere	IBM公司開發的	收費的	支援JAVAEE所有的規範(EJB servlet/jsp規範)
					* 銀行喜歡用
					
				* Tomcat 	apache(開源的組織,非常的偉大)只Servlet/JSP規範。免費的。
					
			* Tomcat的安裝和注意實現
				* (前提條件)安裝JDK,配置java的環境變數。
				* 安裝版(給客戶用)
				* 解壓版:解壓當前資料夾,目錄不要有中文。
				* 啟動伺服器:tomcat/bin/startup.bat(啟動伺服器)	
				* 訪問:http://192.168.24.215:8080訪問伺服器的主頁。
				* 關閉伺服器:點關閉按鈕,shutdown.bat
				
				
			* 常見啟動問題
				* 配置環境變數。C:\Program Files (x86)\Java\jdk1.6.0_16
					* 一閃而過,環境變數沒配置好。
					
				* 埠占用問題
					* java.net.BindException: Address already in use: JVM_Bind
					* 埠被佔用。
					
					* 解決問題:
						* 結束掉佔用埠的應用程式。
							* 找到佔用埠的應用程式。
							* 通過命令	netstat –ano,在工作管理員中結束程式。
							
						* 修改埠號。
							* 修改配置檔案了。
							* tomcat/conf/server.xml配置檔案
							<Connector port="80" protocol="HTTP/1.1" 
							   connectionTimeout="20000" 
							   redirectPort="8443" />
							
						* 有應用程式佔用80埠,用上邊的方式解決。
						* 有的WIN7系統自帶World wide web publish IIS服務,預設佔用80埠。
							* 如果有。去服務中,該手動啟動。
							
						* 概率非常小。作業系統佔用80埠。
							
			* Tomcat目錄結構
				* bin(**)			啟動項,關閉項。	
				* conf(*****)		裡面Tomcat配置檔案
				* lib(**)			伺服器執行使用的jar包
				* logs(***)		日誌檔案,執行時產生的日誌。
				* temp(**)		執行時臨時檔案
				* webapps(*****)	web applications(web的應用們)
				* work(*****)		JSP翻譯成Servlet程式
				
				
			* 如果動態的WEB資源,把WEB資源釋出到伺服器的webapps目錄下的時候,有固定的目錄結構。
				* 靜態的web資源
					* HTML、CSS、JAVASCRIPT
				* 動態的web資源	
					* 資料發生變化。例子:
					* Servlet/JSP	
					
			* 開發動態的WEB資源程式,目錄結構如下(必須記住)
				* Servlet/JSP只要包含,就稱為動態的WEB資源
				website
					|	---		存放	HTML CSS JAVASCRIPT JSP 圖片
					WEB-INF
						|
						web.xml		程式的入口。配置檔案(必須有的)
						classes		資料夾,名稱固定的  可選的
						lib			資料夾,名稱固定	可選的
				
			
			* Tomcat和MyEclipse的整合
				* window -- 選項 -- MyEclipse -- servers -- 選擇tomcat -- 選擇Enable -- 選擇tomcat根目錄
				* 配置JDK -- 選擇JDK。
				* 啟動伺服器。
				
				* 虛擬路徑(訪問路徑)
					* 預設和專案名稱是相同(不要去修改)。
					* WebRoot變成了虛擬路徑(訪問的路徑)
					
				* 直接複製專案,需要修改虛擬路徑。
					* 專案上右鍵 -- 選擇屬性 -- MyEclipse -- web -- 修改虛擬路徑。
				
				* 擴充套件
					* window -- show view -- servers 
					
			* Tomcat管理員的配置(瞭解)
				* 在tomcat/conf/tomcat-user.xml
				
					<role rolename="manager"/>
					<user username="admin" password="admin" roles="manager"/>
					
					
			* 如何部署WEB程式(三種)
				* 專案複製到webapps目錄下
				    按照myeclipse自動生成的目錄結構進行配置
					
				* 通過配置虛擬路徑的方式。
					* 直接修改配置檔案
						* 寫到tomcat/conf/server.xml
						* 找到<Host>標籤,配置到Host標籤的中間
						* 目的:通過配置,配置訪問路徑,準確找到c:\bb的檔案
							* <Context docBase="資料夾的真實目錄" path="虛擬路徑(訪問路徑)" ><Context>
							* <Context docBase="C:\bb" path="/itcast" ></Context>
							* 訪問:http://localhost:80/itcast
							
					* 自己編寫一個配置檔案(格式)(推薦使用)
						* 自定義xxx.xml結尾檔案,在$CATALINA_HOME/conf/[enginename]/[hostname]/ directory.目錄下。
						* 把xxx當成虛擬(訪問)路徑。
						
						* 在xml的檔案中編寫。
							* 在哪個目錄下:
								* $CATALINA_HOME/conf/[enginename]/[hostname]/ directory.
								* 如果找引擎的名稱和主機的名稱,在server.xml中找。
								* tomcat/conf/Catalina/localhost/ccc.xml
								
							* ccc.xml的檔案編寫什麼內容?
								* <Context docBase="C:\cc"></Context>
							* 訪問:http://localhost:80/ccc
							
			
			* 配置虛擬主機(瞭解)				
				
							
		* HTTP的協議
			* 啥是HTTP的協議:超文字傳輸協議。
			* 基於TCP連結的傳輸協議。
			* HTTP協議預設是80
			* 基於請求和響應的模式。(先有請求,後有響應)
				* www.baidu.com(訪問百度的伺服器)
				* 百度的首頁返回給我
			* 客戶端連上web伺服器後,若想獲得web伺服器中的某個web資源,
				需遵守一定的通訊格式,HTTP協議用於定義客戶端與web伺服器通迅的格式
				
				
			* 使用telnet命令,快速瞭解http協議。
			* 如果是win的系統,開啟telnet的命令。	
				
				
				啟動伺服器.
				cmd>telnet localhost 80  回車
				telnet命令有一個亂碼問題  解決亂碼.
				解決  ctrl+]  回車
				注意:命令列中輸入的內容不能寫錯,一旦寫錯了,不支援刪除。
				請求:
				
				GET /aa/1.html HTTP/1.1
				host:localhost
				輸入兩次回車
				
			* 使用telnet命令傳送了一次請求
				* 請求:
					GET /aa/1.html HTTP/1.1
					host:localhost
					
				* 響應:		
					HTTP/1.1 200 OK
					Server: Apache-Coyote/1.1
					ETag: W/"21-1416624196782"
					Last-Modified: Sat, 22 Nov 2014 02:43:16 GMT
					Content-Type: text/html
					Content-Length: 21
					Date: Sat, 22 Nov 2014 07:33:53 GMT
					
					<h1>hello java!!</h1>
					
			
			* HTTP協議的版本
				* HTTP/1.0
					* 連結後,只能獲取一個web資源。
					* 連結後,傳送請求,伺服器做出響應,連結立即斷開。
						GET /aa/1.html HTTP/1.0
						host:localhost	
					
				* HTTP/1.1(使用)
					* 連結後,可以獲取多個web資源。
					* 連結後,傳送請求,伺服器做出響應,連結不會立即斷開。
						再次傳送請求,直接有一段時間沒操作,自動斷開。
						GET /aa/1.html HTTP/1.1
						host:localhost
						
			* 請求:
				* 請求行
					* 請求方式
						* POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT、CONNECT
						* 常用post和get
						* 區別:
							* get把引數顯示在位址列上,安全級別低,不支援大資料。
							* post把引數封裝請求體中,安全級別高,支援大資料。
							
					* 請求地址
						* 請求資源
					* 協議版本
						* HTTP/1.1
				* 請求頭
					Accept: text/html,image/*    
					Accept-Charset: ISO-8859-1
					Accept-Encoding: gzip
					Accept-Language:zh-cn 
					Host: www.itcast.com:80
					If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT
					Referer: http://www.itcast.com/index.jsp
					User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
					Connection: close/Keep-Alive   
					Date: Tue, 11 Jul 2000 18:23:51 GMT	
					
					* 重要的頭
						* If-Modified-Since		必須和響應頭資訊一起來完成控制本地的快取。
						* Referer				當前的網頁的來源。(防止盜鏈)
						* User-Agent			判斷瀏覽器的版本(檔案下載的時候)
						
				* 空行
				* 請求體
					* 封裝post引數列表。
			
			* 響應
				* 響應行
					* 協議版本
						* HTTP/1.1
					* 狀態碼
						200 :請求成功處理,一切OK
						302 :請求重定向
						304 :伺服器端資源沒有改動,通知客戶端查詢本地快取
						404 :客戶端訪問資源不存在
						500 :伺服器內部出錯
						
					* 狀態碼描述
						
				* 響應頭
					Location: http://www.it315.org/index.jsp 
					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
					Content-Disposition: attachment; filename=aaa.zip
					Expires: -1
					Cache-Control: no-cache  
					Pragma: no-cache   
					Connection: close/Keep-Alive   
					Date: Tue, 11 Jul 2000 18:23:51 GMT
					
					* 重要的頭
						* Location					和302一起完成重定向。
						* Last-Modified				和請求頭If-Modified-Since一起控制快取。和狀態碼304
						* Refresh					完成頁面的定時跳轉
						* Content-Disposition 		設定檔案是以附件開啟
						
						Expires: -1
						Cache-Control: no-cache  
						Pragma: no-cache
						* 禁用快取(網銀系統)
						
				* 空行
				* 響應體
					* 存放真正的資料。


相關圖片:



相關文章