HTTP響應也由四個部分組成,分別是: 狀態? 、 消息報頭 、 空? 、 響應正?。
```
HTTP/1.1 200 OK
Bdpagetype: 1
Bdqid: 0xdbeb11ea000cfef4
Cache-Control: private
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html
Cxy_all: baidu+642857607c537ed21fa04bcfb54ff6ee
Date: Thu, 02 Jan 2020 06:32:55 GMT
Expires: Thu, 02 Jan 2020 06:32:51 GMT
Server: BWS/1.1
Set-Cookie: delPer=0; path=/; domain=.baidu.com
Set-Cookie: BDSVRTM=6; path=/
Set-Cookie: BD_HOME=0; path=/
Set-Cookie: H_PS_PSSID=1448_21096_30210_30283_30504; path=/; domain=.ba
Strict-Transport-Security: max-age=172800
Traceid: 1577946775028760116215846779410554093300
Vary: Accept-Encoding
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked
```
**常?的響應報頭(了解):**
**1. Cache-Control:must-revalidate, no-cache, private**
這個值告訴客戶端,服務端不希望客戶端緩存資源,在下次請求資源時,必須 要從新請求服務器,不能從緩存副本中獲取資源。<br/>
**2. Connection:keep-alive**
這個字段作為回應客戶端的`Connection:keep-alive`,告訴客戶端服務器的 tcp連接也是?個?連接,客戶端可以繼續使?這個tcp連接發送http請求。<br/>
**3. Content-Encoding:gzip**
告訴客戶端,服務端發送的資源是采?gzip編碼的,客戶端看到這個信息后,應該采?gzip對資源進?解碼。<br/>
**4. Content-Type:text/html;charset=UTF-8**
告訴客戶端,資源?件的類型,還有字符編碼,客戶端通過utf-8對資源進?解碼,然后對資源進?html解析。通常我們會看到有些?站是亂碼的,往往就是 服務器端沒有返回正確的編碼。 <br/>
**5. Date: Thu, 02 Jan 2020 06:32:55 GMT**
這個是服務端發送資源時的服務器時間,GMT是格林尼治所在地的標準時間。 http協議中發送的時間都是GMT的,這主要是解決在互聯?上,不同時區在相 互請求資源的時候,時間混亂問題。
<br/>
**響應狀態碼:**
響應狀態代碼有三位數字組成,第?個數字定義了響應的類別,且有五種可能取值。<br/>
常?狀態碼:
* `100~199`:表示服務器成功接收部分請求,要求客戶端繼續提交其余請 求才能完成整個處理過程。
* `200~299`:表示服務器成功接收請求并已完成整個處理過程。常? 200(OK 請求成功)。
* `300~399`:為完成請求,客戶需進?步細化請求。例如:請求的資源已 經移動?個新地址、常?302(所請求的??已經臨時轉移?新的url)、 307和304(使?緩存資源)。
* `400~499`:客戶端的請求有錯誤,常?404(服務器?法找到被請求的? ?)、403(服務器拒絕訪問,權限不夠)。
* `500~599`:服務器端出現錯誤,常?500(請求未完成。服務器遇到不可 預知的情況)。
- 爬蟲基本概念
- 爬蟲介紹
- 通用爬蟲與聚焦爬蟲
- 通用爬蟲
- 聚焦爬蟲
- HTTP與HTTPS協議
- HTTP協議簡介
- HTTP的請求與響應
- 客戶端HTTP請求
- 服務端HTTP響應
- requests庫
- requests庫簡介
- requests簡單使用
- 發送帶header的請求
- 發送帶參數的請求
- 案例:下載百度貼吧頁面
- 發送POST請求
- 使用代理
- 為什么要使用代理?
- 正反向代理
- 代理服務器分類
- 使用代理
- cookie和session
- cookie和session的區別
- 爬蟲處理cookie和session
- 使用session登錄網站
- 使用cookie登錄網站
- cookiejar
- 超時和重試
- verify參數忽略CA證書
- URL地址的解碼和編碼
- 數據處理
- json數據處理
- json數據處理方案
- json模塊處理json數據
- jsonpath處理json數據
- 正則表達式
- lxml
- xpath與lxml介紹
- xpathhelper插件
- 案例
- Beautiful Soup
- Beautiful Soup介紹
- 解析器
- CSS選擇器
- 案例
- 四大對象
- 爬蟲與反爬蟲
- 爬蟲與反爬蟲的斗爭
- 服務器反爬的原因
- 什么樣的爬蟲會被反爬
- 反爬領域常見概念
- 反爬的三個方向
- 基于身份識別進行反爬
- 基于爬蟲行為進行反爬
- 基于數據加密進行反爬
- js解析
- chrome瀏覽器使用
- 定位js
- 設置斷點
- js2py
- hashlib
- 有道翻譯案例
- 動態爬取HTML
- 動態HTML
- 獲取Ajax數據的方式
- selenium+driver
- driver定位
- 表單元素操作
- 行為鏈
- cookie操作
- 頁面等待
- 多窗口與頁面切換
- 配置對象
- 拉勾網案例
- 圖片驗證碼識別
- 圖形驗證碼識別技術簡介
- Tesseract
- pytesseract處理圖形驗證碼
- 打碼平臺
- 登錄打碼平臺
- 驗證碼種類
- 多任務-線程
- 繼承Thread創建線程
- 查看線程數量
- 資源共享
- 互斥鎖
- 死鎖
- 避免死鎖
- Queue線程
- 多線程爬蟲
- 多任務-進程
- 創建進程
- 進程池
- 進程間的通信
- Python GIL
- scrapy框架
- scrapy是什么?
- scrapy爬蟲流程
- 創建scrapy項目
- Selector選擇器
- logging
- scrapy shell
- 保存數據
- Item數據建模
- 翻頁請求
- Request
- CrawlSpider
- settings
- 模擬登錄
- 保存文件
- 內置Pipeline
- 自定義Pipeline
- 中間件
- selenium動態加載
- 防止反爬
- 隨機User-Agent
- 隨機IP代理
- settings中的參數
- 隨機延遲
- request.meta常用參數
- 分布式爬蟲
- 分布式原理
- scrapy_redis
- 去重問題
- 分布式爬蟲編寫流程
- CrawSpider改寫成分布式
- scrapy_splash
- scrapy_splash是什么?
- scrapy_splash環境搭建
- APP抓取
- Android模擬器
- appium
- appium是什么?
- appium環境搭建
- appium環境聯調測試
- appium的使用
- 演示項目-抓取抖音app
- 抖音app與appium的聯調測試
- 元素定位
- 抖音appium代碼
- 抓包軟件
- url去重處理