狂神Java Web (三)HTTP詳解
阿新 • • 發佈:2021-07-26
HTTP協議
1. 什麼是HTTP
HTTP(超文字傳輸協議)是一個簡單的請求-響應協議,通常執行在TCP之上。
- 文字:HTML,字串,
- 超文字:圖片、音樂、視訊、定位、地圖
- 預設埠:80 (HTTPS:443)
2. 兩個時代
- HTTP 1.0
- HTTP/1.0
- 客戶端可以與web服務端連線後,只能獲得一個web資源,斷開連線
- HTTP 2.0
- HTTP/1.1
- 客戶端與伺服器端連線後,可以獲得多個web資源
3. HTTP請求
- 客戶端 - 發請求(Request) - 伺服器
百度:
Request URL: https://www.baidu.com/index.html # 請求地址 Request Method: GET # get/post方法 Status Code: 200 OK # 狀態碼 200 Remote Address: 36.152.44.96:443 # 遠端地址
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
請求行:
- 請求行中的請求方式:GET
- 請求方式:Get / Post / HEAD / DELETE / PUT ...
- get:一次請求能夠攜帶的引數比較少,大小有限制,會在瀏覽器的URL位址列顯示資料內容。不安全,但高效。
- post:請求能夠攜帶的引數沒有限制,大小無限制,不會在瀏覽器URL中顯示,安全,不夠高效。
訊息頭:
- Accept: 告訴瀏覽器支援的資料型別
- Accept-Encoding: 支援哪種編碼格式 GBK UTF-8 GB2312 ISO-8859-1
- Accept-Language: 告訴瀏覽器的語言環境
- Cache-Control: 快取控制
- Connection: 告訴瀏覽器,請求完之後斷開還是保持連線
- HOST: 主機
4. HTTP響應
- 伺服器 - 響應 - 客戶端
百度:
Cache-Control: private # 快取控制 Connection: keep-alive # 保持連線 Content-Encoding: gzip Content-Type: text/html;charset=utf-8
響應體:
- Accept: 告訴瀏覽器支援的資料型別
- Accept-Encoding: 支援哪種編碼格式 GBK UTF-8 GB2312 ISO-8859-1
- Accept-Language: 告訴瀏覽器的語言環境
- Cache-Control: 快取控制
- Connection: 告訴瀏覽器,請求完之後斷開還是保持連線
- HOST: 主機
- Refresh: 告訴客戶端,多久重新整理一次
- Location: 讓網頁重新定位
響應狀態碼:
- 200 :請求響應成功
- 3xx :請求重定向
- 4xx :找不到資源 (資源不存在) 404
- 5xx :伺服器程式碼錯誤 500 , 502(閘道器錯誤)