基礎(chǔ)知識(shí)
HTTP協(xié)議
我們?yōu)g覽網(wǎng)頁的瀏覽器和手機(jī)應(yīng)用客戶端與服務(wù)器通信幾乎都是基于HTTP協(xié)議,而爬蟲可以看作是一個(gè)另類的客戶端,它把自己偽裝成瀏覽器或者手機(jī)應(yīng)用客戶端,按照自己的邏輯貪婪的向服務(wù)器索取數(shù)據(jù),如何向服務(wù)器索取數(shù)據(jù),所以了解HTTP協(xié)議就顯得很有必要了。
HTTP協(xié)議中文名稱是超文本傳輸協(xié)議,是一個(gè)基于請(qǐng)求與響應(yīng)模式的、無狀態(tài)的、應(yīng)用層的協(xié)議,常基于TCP的連接方式。請(qǐng)求和響應(yīng)模式很好理解,客戶端發(fā)送請(qǐng)求,服務(wù)器響應(yīng)客戶端的請(qǐng)求,就像學(xué)校食堂打菜一樣,你和打菜阿姨說要哪份菜,她才會(huì)給你盛哪份菜。
無狀態(tài)是指協(xié)議對(duì)于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快。形象點(diǎn)說,可以把服務(wù)器看成是沒有記憶的大學(xué)食堂打飯打菜,在每次請(qǐng)求中,阿姨并不知道你之前有沒有打過菜,也不知道你是不是合法的學(xué)生,所以你只能一邊舉著學(xué)生證一邊和阿姨說我要這個(gè)