1

j'ai écrit script simple pour vérifier affecté par erreur 404.réponse HTTP code différent à chaque fois que je lance le script python 2.7

URL Quand je lance le script sur url avec 404 il me renvoie en effet une réponse correcte mais parfois renvoie un autre (503), je ne comprends pas pourquoi cela se passe, j'ai testé cela sur beaucoup d'autres URL et les résultats ne sont jamais cohérents. Est-ce que quelqu'un pourrait être de ce genre et expliquer pourquoi mes résultats changent même si le statut de l'url n'est pas?

Merci à l'avance de l'aide

J'ai essayé d'utiliser les modules suivants:

urllib, urllib2, Requets

Tous produit les mêmes résultats incohérents.

Voici les scripts:

Je

import requests 

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

réponse [404] et la réponse [503] (incorrect)

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

Je suppose que le serveur pourrait être surchargé et il peut se défaire de certaines demandes, donc le statut '503' est normal dans ce cas – Andersson

Répondre

1

La raison de 503 est typiquement "Service indisponible", ce qui signifie que tout ce qui traite votre requête ne trouve pas de service de support pour fournir une réponse. Ceci peut être retourné par un équilibreur de charge physique ou logiciel (F5s, HAProxy, etc.), CDN (Fastly, Cloudflare, etc.), ou quelque chose comme Apache ou Nginx qui sont en cours d'exécution mais n'ont pas d'application appropriée à contacter (pour quelque raison que ce soit).

Étant donné que les URL de votre exemple sont des URL Amazon, il est probable que le CDN renvoie le 503.NAA (comme Fastly) utiliser Varnish et vernis renverront un 503 dans les cas suivants:

  • Le serveur principal retourne un 503 si avant vernir le long
  • Le serveur principal a renvoyé une réponse qui n'a pas été analysable

d'autres fois un CDN peut retourner un 503:

  • le CDN a expiré lecture de l'origine
  • Le CDN a expiré la connexion à l'origine
  • Le CDN ne peut pas lire/écrire à l'origine
  • Le serveur d'origine a refusé la connexion du CDN
  • Le CDN ne peut pas trouver une route vers l'origine
  • L'origine a TLS mal configuré

(Et donc tant d'autres problèmes)

alors, vraiment, il est pas tout à fait possible pour nous de vous dire pourquoi vous obtenez un 503. vous devez introspect la re répond un peu plus et regarde la documentation qui l'entoure.

+0

Merci beaucoup sigmavirus24! Je vais vérifier la réponse plus en détail. –