標籤:nsf 找不到 orb 本地 ica cat secure IV dns服務
昨天剛買的崔大大的《Python3網路爬蟲開發實戰》,今天就到了,開心的讀完了爬蟲基礎這一章,現記錄下自己的淺薄理解,如有見解不到位之處,望指出。
1.HTTP的基本原理
①我們經常會在瀏覽器輸入www.baidu.com這一網址,這一網址到底是什麼呢?其實這就是URL,即(Universal Resource Locator)統一資源定位器。URL明確了百度返回給我們的頁面所在的位置。其實URL是另一種叫做URI的子集,URI(Universal Resource Identifier)翻譯為統一資源標誌符,它指明了有這樣一個資源。
②什麼是超文本?我們知道HTTP的名稱為超文字傳輸通訊協定 (HTTP),到底什麼是超文本呢?其實超文本簡單來說就是網頁的原始碼HTML,用一系欄標籤構成的文本。
③HTTP協議和HTTPS,借用崔大書上對於HTTP協議的理解,HTTP協議是用於從網路上傳輸超文本資料到本地瀏覽器的協議,它能夠保證高效而準確的傳送超文字文件。
而HTTPS英文全稱為Hyper Text Transfer over Secure Socket Layer,也就是在應用程式層和傳輸層中間加了一層安全通訊端層(SSL),該安全通訊端層為資料的安全傳輸提供了保障。SSL層通過非對稱式加密演算法先協商出秘鑰,在通過對稱式加密演算法對傳輸的資料使用秘鑰加解密,以此來形成資料的加密,具體的加密可以參考這篇文章:50378855
④HTTP的請求過程,當我們在瀏覽器上輸入一個www.baidu.com,斷行符號之後我們便會在瀏覽器中看到頁面,這其中具體發生了什麼過程呢?
1)瀏覽器向該網域名稱所在DNS伺服器發送一個請求,DNS伺服器返回給瀏覽器www.baidu.com所在的伺服器的ip地址。
2)瀏覽器向www.baidu.com所在伺服器的ip地址進行tcp的三向交握。
3)成功建立串連之後,發送HTTP請求報文。
4)百度所在伺服器接受到請求之後會返回給使用者相應的響應。
5)瀏覽器接受到響應之後會對響應進行處理個解析,將其顯示出來,同時如果沒有資料需要傳送並且使用的是短串連的話,則進行4次揮手過程中斷連線。
⑤HTTP的請求報包含四部分的內容,請求的方式(GET/POST),請求的路徑,要求標頭部資訊以及請求體。
1)請求的方式:
GET和POST請求的區別:GET請求時請求的參數會包含在URL中一起傳送給後端,參數可以在URL中看見,而POST請求會將資訊放在請求體中發送給後端,POST請求的最大好處是請求的內容是不可見的,試想一下,如果在登入的時候使用GET請求,那麼密碼將毫無保留的顯示在瀏覽器的URL中。
其它常見的請求方式:HEAD請求:類似於GET請求,只返迴響應的頭部資訊。
DELETE請求:請求伺服器刪除指定的頁面。
CONNECT請求(好像沒見過,haha):以伺服器做為跳板,讓伺服器代替用戶端訪問其它頁面。
2)要求標頭部資訊:請求的頭部包含很多重要的欄位,我們在使用爬蟲的使用需要根據具體的網頁來構造要求標頭。
ACCEPT:用於指定用戶端可以接受哪些類型的資訊。
HOST:用於指定請求的主機IP和連接埠號碼。
COOKIE(提醒自己很重要):網站為了辨別使用者進行會話跟蹤而儲存在使用者本地的資料。它的主要功能就是維持會話,我們經常在訪問一個很久沒有訪問過的網站時會提示Cookie已失效,需要重新登入,其實這就是Cookie在搗鬼,Cookie在爬取那些需要登入才能擷取資料的網站時顯得格外重要。
User-Agent(also important):我們可能在剛開始寫爬蟲時沒有任何要求標頭部資訊,這時候伺服器收到請求檢查要求標頭部資訊中的User-Agent可能會想,這個小夥子一看就是個新手,連UA都不構造就給我發請求,當我真的是傻子嘛!直接給你來一個拒絕服務。所以說,以防萬一,還是構造一下User-Agent吧。
Content-Type:通常也叫互連網媒體類型(MIME),用來表示用戶端請求的具體類型資訊,比如,請求的是html,就需要Content-Type設定為text/html,請求的是json資料,則把Content-Type改成application/json。注意在登入的時候需要設定Content-Type為application/x-www-form-urlencoded,才會以表單的形式提交。
3)請求體:一般請求體在使用POST方式時會將資料放在請求體中,而GET請求裡請求體為空白。
⑥響應
1)常見的響應狀態代碼:
200:請求成功
301:請求的網頁已經永久移動到新的位置
302:請求的網頁暫時跳轉到其他頁面
403:Forbidden,伺服器拒絕此請求
404:Not Found,伺服器找不到請求的網頁
405:Bad Method,伺服器禁止這種請求方式
500:伺服器內部錯誤
2)回應標頭部資訊,這裡只列了幾個常見的。
Content-Type:指定返回的資料類型是什麼。
Set-Cookie:設定Cookie,告訴瀏覽器需要將此內容放在Cookie中,下次請求給帶上。
Content-Encoding:指定響應內容的編碼。
3)響應體:通常是伺服器返回給我們的資料,如網頁的原始碼,json資料等等,如果想要知道到底是什麼,可以通過F12調出開發人員工具並使用Network工具來查看。
這一篇HTTP基本原理就寫到這裡吧,下一篇網頁基礎和爬蟲基本原理。先不說了,我要學習。
Python爬蟲學習一------HTTP的基本原理