JavaWeb_day01 HTTP協議 HTTP(HyperText Transfer Protocol)超文本傳輸協議,是TCP/IP的應用層協議,用於定義WEB瀏覽器與WEB伺服器之間交換數據的過程以及數據本身的格式. Http協議版本號 : HTTP/1.0 HTTP/1.1 交互步驟 : ...
JavaWeb_day01
HTTP協議
HTTP(HyperText Transfer Protocol)超文本傳輸協議,是TCP/IP的應用層協議,用於定義WEB瀏覽器與WEB伺服器之間交換數據的過程以及數據本身的格式.
Http協議版本號 : HTTP/1.0 HTTP/1.1
交互步驟 : 基於HTTP協議的客戶/伺服器模式的信息交換過程,它分四個過程,建立連接、發送請求信息、發送響應信息、關閉連接。
HTTP/1.1新特性 :
- 在一次TCP/IP連接上可以傳送多個HTTP請求和響應。
- 多個請求和響應過程可以重疊
- 增加了更多的請求頭和響應頭,比如Host等
HTTP請求組成:
HTTP響應
HTTP->post和get請求方式詳解
- get把參數顯示在地址欄上,安全級別低,不支持大數據。
- post把參數封裝請求體中,安全級別高,支持大數據。
HTTP常用狀態碼
200(正常) : 表示一切正常,返回的是正常請求結果
302/307(臨時重定向) : 指出被請求的文檔已被臨時移動到別處,此文檔的新的URL在Location響應頭中給出。
304(未修改) : 表示客戶機緩存的版本是最新的,客戶機可以繼續使用它,無需到伺服器請求。
404(找不到) : 伺服器上不存在客戶機所請求的資源。
500(伺服器內部錯誤) : 伺服器端的程式發生錯誤
TomCat的配置
Tomcat:實現了JSP/Servlet規範,輕量級的伺服器,Servlet容器。(雄貓)
1.解壓tomcat
2.配置JAVA_HOME: 伺服器需要,指向JDK的路徑
3.修改埠號 : 在TomCat->conf->server.xml中修改,修改埠是為了防止埠衝突,修改為http預設埠80
4.eclipse配置tomcat->windows->preferences->搜索server
5.創建server視圖
TomCat目錄結構
URL(協議+主機:埠+資源地址)
- server 2.5版本練習
請求消息頭:(做好筆記,記住常用的頭)
作用:向伺服器端傳遞附加信息(暗號指令)
- Accept:告知伺服器,客戶端可以接受的數據類型(MIME類型)
- 文件系統:通過文件的擴展名區分不同的文件的。txt jpeg
- MIME類型:大類型/小類型。
- txt--->text/plain
- html---->text/html
js---->text/javascript (具體對應關係:Tomcat\conf\web.xml)
- Accept-Encoding:告知伺服器,客戶端可以接受的壓縮編碼。比如gzip
- Accept-Language:告知伺服器,客戶端支持的語言。
Referer:告知伺服器,從哪個頁面過來的。
作用:統計廣告的投放效果;防止盜鏈。
- Content-Type:告知伺服器,請求正文的MIME類型
- 預設類型:application/x-www-form-urlencoded(表單enctype屬性的預設取值)
- 具體體現:username=abc&password=123
- 其他類型:multipart/form-data(文件上傳時用的)
- If-Modified-Since:告知伺服器,當前訪問的資源,緩存中的文件的最後修改時間。
- User-Agent:告知伺服器,瀏覽器的類型
- Content-Length:請求正文的數據長度
- Cookie:(*****重要)會話管理有關
Servlet
Servlet是一個運行在伺服器端的Java小程式,通過HTTP協議用於接收來自客戶端請求,併發出響應。
Servlet中的方法
public void service(ServletRequest req,ServletResponse res)
throws ServletException,java.io.IOException
ServletRequest req:代表著請求對象,該對象中有HTTP協議的請求部分的所有內容。它的實現類由伺服器提供的,封裝數據也是伺服器來做的。
ServletResponse res:代表著響應對象,該對象中由我們寫數據(HTTP協議的響應部分)進去。它的實現類也是由伺服器提供的。
service:由伺服器調用,每次請求都會調用一次。伺服器採用的是多線程機制。
Servlet執行過程
1.客戶端訪問Tomcat訪問地址:http://localhost:8080/firstServlet/hello
2.Tomcat解析客戶端的訪問地址
3.Tomcat找firstServlet應用。
4.找之間先搜索web.xml
5.接著就找到自己的類。
6.執行service
7.給用戶看到結果
Servlet生命周期
- 誕生:用戶第一次訪問時,由容器創建他的實例。
- 活著:一旦創建就駐留記憶體(單例)。每次用戶的訪問,容器都會調用sevice方法發出響應(多線程)
- 死亡:應用被卸載或者Tomcat關閉了