1. 程式人生 > 其它 >python爬蟲開發與專案實戰學習筆記,(一)

python爬蟲開發與專案實戰學習筆記,(一)

一、報文格式:

一個HTTP請求報文由請求行(request line)、請求頭部(header)、空行和請求資料4個部分組成,具體格式如下;

1.請求報文格式

起始行

<method>

空格

<request-url>

空格

<version>

首行

<headers>

主體

<entity-body>

2.響應報文格式

起始行

<version>

空格

<status>

空格

<reason-phrase>

首行

<headers>

主體

<entity-body>

二、起始行說明:

起始行項

內容

說明
method GET,POST
request-url

http://localhost:8080/index

請求地址
version

HTTP/<major>.<minor>

HTTP/1.1

status 200,404 狀態嗎
reason-phreas OK 數字狀態碼

二、首部欄位

每個HTTP首部都有一種簡單的語法:名字後面跟著冒號(:),然後跟上可選的空格,再跟上欄位值,最後是一個CRLF。(或者換行符);

1.通用首部欄位

一般 請求首部和 響應首部 都支援;

首部欄位名說明備註
Cache-Control 控制快取的行為 請參考 快取指令一覽表
Connection 連線的管理
  1. 控制不再轉發給代理的首部欄位
  2. 管理持久連線
  3. HTTP/1.1預設持久連線
Date 建立報文的日期時間 Pragma: no-cache
Pragma 報文指令
Trailer 報文末端的首部一覽
Transfer-Encoding 指定報文主體的傳輸編碼方式
Upgrade 升級為其他協議 使用首部欄位 Upgrade 時,還需要額外指定Connection:Upgrade
Via 代理伺服器的相關資訊
Warning 錯誤通知

2.請求首部欄位

首部欄位名說明
Accept 使用者代理可處理的媒體型別
 text/html,application/xhtml+xml,application/xml;q=0.9,
image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Charset 優先的字符集
iso-8859-5, unicode-1-1;q=0.8
Accept-Encoding 優先的內容編碼
gzip, deflate
Accept-Language 優先的語言(自然語言)
zh-cn,zh;q=0.7,en-us,en;q=0.3
Authorization Web認證資訊
Expect 期待伺服器的特定行為
From 使用者的電子郵箱地址
Host 請求資源所在伺服器
If-Match 比較實體標記(ETag)條件請求 伺服器會比對 If-Match 的欄位值和資源的 ETag 值,僅當兩者一致
時,才會執行請求。反之,則返回狀態碼 412 Precondition Failed 的響
If-Modified-Since 比較資源的更新時間
If-None-Match 比較實體標記(與 If-Match 相反)
If-Range 資源未更新時傳送實體 Byte 的範圍請求
If-Unmodified-Since 比較資源的更新時間(與If-Modified-Since相反)
Max-Forwards 最大傳輸逐跳數
Proxy-Authorization 代理伺服器要求客戶端的認證資訊
Range 實體的位元組範圍請求
Referer 對請求中URI的原始獲取方
Referer: http://172.30.1.34:4200/
首部欄位 Referer 會告知伺服器請求的原始資源的 URI。
TE 傳輸編碼的優先順序
User-Agent HTTP客戶端程式的資訊 首部欄位 User-Agent 會將建立請求的瀏覽器和使用者代理名稱等資訊傳
達給伺服器

3.響應首部欄位

首部欄位名說明
Accept-Ranges 是否接受位元組範圍請求
Age 推算資源建立經過時間 首部欄位 Age 能告知客戶端,源伺服器在多久前建立了響應。欄位值
的單位為秒。
ETag 資源的匹配資訊 首部欄位 ETag 能告知客戶端實體標識。它是一種可將資源以字串
形式做唯一性標識的方式。伺服器會為每份資源分配對應的 ETag
值。
Location 令客戶端重定向至指定URI 使用首部欄位 Location 可以將響應接收方引導至某個與請求 URI 位置
不同的資源
Proxy-Authenticate 代理伺服器對客戶端的認證資訊
Retry-After 對再次發起請求的時機要求
Server HTTP伺服器的安裝資訊
Vary 代理伺服器快取的管理資訊
WWW-Authenticate 伺服器對客戶端的認證資訊

4.快取請求指令

指令引數說明
no-cache 強制向原伺服器再次驗證,不緩
存過期的資源
no-store 不快取請求或響應的任何內容
max-age = [ 秒] 必須 響應的最大Age值
max-stale( = [ 秒]) 可省略 接收已過期的響應
min-fresh = [ 秒] 必需 期望在指定的時間內的響應仍有效
no-transform 代理不可更改媒體型別
only-if-cached 代理不可更改媒體型別
cache-extension - 新指令標記(token)

5.快取響應指令

指令引數說明
public 可向任意方提供響應的快取
private 可省略 僅向特定使用者返回響應
no-cache 可省略 快取前必需先確認其有效性
no-store 不快取請求或響應的任何內容
no-transform 代理不可更改媒體型別
must-revalidate 可快取但必須再向源伺服器進行確認
proxy-revalidate 要求中間快取伺服器對快取的響應有效性再進行確認
max-age=[秒] 必需 響應的最大Age值
s-maxage=[秒] 必需 公共快取伺服器響應的最大Age值
cache-extension - 新指令標記(token)

6.實體首部欄位

說明:描述請求實體和響應實體的屬性;一般請求首部和響應首部都含有;

首部欄位名說明
Allow 資源可支援的HTTP方法
Content-Encoding 實體主體適用的編碼方式 告知客戶端伺服器對實體的主體部分選
用的內容編碼方式
Content-Language 實體主體的自然語言
zh-CN
Content-Length 實體主體的大小(單位:位元組)
Content-Location 替代對應資源的URI
Content-MD5 實體主體的報文摘要
Content-Range 實體主體的位置範圍
Content-Type 實體主體的媒體型別
Expires 實體主體過期的日期時間
Last-Modified 資源的最後修改日期時間

參考地址:https://www.cnblogs.com/xzsty/p/11452610.html

我從來不相信什麼懶洋洋的自由。我向往的自由是通過勤奮和努力實現的更廣闊的人生。 我要做一個自由又自律的人,靠勢必實現的決心認真地活著。