什么是Web
web(World Wide Web)即全球廣域網,也稱為萬維網,它是一種基於超文本和HTTP的、全球性的、動態交互的、跨平台的分布式圖形信息系統。是建立在Internet上的一種網絡服務,為瀏覽者在Internet上查找和瀏覽信息提供了圖形化的、易於訪問的直觀界面,其中的文檔及超級鏈接將Internet上的信息節點組織成一個互為關聯的網狀結構
web技術的依賴
Web技術目前依賴HTTP協議(應用層協議)及網絡。
服務器分類:
服務器分為硬件服務器和軟件服務器。
硬件服務器:就是一台電腦.
軟件服務器: 為軟件提供服務的程序.軟件服務器依托硬件服務器.開發的程序又由軟件服務器提供服務器.
軟件服務器:
tomcat
jetty
jboss
weblogic
Tomcat服務器
tomcat目錄
核心jar包
annotations-api.jar 注解相關jar包
el-api.jar el表達式相關jar包
jasper-el.jar jsp與el表達式相關jar包
jasper.jar jsp 相關jar包
jaspic-api.jar jsp 相關jar包
jsp-api.jar jsp 相關jar包
servlet-api.jar servlet相關jar包
websocket-api.jar webSocket 相關jar包 (tomcat 7 之后新加入)
HTTP
HTTP簡介
WEB 瀏覽器與 WEB 服務器之間的一問一答的交互過程必須遵循一定的規則,這個規則就是 HTTP 協議。
HTTP 是 HyperText Transfer Protocol(超文本傳輸協議)的簡寫,它是 TCP/IP 的一個應用層協議,用於定義 WEB 瀏覽器與 WEB 服務器之間交換數據的過程及數據本身的格式。HTTP 協議是 WEB 開發的基礎。
HTTP 協議版本:HTTP/1.0 和 HTTP/1.1。
區別:
HTTP/1.0:瀏覽器的每次請求都需要與服務器建立一個 TCP 連接,服務器處理請求
結束后立即斷開連接
HTTP/1.1:支持持久連接,在同一個 tcp 連接中可以傳送多個 HTTP 請求和響應。
HTTP協議特點
1、HTTP 協議是基於請求/響應模型的協議,請求和響應必須成對,先有請求后有響應。
2、HTTP 協議默認的端口是 80。例如:http://www.bjsxt.com:80
3、簡單快速:當客戶端向服務器端發送請求時,只是簡單的填寫請求路徑和請求方法即可,然后就可以通過瀏覽器或其他方式將該請求發送就行了。比較常用的請求方法有三種,分別是:GET、POST。不同的請求方法使得客戶端和服務器端聯系的方式各不相同。因為HTTP 協議比較簡單,所以 HTTP 服務器的程序規模相對比較小,從而使得通信的速度非常快。
4、靈活:Http 協議允許客戶端和服務器端傳輸任意類型的數據對象。這些不同的類型由Content-Type 標記。
5、無狀態:HTTP 協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味着如果后續處理需要前面的信息,則它必須重傳,服務器不知道客戶端是什么狀態。
6、明文傳輸,不安全。
GET 與 POST 方法
1、請求方法 GET 與 POST 的區別
2、Get 方式將請求參數追加在 URL 后面,通過URL 提交數據,數據在 URL 中可以看到;POST 方式,數據放置在Form 內提交。
3、GET 方式提交的數據最多只能有 1024 字節,而POST 則沒有此限制。
4、安全性問題。正如在(2)中提到,使用 Get 的時候,參數會顯示在地址欄上,而 Post 不會。所以,如果這些數據不是中文數據而且是非敏感數據,那么使用 get;反之如果是中文數據而且包含敏感數據,那么還是使用 post 為好。
5、如何區分GET 請求和 POST 請求
只有表單設置為 method=”post”才是 POST 請求,其它的都是 get 請求。常見的 GET請求有:地址欄直接訪問、超鏈接請求<img src="" />等
當從服務器獲取數據時,使用GET請求,提交數據給服務器時使用POST請求,刪除數據時使用DELETE請求,修改數據時使用PUT請求.
HTTP 請求消息
1、HTTP 請求構成
Http 協議由 Http 請求和 Http 響應組成。客戶端連上服務器后,向服務器請求某個 web 資源的請求,稱之為客戶端向服務器發送了一個 HTTP 請求。一個完整的 HTTP 請求包括:請求行、請求頭、請求體(請求正文)
請求行:位於請求消息的第一行,格式:請求方式 資源路徑 HTTP 版本號
請求頭:客戶端發送給服務器的一些基本信息,使用鍵值對 key:value 表示。從第二行開始到 Request Headers 結束
請求體:當請求方式是 post 時,請求體中有請求的參數,每一項數據都用 key=value 表示,例如:username=zhangsan&userpwd=123456.
如果請求方式為 get,那么請求參數不會出現在請求體中,會拼接在 url 地址后面,如:http://localhost:8080...?username=zhangsan&userpwd=123
2、查看 HTTP 請求
3、HTTP 請求頭參數說明
參數名 | 描述 |
---|---|
Referer | 瀏覽器通知服務器,當前請求來自何處。如果是直接訪問,則不會有這個頭。 |
Cookie | 與會話有關技術,用於存放瀏覽器緩存的 cookie 信息。 |
User-Agent | 瀏覽器通知服務器,客戶端瀏覽器與操作系統相關信息 |
Connection | 保持連接狀態。Keep-Alive連接中,close 已關閉 |
Host | 請求的服務器主機名 |
Content-Length | 請求體的長度 |
Content-Type | 如果是 POST 請求,會有這個頭,默認值為 application/x-www-formurlencoded. 表示請求體內容使用 url 編碼 |
Accept | 瀏覽器可支持的 MIME 類型,它是文件類型的一種描述格式。 MIME 格式:大類型/小類型[;參數],例如: text/html ,html 文件 text/css,css 文件 text/javascript,js 文件 |
Accept- Encoding | 瀏覽器通知服務器,它支持的數據壓縮格式。如:GZIP 壓縮 |
Accept-Language | 瀏覽器通知服務器它的語言環境 |
HTTP 響應消息
1、HTTP 響應構成
一個完整的 HTTP 響應包括:響應行、響應頭、響應體
響應行:位於響應消息的第一行,格式:HTTP 版本號 狀態碼 狀態描述信息
例如:HTTP/1.1 200 OK
響應頭:服務器返回給客戶端的信息,使用鍵值對 key:value 表示。從第二行開始到 Response Headers 結束.
響應體:響應體是服務器回寫給瀏覽器的頁面正文,瀏覽器將正文加載到內存,然后解析渲染,顯示頁面內容常用狀態碼:
200(正常)表示一切正常,返回的是正常請求結果
302/307(臨時重定向)指出被請求的文檔已被臨時移動到別處,此文檔的新的URL 在 Location 相應頭中給出.
304(未修改)表示請求的資源沒有改變,客戶機可以直接訪問本地緩存的資源,無需到服務器請求。
404(找不到)服務器上不存在客戶機所請求的資源。
500(服務器內部錯誤)服務器端的程序發生錯誤。
4、查看 HTTP 響應
使用 POST 方式提交一個表單(用戶名,密碼),得到的HTTP 響應。
5、HTTP 響應頭參數說明
常見響應頭 | 描述 |
---|---|
Location | 服務器通過這個頭,來告訴瀏覽器跳轉到哪里。 |
Content-Type | 響應正文的類型(MIME 類型) 取值如:text/html;charset=UTF-8 |
Content-Disposition | 通知瀏覽器以下載方式解析正文 取值如:attachment;filename=xx.zip |
Set-Cookie | 與會話相關技術。服務器向瀏覽器寫入 cookie |
Content-Encoding | 服務器通過這個頭,告訴瀏覽器,數據的壓縮格式 取值如:gzip |
Content-length | 響應正文的長度 |
Refresh | 定時刷新,格式:秒數;url=路徑 取值如:3;url=www.bjsxt.com //3 秒刷新頁面到 www.bjsxt.com |