JavaWeb第五講 Web核心基礎之HTTP協議
Web核心基礎之HTTP協議
HTTP簡介
對客戶端和伺服器端之間資料傳輸的格式規範,格式簡稱為“超文字傳輸協議”。HTTP是一個基於TCP/IP通訊協議來傳遞資料(HTML 檔案, 圖片檔案, 查詢結果等)。
主要特點:
-
簡單快速:客戶向伺服器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與伺服器聯絡的型別不同。由於HTTP協議簡單,使得HTTP伺服器的程式規模小,因而通訊速度很快。
-
靈活:HTTP允許傳輸任意型別的資料物件。正在傳輸的型別由Content-Type加以標記。
-
無連線:無連線的含義是限制每次連線只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。
-
無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連線傳送的資料量增大。另一方面,在伺服器不需要先前資訊時它的應答就較快。
-
支援B/S及C/S模式。
請求報文包括三部分:
-
請求行:包含請求方法,URI,HTTP版本協議
-
請求首部欄位
-
請求內容實體
響應報文包含三部分: -
狀態行:包含HTTP版本,狀態碼,狀態碼原因短語
-
響應首部欄位
-
響應內容實體
HTTP請求方式 -
GET :用於請求訪問已經被URI(統一資源識別符號)識別的資源,可以通過URL傳參給伺服器
-
POST:用於傳輸資訊給伺服器,主要功能與GET方法類似,但一般推薦使用POST方式
-
PUT:傳輸檔案,報文主體中包含檔案內容,儲存到對應URI位置
-
HEAD:獲得報文首部,與GET方法類似,只是不返回報文主體,一般用於驗證URI是否有效
-
DELETE:刪除檔案,與PUT方法相反,刪除對應URI位置的檔案
-
OPTIONS:查詢響應URI支援的HTTP方法
HTTP協議狀態解析
200:請求被正常處理
204:請求被受理但沒有資源可以返回
206:客戶端只是請求資源的一部分,伺服器只對請求的部分資源執行GET方法,相應報文中通過Content-Range指定範圍的資源。
301:永久性重定向
302:臨時重定向
303:與302狀態碼有相似功能,只是它希望客戶端在請求一個URI的時候,能通過GET方法重定向到另一個URI上
304:傳送附帶條件的請求時,條件不滿足時返回,與重定向無關
307:臨時重定向,與302類似,只是強制要求使用POST方法
400:請求報文語法有誤,伺服器無法識別
401:請求需要認證
403:請求的對應資源禁止被訪問
404:伺服器無法找到對應資源
500:伺服器內部錯誤
503:伺服器正忙
HTTP相比HTTPS的缺點
-
通訊使用的明文未加密,內容可能被竊聽,也就是被抓包分析
-
不驗證通訊方身份,可能遭到偽裝
-
無法驗證報文完整性,可能被篡改
-
Https就是Http加上加密處理(一般是SSL安全通訊線路)+認證+完整性保護
HTTP協議實現流程
相關文章
- Web基礎與HTTP協議WebHTTP協議
- WEB基礎及HTTP協議WebHTTP協議
- HTTP協議基礎HTTP協議
- 前端基礎之HTTP協議介紹前端HTTP協議
- JavaWeb Servlet Http協議 HttpServletRequestJavaWebServletHTTP協議
- 網路基礎之HTTP協議HTTP協議
- WEB伺服器之HTTP協議Web伺服器HTTP協議
- Django之web應用與http協議DjangoWebHTTP協議
- 【021】JavaWeb面試題(二):Http協議JavaWeb面試題HTTP協議
- python爬蟲基礎與http協議Python爬蟲HTTP協議
- CTFHUB技能樹之WEB前置技能HTTP協議WebHTTP協議
- 01 前端HTTP協議(圖解HTTP) 之 網路基礎前端HTTP協議圖解
- HTTP協議基礎及發展歷史HTTP協議
- 基礎篇-http協議《http 簡介、url詳解、request》HTTP協議
- web應用與http協議WebHTTP協議
- 02 前端HTTP協議(圖解HTTP) 之 簡單的HTTP協議前端HTTP協議圖解
- 詳解Tomcat核心配置、http協議TomcatHTTP協議
- 重識TCP/IP協議族與HTTP基礎TCP協議HTTP
- HTTP協議之:HTTP/1.1和HTTP/2HTTP協議
- Web快取 – HTTP協議快取Web快取HTTP協議
- Java安全基礎之Java Web核心技術JavaWeb
- 05 前端HTTP協議(圖解HTTP) 之 HTTP首部前端HTTP協議圖解
- CTFhub-WEB前置-http協議闖關WebHTTP協議
- 深入理解 Web 協議 (三):HTTP 2Web協議HTTP
- python+pytest介面自動化(2)-HTTP協議基礎PythonHTTP協議
- day48:django前戲之HTTP協議&自定義web框架DjangoHTTP協議Web框架
- #「HTTP 協議」90%的java程式設計師都看得懂的最全HTTP 協議講解HTTP協議Java程式設計師
- 基於HTTP的功能追加協議HTTP協議
- CTFHub web前置技能HTTP協議請求方式WebHTTP協議
- 淺顯易懂的前端知識點(二)——HTTP協議基礎前端HTTP協議
- http協議HTTP協議
- HTTP 協議HTTP協議
- JavaWeb基礎(day15)( http + tomcat + servlet + 響應)JavaWebHTTPTomcatServlet
- 真正“搞”懂HTTP協議14之HTTP3HTTP協議
- 真正“搞”懂HTTP協議13之HTTP2HTTP協議
- 真正“搞”懂HTTP協議05之What's HTTP?HTTP協議
- 協議類基礎——SPI協議
- 04 前端HTTP協議(圖解HTTP) 之 HTTP狀態碼前端HTTP協議圖解