爬蟲系列 | 二、Http請求和響應,寫爬蟲這些內容必須掌握

爬蟲是創建在網絡請求的基礎上。因此在開始爬蟲以前必定要有必定的網絡知識。瀏覽器

1、HTTP協議

HTTP協議,全稱爲HyperText Transfer Protocol。翻譯過來呢就是超文本傳輸協議,默認端口是80,而HTTPS呢則是在HTTP的基礎上加入了SSL層,這樣呢就會相對安全,請求不會那麼輕易的被別人劫持。默認端口是443。安全

好比咱們常常訪問的百度、淘寶、B站、P站 等等 都是HTTPS的服務器

當咱們在瀏覽器中輸入網址,按回車後會發生什麼?

如下爲簡述,更多細節能夠自行查閱網絡

一、好比我在瀏覽器中輸入www.p_zhan.com (別試了,這是個假網站)。首先會進行DNS解析,獲取服務器的IP地址。併發

二、而後客戶端和服務器端會創建TCP連接,連接的過程就是三次握手。經過三次握手以後,客戶端與服務端會創建一個可靠的連接,而後就能夠進行數據的傳輸了。網站

三、發送HTTP請求,瀏覽器輸入的地址請求方式是GET請求!ui

四、獲取服務器的響應。響應碼又分爲2xx,3xx,4xx,5xx等翻譯

五、將內容進行解碼,若是數據須要展現,再由瀏覽器進行渲染。代理

請求方法:在HTTP/1.1定義的請求雖然有8種,可是掌握如下6種基本就夠了

  • GET:發送的請求是獲取服務器上的資源。請求體中不會包含請求數據,請求數據會放在協議頭上code

  • POST:向服務器提交資源,好比表單提交,上傳文件等。請求數據會放在請求體重

  • HEAD:本質與GET同樣。可是不返回報文主體部分,用於確認URI的有效性以及資源的更新時間等

  • PUT:經常使用於上傳文件。

  • DELETE:刪除文件

  • OPTIONS:查詢請求的資源支持的請求方法。

響應碼:

響應碼又稱爲狀態碼,表示頁面服務器超文本傳輸協議響應狀態的3位數字代碼。

1xx: 信息
消息: 描述:
100 Continue 服務器僅接收到部分請求,可是一旦服務器並無拒絕該請求,客戶端應該繼續發送其他的請求。
101 Switching Protocols 服務器轉換協議:服務器將聽從客戶的請求轉換到另一種協議。
103 Checkpoint 用於 PUT 或者 POST 請求恢復失敗時的恢復請求建議。
2xx: 成功
消息: 描述:
200 OK 請求成功(這是對HTTP請求成功的標準應答。)
201 Created 請求被建立完成,同時新的資源被建立。
202 Accepted 供處理的請求已被接受,可是處理未完成。
203 Non-Authoritative Information 請求已經被成功處理,可是一些應答頭可能不正確,由於使用的是其餘文檔的拷貝。
204 No Content 請求已經被成功處理,可是沒有返回新文檔。瀏覽器應該繼續顯示原來的文檔。若是用戶按期地刷新頁面,而Servlet能夠肯定用戶文檔足夠新,這個狀態代碼是頗有用的。
205 Reset Content 請求已經被成功處理,可是沒有返回新文檔。但瀏覽器應該重置它所顯示的內容。用來強制瀏覽器清除表單輸入內容。
206 Partial Content 客戶發送了一個帶有Range頭的GET請求,服務器完成了它。
3xx: 重定向
消息: 描述:
300 Multiple Choices 多重選擇。連接列表。用戶能夠選擇某連接到達目的地。最多容許五個地址。
301 Moved Permanently 所請求的頁面已經轉移至新的 URL 。
302 Found 所請求的頁面已經臨時轉移至新的 URL 。
303 See Other 所請求的頁面可在別的 URL 下被找到。
304 Not Modified 未按預期修改文檔。客戶端有緩衝的文檔併發出了一個條件性的請求(通常是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務器告訴客戶,原來緩衝的文檔還能夠繼續使用。
305 Use Proxy 客戶請求的文檔應該經過Location頭所指明的代理服務器提取。
306 Switch Proxy 目前已再也不使用,可是代碼依然被保留。
307 Temporary Redirect 被請求的頁面已經臨時移至新的 URL 。
308 Resume Incomplete 用於 PUT 或者 POST 請求恢復失敗時的恢復請求建議。
4xx: 客戶端錯誤
消息: 描述:
400 Bad Request 由於語法錯誤,服務器未能理解請求。
401 Unauthorized 合法請求,但對被請求頁面的訪問被禁止。由於被請求的頁面須要身份驗證,客戶端沒有提供或者身份驗證失敗。
402 Payment Required 此代碼尚沒法使用。
403 Forbidden 合法請求,但對被請求頁面的訪問被禁止。
404 Not Found 服務器沒法找到被請求的頁面。
405 Method Not Allowed 請求中指定的方法不被容許。
406 Not Acceptable 服務器生成的響應沒法被客戶端所接受。
407 Proxy Authentication Required 用戶必須首先使用代理服務器進行驗證,這樣請求才會被處理。
408 Request Timeout 請求超出了服務器的等待時間。
409 Conflict 因爲衝突,請求沒法被完成。
410 Gone 被請求的頁面不可用。
411 Length Required "Content-Length" 未被定義。若是無此內容,服務器不會接受請求。
412 Precondition Failed 請求中的前提條件被服務器評估爲失敗。
413 Request Entity Too Large 因爲所請求的實體太大,服務器不會接受請求。
414 Request-URI Too Long 因爲 URL 太長,服務器不會接受請求。當 POST 請求被轉換爲帶有很長的查詢信息的 GET 請求時,就會發生這種狀況。
415 Unsupported Media Type 因爲媒介類型不被支持,服務器不會接受請求。
416 Requested Range Not Satisfiable 客戶端請求部分文檔,可是服務器不能提供被請求的部分。
417 Expectation Failed 服務器不能知足客戶在請求中指定的請求頭。
5xx: 服務器錯誤
消息: 描述:
500 Internal Server Error 請求未完成。服務器遇到不可預知的狀況。
501 Not Implemented 請求未完成。服務器不支持所請求的功能,或者服務器沒法完成請求。
502 Bad Gateway 請求未完成。服務器充當網關或者代理的角色時,從上游服務器收到一個無效的響應。
503 Service Unavailable 服務器當前不可用(過載或者當機)。
504 Gateway Timeout 網關超時。服務器充當網關或者代理的角色時,未能從上游服務器收到一個及時的響應。
505 HTTP Version Not Supported 服務器不支持請求中指明的HTTP協議版本。
511 Network Authentication Required 用戶須要提供身份驗證來獲取網絡訪問入口。

在這裏插入圖片描述

相關文章
相關標籤/搜索