【必學】HTTP與HTTPS區別與聯繫

一、HTTP協議解析

1. 原理

HTTP(HyperText Transfer Protocal),超文本傳輸協議,屬於TCP/IP協議族中的應用層協議,端口號80,用於保證B/S架構中瀏覽器與萬維網服務器交換信息的統一性。其遵循的模型是請求/響應模型。

2. 抓包深入理解Request和Response

POST /dvwa/login.php HTTP/1.1                                          //請求行
Host: 172.16.128.5                                                     //請求頭
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://172.16.128.5/dvwa/login.php
Cookie: security=high; PHPSESSID=42646081f74eb6fc613b3314ef5d61b7
DNT: 1
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 41
                                                                        //空白行
username=12345&password=12345&Login=Login                               //請求正文

1. 請求行

(1)請求方法

         GET:獲取請求頁面的指定信息(以實體的格式)

         HEAD:獲取請求頁面的響應頭,效率比GET高,多用於掃描工具中用於探測資源的存在性

         POST:類似於GET,但可以向服務器發送不受長度限制的數據,不顯示到瀏覽器上,安全性比GET高

         PUT:創建或替換資源,大部分情況被禁用

         DELETE:刪除資源,大部分情況被禁用

         TRACE:回顯服務器收到的請求

         CONNECT:動態切換到隧道的代理

         OPTIONS:請求資源的可選項,或瞭解服務器性能

(2)請求的資源

(3)HTTP版本

HTTP目前最新版本是1.1,是一種無狀態的協議,即每次瀏覽器發起請求,服務器響應後就斷開連接,對服務器的性能和安全性有直接關係。

2. 請求頭

(1)Host:指定被請求資源的主機和端口號

(2)User-Agent:客戶端瀏覽器信息,操作系統信息及其他屬性信息

(3)Accept:客戶端指定接收哪些MIME類型的信息

(4)Cookie:非常重要的請求信息,標識請求者身份

(5)Referer:代表當前訪問的URL的上一個URL

(6)Range:表示可以請求實體的部分內容,用於多線程下載

(7)x-forward-for:多個請求端IP,中間以逗號隔開

3. 請求正文

HTTP/1.1 200 OK                          //響應行
Date: Thu, 27 Feb 2020 06:35:06 GMT      //響應頭
Server: Apache/2.2.8 (Ubuntu) DAV/2
X-Powered-By: PHP/5.2.4-2ubuntu5.10
Pragma: no-cache
Cache-Control: no-cache, must-revalidate
Expires: Tue, 23 Jun 2009 12:00:00 GMT
Content-Length: 1328
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html;charset=utf-8
                                        //空白行
<html>                                  //響應正文
    ...
</html>

 1. 響應行

(1)HTTP版本

(2)狀態碼

        1xx 成功接收,繼續處理

        2xx 成功(常見200)

        3xx 重定向(302)

        4xx 客戶端錯誤(400語法錯誤 401請求未經授權 403收到請求,拒絕服務 404請求資源不存在)

        5xx 服務器錯誤(500服務器內部錯誤 503服務器當前不能處理請求,一段時間後可能恢復)

 2. 響應頭

(1)Server:服務器信息

(2)Set-Cookie:向客戶端設置Cookie

(3)Last-Modified:資源的最後修改時間

(4)Location:服務器告訴瀏覽器去訪問哪個頁面,一般見於302

(5)Refresh:告訴瀏覽器定時刷新

 3. 響應正文

       請求的資源的HTML源代碼

二、HTTP協議與HTTPS協議區別與聯繫

1. HTTPS(HTTP over Secure Socket Layer)是在HTTP下加入SSL層,即安全傳輸機制,相對於HTTP明文傳輸,HTTPS進行了數據的加密,對數據的隱祕性和完整性發揮了作用

2. HTTPS協議需要到CA申請證書

3. HTTP端口號80,HTTPS端口號443

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