了解網路爬蟲的工作原理之前,我們必須先瞭解網站是如何運作的。舉例來說,當我們打開瀏覽器並點擊進入Facebook時,我們的請求信號會首先被發送到路由器。接著,路由器會向Facebook發送一個請求,詢問是否可以訪問該網址。如果Facebook認為這個請求是可信的,它就會回應,這通常對應於我們所熟知的200狀態碼。相反地,如果請求被認為是不可信的,則可能會返回400或502狀態碼。
Web crawler 是一種技術,用來幫助您獲得網路上的資訊,就像我們平常使用網站一樣。我們向網站發送一些訊息,然後網站會回傳相關的內容給我們。今天,我們的爬蟲就是負責搜尋網站中有用的資訊,以供我們使用。根據旁邊的這張圖,我們可以將它分成兩個階段:
1. 從網站獲取資料。
2. 使用爬蟲工具發送網址以獲取更多來自網站的資料。
大部分的破解也是在這方面進行的,它屬於資安領域。我們向網站發送URL或資料,然後觀察網站將回傳什麼訊息給我們。今天,假設我們在URL上進行了一些修改:XXXX&USER="/**/SELECT * FROM USERIFO"。對於了解這個技巧的人,他們會知道這是什麼,前面的部分在SQL中是註解,不會被執行,而從這點開始執行的部分是SELECT * FROM USERIFO。這也是一個著名的資安攻擊案例,稱為SQL注入。
今天,我們要討論的是如何撰寫程式碼,以在按下運行(Run)時同時執行多條執行緒(Thread)。通常,一次只執行一條執行緒,但這樣的方式速度較慢。我們希望能夠同時執行多條執行緒,以提高效能。
執行緒(Thread)
是 CPU 使用時的基本單位,它由以下元素組成:
Thread ID
Program Counter
一組 Register(寄存器)
一個 Stack(堆疊)