爬蟲——http協議和https協議


http協議

HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。

以上是官方對於http協議的一個解釋,可能相對晦澀難懂一些,實際上http協議就是:服務器server和客戶端client之間進行數據交換的一種形式

1.http協議的工作原理

HTTP協議工作於客戶端-服務端架構為上。瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB服務器發送所有請求。Web服務器根據接收到的請求后,向客戶端發送響應信息。

2.http的四點注意事項

  • HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。

  • HTTP是無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答后,即斷開連接。采用這種方式可以節省傳輸時間。*

  • HTTP是媒體獨立的:這意味着,只要客戶端和服務器知道如何處理的數據內容,任何類型的數據都可以通過HTTP發送。客戶端以及服務器指定使用適合的MIME-type內容類型。

  • HTTP是無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味着如果后續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快

3.http中的url

  • 協議部分:該URL的協議部分為“http:”,這代表網頁使用的是HTTP協議。在Internet中可以使用多種協議,如HTTP,FTP等等本例中使用的是HTTP協議。在"HTTP"后面的“//”為分隔符

  • 域名部分:該URL的域名部分為“www.aspxfans.com”。一個URL中,也可以使用IP地址作為域名使用

  • 端口部分:跟在域名后面的是端口,域名和端口之間使用“:”作為分隔符。端口不是一個URL必須的部分,如果省略端口部分,將采用默認端口

  • 虛擬目錄部分:從域名后的第一個“/”開始到最后一個“/”為止,是虛擬目錄部分。虛擬目錄也不是一個URL必須的部分。本例中的虛擬目錄是“/news/”

  • 文件名部分:從域名后的最后一個“/”開始到“?”為止,是文件名部分,如果沒有“?”,則是從域名后的最后一個“/”開始到“#”為止,是文件部分,如果沒有“?”和“#”,那么從域名后的最后一個“/”開始到結束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一個URL必須的部分,如果省略該部分,則使用默認的文件名

  • 錨部分:從“#”開始到最后,都是錨部分。本例中的錨部分是“name”。錨部分也不是一個URL必須的部分

  • 參數部分:從“?”開始到“#”為止之間的部分為參數部分,又稱搜索部分、查詢部分。本例中的參數部分為“boardID=5&ID=24618&page=1”。參數可以允許有多個參數,參數與參數之間用“&”作為分隔符。

4.http中的Request

常見的請求頭:

  • accept:瀏覽器通過這個頭告訴服務器,它所支持的數據類型

  • Accept-Charset: 瀏覽器通過這個頭告訴服務器,它支持哪種字符集

  • Accept-Encoding:瀏覽器通過這個頭告訴服務器,支持的壓縮格式

  • Accept-Language:瀏覽器通過這個頭告訴服務器,它的語言環境

  • Host:瀏覽器通過這個頭告訴服務器,想訪問哪台主機

  • If-Modified-Since: 瀏覽器通過這個頭告訴服務器,緩存數據的時間

  • Referer:瀏覽器通過這個頭告訴服務器,客戶機是哪個頁面來的 防盜鏈

  • Connection:瀏覽器通過這個頭告訴服務器,請求完后是斷開鏈接還是何持鏈接

  • X-Requested-With: XMLHttpRequest 代表通過ajax方式進行訪問

  • User-Agent:請求載體的身份標識

5.http中的Response

常見的響應頭信息:

  • Location: 服務器通過這個頭,來告訴瀏覽器跳到哪里

  • Server:服務器通過這個頭,告訴瀏覽器服務器的型號

  • Content-Encoding:服務器通過這個頭,告訴瀏覽器,數據的壓縮格

  • Content-Length: 服務器通過這個頭,告訴瀏覽器回送數據的長度

  • Content-Language: 服務器通過這個頭,告訴瀏覽器語言環境

  • Content-Type:服務器通過這個頭,告訴瀏覽器回送數據的類型

  • Refresh:服務器通過這個頭,告訴瀏覽器定時刷新

  • Content-Disposition: 服務器通過這個頭,告訴瀏覽器以下載方式打數據

  • Transfer-Encoding:服務器通過這個頭,告訴瀏覽器數據是以分塊方式回送的

  • Expires: -1 控制瀏覽器不要緩存

  • Cache-Control: no-cache

  • Pragma: no-cache

https協議

HTTPS (Secure Hypertext Transfer Protocol)安全超文本傳輸協議,HTTPS是在HTTP上建立SSL加密層,並對傳輸數據進行加密,是HTTP協議的安全版。

說白了就是加密版的HTTP協議。

1.證書

證書是被應用在https的加密操作中的,改證書是由證書認證機構頒布的,里面包含了公鑰

2.https采用的加密技術:

  • 對稱密鑰加密:

    • 流程:客戶端向服務器發送一條信息,首先客戶端會采用已知的算法對信息進行加密,比如MD5或者Base64加密,接收端對加密的信息進行解密的時候需要用到密鑰,中間會傳遞密鑰,(加密和解密的密鑰是同一個),密鑰在傳輸中間是被加密的。

    • 缺點:這種方式看起來安全,但是仍有潛在的危險,一旦被竊聽,或者信息被挾持,就有可能破解密鑰,而破解其中的信息。因此“共享密鑰加密”這種方式存在安全隱患

  • 非對稱密鑰加密

    • 流程:服務器告訴客戶端按照自己給定的公開密鑰進行信息的加密處理,這時服務器接收到加密消息后,再按照自己的密鑰進行解密。

    • 缺點:一是有可能是有人模仿服務器向客戶端進行發送公共密鑰,二是非對稱加密的方式效率比較低

  • 證書密鑰加密方式

    • 過程:服務器攜帶公開密鑰向數字證書認證機構提出公開密鑰的申請,數字證書認證機構在認清申請者的身份之后,會對服務器申請的公開密鑰做數字簽名,然后把這個公開的密鑰放入到證書之中,綁定在一起。

    • 服務器將這個證書發送給客戶端,因為客戶端也認可證書機構,客戶端通過證書中的數字簽名來進行驗證公鑰的真偽,來確保服務器傳過來的公鑰是真實的

以上是對http協議以及https協議的相關知識。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM