Tomcat、http、get/post
* 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
* 禁用快取(網銀系統)
* 空行
* 響應體
* 存放真正的資料。
相關圖片:
相關文章
- HTTP方法_GET 對比 POSTHTTP
- HTTP Get,Post請求詳解HTTP
- HTTP中GET與POST的區別HTTP
- HTTP Method小結(GET,POST.etc)HTTP
- Java Http Get Post 請求工具類JavaHTTP
- [前端 · 面試 ]HTTP 總結(五)—— GET 和 POST前端面試HTTP
- http中的get和post的區別HTTP
- java傳送http的get、post請求JavaHTTP
- Http get,post,soap協議的區別HTTP協議
- node.js http.get 和http.post 資料Node.jsHTTP
- http請求之get和post的區別HTTP
- HTTP協議類POST 和GET的區別HTTP協議
- HTTP中Get與Post有什麼區別?HTTP
- HTTP協議 GET和POST的左右互博HTTP協議
- 淺談HTTP中Get與Post的區別HTTP
- Http協議中Get和Post的淺談HTTP協議
- spring的filter與tomcat的get和postSpringFilterTomcat
- Get/Post
- http請求中get和post方法的區別HTTP
- HTTP協議GET和POST請求的區別HTTP協議
- 淺談HTTP中Get與Post的區別-javaHTTPJava
- HTTP協議中請求方法的Get和PostHTTP協議
- jquery GET POSTjQuery
- About post and get
- Android Http請求框架一:Get 和 Post 請求AndroidHTTP框架
- **對比$_POST、$GLOBALS['HTTP_RAW_POST_DATA']和file_get_contents('php://input')HTTPPHP
- http和https的區別/get和post的區別HTTP
- http協議中,“get”和“post”的區別是什麼HTTP協議
- 網路通訊5:執行HTTP的GET/POST請求HTTP
- 你真的瞭解HTTP中GET與POST的區別嗎?HTTP
- C# 之HTTP請求get,post帶重試引數C#HTTP
- 淺談HTTP中GET和POST請求方式的區別HTTP
- atitit.http get post的原理以及框架實現java phpHTTP框架JavaPHP
- 3. Post and Get
- 99%的人都理解錯了 HTTP 中 GET 與 POST 的區別HTTP
- 關於http get和form表單post提交資料大小限制HTTPORM
- 99%的人都理解錯了HTTP中GET與POST的區別HTTP
- Golang:使用go-resty/resty傳送http請求get和postGolangRESTHTTP