2009-11-03 4 views

Répondre

1

Selon la source que vous regardez, il devrait être possible de faire une demande de tête et vérifiez la dernière date de modification. Vous devriez garder une trace de la dernière fois que vous avez mis à jour de votre côté, mais si la principale chose qui vous inquiète est l'utilisation totale de la bande passante, je pense que c'est probablement votre meilleur pari, même si vous deviez faire un demande normale pour obtenir le fichier réel si vous avez détecté que la nouvelle date de dernière modification est après votre version enregistrée.

Les méthodes d'exécution d'une requête de tête pour une URL varient en fonction de la langue que vous utilisez.

Un exemple rapide dans .NET

HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; 
// instruct the server to return headers only 
request.Method = "HEAD"; 
// make the connection 
response = request.GetResponse() as HttpWebResponse; 
// get the headers 
headers = response.Headers; 
+0

Intéressant Gregg, pouvez-vous donner un exemple dans n'importe quelle langue de votre choix? ou un lien vers un bon exemple? – tekBlues

+0

Je ferais un bon coup d'oeil aux spécifications HTTP avec un accent particulier sur l'ETag et les en-têtes HTTP liés au temps. – ndim

+0

+1. Bonne suggestion. @tekBlues, je vois que vous avez posé des questions sur ASP.NET dans le passé, donc je suppose que c'est ce que vous utilisez. Voici un exemple de requête HEAD dans .NET: http://www.eggheadcafe.com/tutorials/aspnet/2c13cafc-be1c-4dd8-9129-f82f59991517/the-lowly-http-head-reque.aspx –

0

Si vous avez le contrôle de l'alimentation que vous demandez, vous pouvez vous assurer qu'il comprend ETags à comparer avec la dernière demande - votre meilleure option. Lire ceci: http://www.kbcafe.com/rss/rssfeedstate.html

+0

Ben, si Je vous comprends, je n'ai aucun contrôle, car je veux qu'il soit en mesure de vérifier tout flux RSS ... lien intéressant de toute façon, merci – tekBlues

+0

Gotcha. Eh bien, le type d'optimisation que vous recherchez dépend du fournisseur de flux fournissant des en-têtes HTTP utiles. Essayez 'curl -I http: // www.scripting.com/rss.xml'. L'ETag et Last-Modified sont vos amis ici. Les autres sites ne sont pas aussi utiles - essayez 'curl -I http: // stackoverflow.com/feeds/tag/rss'. – Ben