http,htpps,以及它們的區別的筆記


URI是uniform resource identifier,統一資源標識符,用來唯一的標識一個資源。
URL是uniform resource locator,統一資源定位器,它是一種具體的URI,即URL可以用來標識一個資源,而且還指明瞭如何locate這個資源。

1.http

1.1 定義

HTTP–Hyper Text Transfer Protocol,是基於 TCP/IP 的應用層協議的超文本傳輸協議。HTTP協議定義Web客戶端如何從Web服務器請求Web頁面,以及服務器如何把Web頁面傳送給客戶端。HTTP協議採用了請求/響應模型。
特點:
1.1.1 無狀態:事務處理沒有記憶能力。當客戶端一次HTTP請求完成以後,客戶端再發送一次HTTP請求,HTTP並不知道當前客戶端是一個”老用戶“。Cookie可以解決。
在這裏插入圖片描述

1.2 工作流程

1.2.1 客戶端發送一個HTTP請求,說明客戶端想要訪問的資源和請求的動作。
1.2.2 服務端收到請求之後,處理請求,並根據請求做出相應的動作訪問服務器資源,最後通過發送HTTP響應把結果返回給客戶端。
1.2.3 其中一個請求的開始到一個響應的結束稱爲事務,當一個事物結束後還會在服務端添加一條日誌條目。

http分爲請求報文和響應報文

1.3 HTTP請求

HTTP請求報文由請求行、請求頭、請求正文三部分組成
狀態行:包括請求方法Method、資源路徑URL、協議版本Version;
請求頭:包括一些訪問的域名、用戶代理、Cookie等信息;
請求正文:就是HTTP請求的數據。
在這裏插入圖片描述
補充:
根據HTTP標準,HTTP請求可以使用多種請求方法Method。
HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
現在大多數協議版本爲http/1.1

1.3.1 GET(獲取) 訪問服務器的資源。請求指定的頁面信息,並返回實體主體。 用於請求訪問已經被URI(統一資源標識符)識別的資源,可以通過URL傳參給服務器。
1.3.2 HEAD 獲取服務器文檔的首部。類似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭
1.3.3 POST(修改) 向服務器發送要修改的數據。向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST 請求可能會導致新的資源的建立和/或已有資源的修改。
1.3.4 PUT(上傳) 向服務器上傳資源
1.3.5 DELETE(刪除) 刪除服務器的資源
1.3.6 CONNECT HTTP/1.1協議中預留給能夠將連接改爲管道方式的代理服務器。
1.3.7 OPTIONS 允許客戶端查看服務器的性能。查詢相應URI支持的HTTP方法。
1.3.8 TRACE 回顯服務器收到的請求,主要用於測試或診斷。

1.4 HTTP響應

HTTP響應由三部分組成:狀態行、響應頭、響應正文;
狀態行:包括協議版本Version、狀態碼Status Code、迴應短語;

響應頭:包括搭建服務器的軟件,發送響應的時間,迴應數據的格式等信息;

響應正文:就是響應的具體數據。
在這裏插入圖片描述
補充:

1xx:指示信息–表示請求已接收,繼續處理
2xx:成功–表示請求已被成功接收、理解、接受
3xx:重定向–要完成請求必須進行更進一步的操作
4xx:客戶端錯誤–請求有語法錯誤或請求無法實現
5xx:服務器端錯誤–服務器未能實現合法的請求
200—OK/請求已經正常處理完畢
301—/請求永久重定向
302—/請求臨時重定向
304—/請求被重定向到客戶端本地緩存
400—/客戶端請求存在語法錯誤
401—/客戶端請求沒有經過授權
403—/客戶端的請求被服務器拒絕,一般爲客戶端沒有訪問權限
404—/客戶端請求的URL在服務端不存在
500—/服務端永久錯誤
503—/服務端發生臨時錯誤

2.https

1.1 定義

是以安全爲目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。HTTPS在HTTP的基礎上加入了SSL協議,SSL依靠證書來驗證服務器的身份,併爲瀏覽器和服務器之間的通信加密。

1.2 工作流程

1.2.1 客戶使用https的URL訪問Web服務器,要求與Web服務器建立SSL連接。

1.2.2 Web服務器收到客戶端請求後,會將網站的證書信息(證書中包含公鑰)傳送一份給客戶端。

1.2.3 客戶端的瀏覽器與Web服務器開始協商SSL連接的安全等級,也就是信息加密的等級。

1.2.4 客戶端的瀏覽器根據雙方同意的安全等級,建立會話密鑰,然後利用網站的公鑰將會話密鑰加密,並傳送給網站。

1.2.5 Web服務器利用自己的私鑰解密出會話密鑰。

1.2.6 Web服務器利用會話密鑰加密與客戶端之間的通信。
在這裏插入圖片描述

3.區別

3.1 HTTP 的URL 以http:// 開頭,而HTTPS 的URL 以https:// 開頭
3.2 HTTP 是不安全的,而 HTTPS 是安全的
3.3 HTTP 標準端口是80 ,而 HTTPS 的標準端口是443
3.4 在OSI 網絡模型中,HTTP工作於應用層,而HTTPS 的安全傳輸機制工作在傳輸層
3.5 HTTP 無法加密,而HTTPS 對傳輸的數據進行加密
3.6 HTTP無需證書,而HTTPS 需要CA機構wosign的頒發的SSL證書

參考文章
https://www.cnblogs.com/ranyonsue/p/5984001.html
https://blog.51cto.com/13570193/2108347
https://www.cnblogs.com/Java3y/p/8444033.html
https://www.cnblogs.com/sunny-sl/p/6529830.html
https://blog.csdn.net/t8116189520/article/details/80037276
https://www.cnblogs.com/wqhwe/p/5407468.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章