Http協議及Tomcat服務器

一、http協議

  • http協議

它其實就是約定了客戶端和服務器端在執行網絡交互動作的時候一種規則。 執行http請求的時候,遵守的一種規范

http://www.baidu.com / 
  • http協議版本

使用最廣泛的是1.1的版本。 它是一種請求 - 響應 模型的協議。

1.0
    
    請求 - 響應完畢后,連接關閉  , 如果還想接著請求,必須得重新連接

1.1

    請求 - 響應完畢后,連接未關閉 ,還可以繼續發起請求

Http請求背后細節

http協議傳輸的數據包含三個部分 , 信息行 、 信息頭 、 信息體

* 請求 

    請求行 

    請求頭

    請求體

* 響應

    響應行

    響應頭

    響應體

GET請求

提交的數據:
Get請求
請求行 : 
    GET /LoginDemo/login?username=admin&password=123456 HTTP/1.1
    表示使用Get請求 , 表示請求什么路徑地址  ,表示使用什么版本的協議

請求頭 

    Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
    Referer: http://localhost:8080/LoginDemo/login.html
    Accept-Language: zh-CN
    User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
    Accept-Encoding: gzip, deflate
    Host: localhost:8080
    Connection: Keep-Alive


    Accept : 聲明客戶端可以接收什么類型的數據
    Referer : 表示請求從哪里過來的
    Accept-Language  : 表示客戶端支持的語言
    User-Agent  : 表示客戶端的信息
    Accept-Encoding  : 表示客戶端支持的壓縮格式
    Host : 表示主機地址
    Connection  : 表示連接狀態。
    
請求體:

    GET方式的請求,沒有請求體。 因為數據都是拼接到了地址上去了。


    獲取到的數據: 
Get響應.png
響應行

    HTTP/1.1 200 OK

    表示服務器也支持1.1的版本協議 , 對這次請求處理的狀態碼是200 ,OK 

響應頭

    Server: Apache-Coyote/1.1  : 服務器版本
    Content-Length: 75  : 返回的數據長度
    Date: Sun, 21 May 2017 07:09:28 GMT  : 響應時間

響應體

    login failed ~ please use  username : itheima , password : 10086 try again~

POST請求

提交的數據

Post請求.png
請求行

    POST /LoginDemo/login HTTP/1.1  
    意思和get請求的意思一樣,只不過這里的地址再也不跟數據了。

請求頭

    Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
    Referer: http://localhost:8080/LoginDemo/login.html
    Accept-Language: zh-CN
    User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
    Content-Type: application/x-www-form-urlencoded
    Accept-Encoding: gzip, deflate
    Host: localhost:8080
    Content-Length: 29
    Connection: Keep-Alive
    Cache-Control: no-cache

    Content-Type :  其實就是說明提交上去的數據是什么類型數據 。  是一個經過url編碼的form表單數據
    Content-Length :  提交的數據長度
    Cache-Control : 表示再次請求的時候,是否讀緩存。 

請求體

    username=itheima&password=123

    是以流的形式寫給服務器的。 

響應數據

Post響應.png
    響應行

    響應頭

    響應體

        HTTP/1.1 200 OK
        Server: Apache-Coyote/1.1
        Content-Length: 75
        Date: Sun, 21 May 2017 07:32:12 GMT
        
        login failed ~ please use  username : itheima , password : 10086 try again~

GET 和 POST方式的區別

  • GET

    1. 它的地址會帶上數據, http://www.HiWeb.com?name=aa&age=18

    2. 能夠帶的數據有限制。

    3. 由于數據會拼接到地址欄上面,所以不安全

  • POST

    1. 它的地址不帶數據,就是很干凈的地址而已。

    2. 帶的數據沒有限制。 (因為數據是以流的方式寫過去。)

    3. 由于數據沒有拼接,所以數據比較安全

    4. 額外多兩個頭字段 Content-Type Content-Length.

軟件架構

  • C/S架構

    client【客戶端】 / server【服務器端】

    如: QQ 、微信、 迅雷 、 LOL

必須得安裝一個客戶端,才能和服務器對接。

優點:

    1.  視覺比較炫酷 、 用戶體驗好
    2.  一部分資源|數據放在了本地 、減輕服務器壓力

缺點: 

    1. 占用本地硬盤空間
    2. 更新比較困難、 服務器只要一更新,客戶端也得跟著更新
    3. 平臺、系統環境的限制
  • B/S架構

    browser【瀏覽器】 / server【服務器端】

    如: 網頁游戲 、 網頁QQ 、

通過瀏覽器來和服務器對接

優點:

    1. 不用安裝 、只要有瀏覽器就行。 

    2. 一般也不用做更新。 

    3. 不受平臺限制 、 不占用本地的空間。


缺點:


    1. 用戶體驗不好。  比較卡。 

    2. 服務器壓力比較大、因為所有的資源都放在服務器。 

Web資源

