規範了客戶端如何構造並傳送請求
規範了伺服器如何響應請求。
通過瀏覽器(browser)訪問伺服器的架構稱為b/s架構,通過客戶端(client)訪問伺服器的架構稱為c/s架構(如qq)。瀏覽器其實也是一中客戶端,但隨著網際網路的發展,越來越多的企業或機構採用b/s的架構,應用場景非常廣,所有現在把瀏覽器這份客戶端吧單獨拿出來稱為b/s架構。
url構成
url的構成:例:
+http://
或https://
:傳輸使用的協議,模式,http和https的區別在於,https使用了安全套接字,也就是https在傳輸時經過了加密
+ www:域
+ pythoncode.com :主機
+ 8080:訪問主機的埠號。
+ /course/ : 路徑,類似於計算機中的資料夾的層級。
+ list.html 資源,類似的還有*.png等
+ ?cat=3&sort=1 向伺服器傳遞的引數用?與**分隔,以鍵值對的形式,多個引數以』&』分隔
url編碼
url是乙個字串,一些字元在url中有特殊意義,就類似於字串的轉義一樣,在某些時候需要對特殊字元,以及字典表進行編碼。例如:空格:%20或+, ! : %21, 」 : %22
python3中內建了urllib.parse庫來幫助對url進行編碼和解碼。
對字串:編碼:urllib.parse.quote(s) 解碼:urllib.parse.unquote(s)
對字典表:編碼:urllib.parse.urlencode(dict)
#對字串進行編碼
>>>import urllib.parse as p
>>>p.quote('faefafe! #')
'faefafe%21%20%20%20%23'
#對字串解碼
>>>p.unquote('faefafe%21%20%20%20%23')
'faefafe! #'
#字典表
>>>d =
>>>p.urlencode(d)
'id=2&page=4'
瀏覽器訪問伺服器,的到返回的頁面的過程就是乙個請求與響應的過程。
開啟瀏覽器訪問乙個**,右鍵選擇檢查—>network,重新整理頁面,就能看到本次請求得到的所有資源。
選擇乙個檢視,右側的』header』中,顯示的是本次請求與響應的資訊。
請求: 請求的方法:
常用的請求方法主要是get和post
get和post的區別:
get和post都可以向伺服器傳送資料,不同在於get傳遞引數時,引數會經過編碼用'?'拼接在url中的,比如常見的請求分頁的資料時:*.com/abc?page=1, post方法不會把引數拼接在url中,相對更安全,並且get傳遞的檔案有大小限制,post沒有限制,所以get常用於請求先關引數對應的資訊,而post通常用於向伺服器提交資訊,如註冊提交,上傳檔案等。
請求中的其他主要資訊:
響應:響應包括響應的狀態碼,響應的資料型別,和正文(如html,json)等 類別
原因短語
1**informational資訊性狀態碼
2**success成功狀態碼
3**redirection重定向狀態碼
4**client error客戶端錯誤狀態碼
5**server error伺服器錯誤狀態碼
常用狀態碼:200,請求成功
404,資源未找到,一般是url寫錯了
500,伺服器出錯。
python3爬蟲筆記
請求 並提取 資料的 自動化 程式 發起請求 獲取響應內容 解析文字內容 儲存資料 1.瀏覽器傳送資訊給該 所在的伺服器,這個過程叫做http request。2.服務收到瀏覽器傳送的訊息後,能夠根據瀏覽器傳送訊息的內容,做相應的處理,然後把訊息回傳給瀏覽器。這個過程叫做http response。...
python3爬蟲學習筆記
爬蟲爬取京東某手機頁面 beautifulsoup 原文記錄內容太多現進行摘錄和分類 pip3 install jieba kou ubuntu python cat clahamlet.py usr bin env python coding utf 8 e10.1calhamlet.py def...
python3爬蟲學習(一)
剛簽完offer沒事幹,之前斷斷續續學過一點爬蟲,又想著再次學習一下,希望這次能堅持下來,好好的學習。爬蟲 顧名思義,在整個網路系統中,像蜘蛛一樣,爬啊爬啊,每到乙個節點,就記錄該節點的資料,以及是否訪問過。所謂的節點,在網路中就是我們常說的 整個爬蟲的過程就類似於廣度優先搜尋 bfs 乙個網路。實...