1

我寫了簡單的腳本來檢查URL的受錯誤404HTTP響應代碼不同的2.7

當我與404網址運行該腳本,它確實返回我正確的響應但是有時返回一個不同的(503),我不明白爲什麼會發生這種情況,我測試過很多其他URL,結果從來沒有一致。有人會這樣,並解釋爲什麼我的結果不斷變化,即使實際的網址狀態不?

預先感謝援助

我試着用以下模塊:

的urllib,urllib2的,requets

他們都產生同樣的結果不一致。

下面是腳本:

import requests 

for url in ['https://www.amazon.es/gp/product/B00QTVL0T4']: 
    response = requests.get(url) 
    response.status_code 
    print(response) 

響應[404]和反應[503](不正確的)

II

import urllib 

result='' 

#***** paste url into square bracket ****# 

for url in ["https://www.amazon.es/gp/product/B003ODEJZ2",'https://www.amazon.fr/gp/product/B01H801C9C']: 
    a=urllib.urlopen(url) 
    e=a.getcode() 
    if e==404: 
     result+=(url+" Error_404 "+"\n") 
    else: 
     result+=(url+" Link_OK "+"\n") 
print result 

III

import urllib2 
for url in ['https://www.amazon.es/gp/product/B003ODEJZ2','https://www.amazon.fr/gp/product/B01H801C9C','https://www.amazon.de/dp/B00B8PRE1Y']: 
    try: 
     connection = urllib2.urlopen(url) 
    except urllib2.HTTPError, e: 
     if e.getcode()==404: 
      print (url+" Error_404") 
     else: 
      print(url+" Link_Ok") 
+0

我猜服務器可能過載,它可以拋棄一些要求,所以'503'狀態是在這種情況下正常 – Andersson

回答

1

503的原因通常是「服務不可用」,這意味着無論處理您的請求都無法找到支持服務來提供響應。這可能會由物理或軟件提供的負載平衡器(F5s,HAProxy等),CDN(Fastly,Cloudflare等)或諸如Apache或Nginx之類的正在運行但沒有適當的應用程序聯繫的用戶返回(不管什麼原因)。

由於您示例中的URL是Amazon URL,因此CDN可能會返回503。的CDN(如快速度)使用清漆和光油將在下列情況下返回503:

  • 後端服務器返回的503所以上光油轉發沿着
  • 後端服務器返回其未解析的
  • 響應

其他一些次CDN可能會返回一個503:

  • 的CDN超時從原點閱讀
  • 的CDN超時連接到原始
  • 的CDN不能讀/寫原點
  • 源服務器拒絕從CDN
  • 的CDN連接不能找到一個途徑原點
  • 由來已經錯誤地配置了TLS

(等等等等許多其他問題)

所以真的,這不是很可能讓我們告訴你爲什麼你得到一個503你需要反思重再提一點,然後查看相關文檔。

+0

非常感謝您sigmavirus24!我會更詳細地檢查回覆。 –

相關問題