就是網絡上的任意資源都可稱之為web資源 、 就是服務器里面所有東西,都可以看做是web資源。

  • 靜態資源

不管什么時候來,什么情況下見到的數據永遠不變。 圖片、 html網頁、 音樂、 ....

  • 動態資源

根據不同的請求情況 、不同的時機、 顯示出來的數據內容不一樣、 那么這些產生變化的數據就稱之為動態資源。 jsp / servlet

常見的服務器軟件:

Tomcat  : Apache 提供的一個免費小型服務器軟件 , 支持JSP/Servlet 規范

WebLogic  : Bea公司提供的收費大型服務器軟件 , 支持EE的所有規范

WebSphere : IBM公司收費大型服務器軟件 ,  支持EE的所有規范

JBoss  :  一個基于J2EE開放源碼的服務器軟件 核心不支持 JSP/Servlet ,一般與tomcat 或者 jetty配合使用

安裝Tomcat

1. 解壓 

2. 進入tomcat /bin  , 點擊startup.bat

3. 如果見到一閃而過的情形, 那么打開dos窗口,然后拖拽startup.bat進去后,回車,即有提示,一般都是沒有配置環境變量  JAVA_HOME   CATALINA_HOME : 其實就是tomcat的根目錄路徑。

4. 配置好之后,在執行即可

5. 打開瀏覽器,然后輸入地址  http://localhost:8080,頁面成功顯示即為安裝成功

Tomcat目錄解釋

Tomcat目錄.png
backup : 備份
##bin : 啟動和停止的指令
##conf : 配置

    server.xml  web.xml catalina
lib : tomcat運行必須的jar
logs : tomcat運行的日志
temp : 臨時文件
##webapps : 項目發布的地方,一般配合eclipse使用 。 
work : 這里是存放jsp 翻譯成的java文件  --- class文件
##wtpwebapps : 這是eclipse工具默認發布項目存放的位置。 與上面的webapps 意思一樣。

新建Web項目

1. 修改工作空間編碼 為 UTF-8

2. 配置tomcat環境 。 以后只要在這里運行項目,那么項目就會自己發布到tomcat里面。


3. 新建動態web工程

4. 在webContent下面新建一個html網頁

5. 右鍵工程  --- run on server

6. 在瀏覽器里面訪問該網頁 ,路徑如下:

    http://localhost:8080/項目名/資源名

    http://localhost:8080/HiWeb/hi.html
  • run as Server 背后做了什么工作?

對我們的項目進行編譯處理(java) ,然后拷貝項目到 tomcat根目錄\wtpwebapps 目錄下。

localhost : 本機

8080 : 端口

localhost:8080 : 找我們這臺電腦上端口號是8080 的那一個軟件 tomcat

http://localhost:8080/HiWeb/hi.html : 找到tomcat 位置后,進入那個默認的目錄 wtpwebapps 里面有一個文件夾 HiWeb 文件夾里面有一個文件 hihtml

得出一個結論:

一個項目其實就是tomcat\wtpwebapps | webapps 下面的一個文件夾。 

http://localhost:8080/文件夾名字/資源名

發布Web項目

  • 問題 : 如何發布一個項目(文件夾)到tomcat去呢 ?

1. 拷貝這個文件夾到tomcat\webapps

        訪問路徑 : localhost:8080/文件夾名稱/文件名稱 即可 

2. 設置虛擬路徑

a . 在tomcat /conf/server.xml Host標簽里面,寫上以下內容

虛擬路徑1.png
             <!-- 
             http://localhost:8080/HiWeb02/icon_13.jpg
             docBase : 項目路徑
             path : 就是這個項目映射出來的路徑,這個路徑并不存在,所以稱之為虛擬路徑 -->
            <Context docBase="D:\img08" path="/HiWeb02"/>

b . 在 tomcat / conf/catalina/localhost設置

虛擬路徑2.png
            1. 在該目錄下,新建一個文件heima13.xml,這個文件必須是xml文件。 文件的名稱就是我么你的虛擬路徑, 當然可以隨便寫。
            2. xml的文件內容如下: 

                <?xml version="1.0" ?>
                <Context docBase="E:\html\"/>

            3. 那么文件的名稱就是設置的虛擬路徑 ,訪問的格式如下: 

                http://localhost:8080/文件名/資源名稱

                http://localhost:8080/heima13/aa.txt
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 一、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,413評論 6 152
  • Http協議詳解 標簽(空格分隔): Linux 聲明:本片文章非原創,內容來源于博客園作者MIN飛翔的HTTP協...
    Sivin閱讀 5,251評論 3 82
  • 一.Web概述 1.Web發展歷史 原始年代1990-1992:1990年,HTML標記語言的出現標志Web開發時...
    賈里閱讀 1,335評論 0 5
  • 今天是破殼日真正的滿20歲 離過年還剩20% 碎碎念 總是被說長不大 還是那樣 也會說別人 你怎么不變化 被侄女生...
    DomyL閱讀 221評論 0 0