導致HTTP超時的兩種常見原因

Cloud01發表於2022-07-18

在使用者日常使用代理 IP開展業務的過程中,許多使用者或多或少都會遇到HTTP超時的問題,而導致這種情況出現的原因一般來說有兩種—網路出現問題或者伺服器端出現異常,具體表現為請求超時與響應超時:

請求超時

很多HTTP   framework本身有超時機制,就是在應用層程式碼裡啟動一個Timer,如果 T imer超時則手動取消請求。 比如使用者現在網路環境較差,當客戶端發起一個請求時,通訊層開始請求與伺服器建立連線(包括在重試),如果在5S之內還沒有連線到伺服器,那麼就會判定為超時。

響應超時

當使用者連線到伺服器時,一般例如url等引數(url?key=value)會直接提交到伺服器,比如body型別的引數(Form、JsonBody、key=value&key1=value1等)我們會通過連線中的stream再手動寫出去,當伺服器接受到請求資料後開始【處理資料->響應】,這個【處理資料->響應】階段就可能會發生響應超時,比如伺服器去執行資料庫操作,在5S內還沒有對stream做出反饋,那麼客戶端就認為超時,主動斷開和伺服器的連線。

以上兩種情況,底層一般都是丟擲一個TimeoutException的異常,例如:

1.一個不存在的url,但是這個url的域名是存在的,比如:這個URL顯然是不存在的,但是域名是存在且可以請求的,這個時候的超時情況是符合上面的兩種描述的,但是如果正確請求,那麼將會響應404。

2. 一個不存在的域名。比如域名沒有被註冊過,或者說註冊了沒有被解析到某個ip上。這種情況一般都會收到毫秒級別的反饋,得到的異常可能是NotFoundHostException,而不是TimeoutException。

IPIDEA已向眾多網際網路知名企業提供服務,對提高爬蟲的抓取效率提供幫助,支援API批量使用,支援多執行緒高併發使用。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70017425/viewspace-2906291/,如需轉載,請註明出處,否則將追究法律責任。

相關文章