day08 WEB

WEB 的學習筆記

   1.服務器

一 、網絡的架構

client/server : 客戶端/服務端

優點 : 交互性好,服務器壓力小。
缺點:客戶端更新了,下載。

browser/server : 瀏覽器端/服務器端

缺點:服務器壓力大。
優點:服務器更新就ok。

服務器的介紹

  • 原理:網絡編程。
  • 概念:
  • 硬件:就是一臺主機。
  • 軟件:安裝了服務器的軟件(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
Tomcat的 常見啟動問題
  • 配置環境變量。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目錄下。
                  
              * 通過配置虛擬路徑的方式。
                  * 直接修改配置文件
                      * 寫到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
                    * 禁用緩存(網銀系統)
                    
            * 空行
            * 響應體
                * 存放真正的數據。
            
        * 擴展:
            轉發:找班長借錢,他自己找富班長借錢,
            重定向:(找班長借錢,發送一次請求,回了我沒錢,返回狀態碼302,給副班長地址,再去找富班長借錢,又發送了一次)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,836評論 18 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,925評論 6 342
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發崗...
    時芥藍閱讀 42,340評論 11 349
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,738評論 18 399
  • 我還是愿意做那只慢慢爬的螞蟻 大半年前吧,工作失意,感情失意,前途迷茫,我決定停下來思考一下。 打小開始,其實我就...
    wood閱讀 368評論 0 2