Python網絡爬蟲之-HTTP協議原理

1. 爬蟲之http基本原理

  1. URI(統一資源表示符)中包含(URL<統一資源定位符>/URN<統一資源名稱>)
  2. HTTP(超文本傳輸協議)/HTTPS(安全套接層上的超文本傳輸協議/Hyper Text Protocol over Security Socket Layer)
    差異性:
    HTTP: 未進行ssl協議進行加密廣泛使用的是http1.1協議
    HTTPS: 增加了ssl加密協議在傳輸方面有了提升也增加了CA證書整明網站真實性可靠性使用https(http2.0)。

2. 瀏覽器解析概述

1. 基礎概念:
	1. Ctrl+Shift+I 打開開發者模式	
	2. Client請求Server時通過Request(請求)-->Response(響應)

主要Network模塊及該模塊下的文件請求屬性

	1. General(常規)
		Request URL: #請求url(統一資源定位符)
		Request Method: #提交方式(GET/POST/HEAD/more..)
		Status Code: #請求狀態碼(200 OK/304/more...)
		Remote Address: #目標IP
		Referrer Policy: #規則設置
	
	2. Response Headers(響應頭部)
		HTTP/1.1 200 OK  響應狀態及協議版本號
		Server: 目標服務器信息  
		Date: Sun, 10 Nov 2019 07:31:07 GMT    #服務器時間
		Content-Type: text/html; charset=UTF-8   #文本類型及編碼格式
		Transfer-Encoding: chunked       #傳輸編碼
		Connection: keep-alive     #連接狀態
		Expires: Thu, 19 Nov 1981 08:52:00 GMT    #響應過期時間
		Cache-Control: no-store, no-cache, must-revalidate   #控制緩存
		Pragma: no-cache   #http/1.1之前版本的歷史遺留字段,僅作爲與http的向後兼容而定義。
		Vary: Cookie   #也是一個做緩存的東東,佔時沒做深入瞭解
		X-Pingback: wordpress網站真實路徑
		Content-Encoding: gzip   #響應內容編碼類型

	3. Request Headers(請求頭部)
		GET /5465.html HTTP/1.1
		Host: 主機
		Connection: keep-alive   #連接狀態
		Cache-Control: max-age=0  #控制緩存
		DNT: 1  #禁止跟蹤
		Upgrade-Insecure-Requests: 1
		User-Agent:  #用戶使用的什麼代理(瀏覽器)
		Sec-Fetch-Mode: navigate
		Sec-Fetch-User: ?1
		Accept: #支持頁面類型
		Sec-Fetch-Site: same-origin   #秒取站點
		Referer: https://cuiqingcai.com/5052.html    #告訴服務器該網頁是從哪個頁面鏈接過來的
		Accept-Encoding: gzip, deflate, br    #請求格式
		Accept-Language: zh-CN,zh;q=0.9    #支持的語言
		Cookie: cookie記錄值

Cookie技術

1. 對於Cookie工作過程這裏需要提及(會話保持)服務端會設置set-cookie 時間給客戶端\
	服務端與客戶端之間必須共同協作才能保持兩者之間會話連通性\
	若不然C/S兩者Client cookie 將會斷開則需從新請求cookie。
	
2. **常見誤區**
	在談論會話機制的時候,常常聽到這樣一種誤解“只要關閉瀏覽器,會話就消失了”,這種理解是錯誤的。\
	可以想象一下會員卡的例子,除非顧客主動對店家提出銷卡,否則店家絕對不會輕易刪除顧客的資料。\
	對會話來說,也是一樣,除非程序通知服務器刪除一個會話,否則服務器會一直保留。\
	比如,程序一般都是在我們做註銷操作時纔去刪除會話。
	
	但是當我們關閉瀏覽器時,瀏覽器不會主動在關閉之前通知服務器它將要關閉,所以服務器根本不會有機會知道瀏覽器已經關閉。\
	之所以會有這種錯覺,是因爲大部分會話機制都使用會話Cookie來保存會話ID信息,\
	而關閉瀏覽器後Cookies就消失了,再次連接服務器時,也就無法找到原來的會話了。\
	如果服務器設置的Cookies保存到硬盤上,或者使用某種手段改寫瀏覽器發出的HTTP請求頭,把原來的Cookies發送給服務器,\
	則再次打開瀏覽器,仍然能夠找到原來的會話 ID,依舊還是可以保持登錄狀態的。
	
	而且恰恰是由於關閉瀏覽器不會導致會話被刪除,這就需要服務器爲會話設置一個失效時間,\
	當距離客戶端上一次使用會話的時間超過這個失效時間時,\
	服務器就可以認爲客戶端已經停止了活動,纔會把會話刪除以節省存儲空間。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章