Forum Programmation.php Pompage de rss

Posté par  (site web personnel) .
Étiquettes : aucune
0
24
jan.
2006
Bonjour,

Sur mon site web, je propose un fichier RSS (comme beaucoup de gens). Ce service est bien utilisé par la plupart des utilisateurs, mais il y en a quelques uns (environ 5, trouvés en 20 sec dans les logs) qui pompent le fichier toutes les minutes en permanence...

Je voudrais donc limiter le pompage à une fois toutes les 10 minutes, mais comment ? Par IP ? Et si c'est tout un lot de machines derrière une seule IP ?

Même si je limite par IP, quel code d'erreur envoyer et comment en cas de dépassement ? (Un 404? Comment le faire, avec header("..."); ???).

Merci de me proposer votre solution si vous en avez une parce que là je sèche !
  • # slashdot

    Posté par  . Évalué à 3.

    Essaie de regarder comment slashdot le fait. Je sais qu'il t'envoie un message particulier si tu tentes trop régulièrement de récupérer le fichier rss.
  • # TTL

    Posté par  (site web personnel, Mastodon) . Évalué à 3.

    Ton fichier RSS inclut-il un paramètre ttl?

    http://feedvalidator.org/docs/rss2.html#optionalChannelEleme(...)
    http://www.neilturner.me.uk/2003/Aug/10/lowering_bandwidth_u(...)

    La gelée de coings est une chose à ne pas avaler de travers.

    • [^] # Re: TTL

      Posté par  (site web personnel) . Évalué à 2.

      "It's a number of minutes that indicates how long a 
      channel can be cached before refreshing from the source."
      
      "Can be" et pas "sould be", mais je vais essayer quand même et checker mes log, voir si ça change quelque chose.
    • [^] # Re: TTL

      Posté par  (site web personnel) . Évalué à 2.

      Après test, je vous le dis moi, ça ne change rien!
      • [^] # Re: TTL

        Posté par  . Évalué à 1.

        Le probleme c'est la bande passante ? Ou du temps de traitement perdu ?

        Je suppose que tu mets en cache tes flux rss pour eviter de refaire les traitements a chaque interogation et que donc ton problème c'est plus econnomiser la bande passante.

        je te conseil de marqué l'utilisateur et de lui permettre de consulter les flux qu'une fois toutes les 10min

        crées toi un fichier texte avec IP + date de derniere connexion et si l'utilisateur reviens trop tot renvois lui une page blanche :D
        • [^] # Re: TTL

          Posté par  (site web personnel) . Évalué à 2.

          Oui, le problème c'est la bande passante, parce que le fichier en lui-même est pas très gros: 36 ko environ. Mais à un download toutes les deux minutes, calculons:

          36 Ko = 36*1024 = 36864 octets
          1440 minutes par jour donc 720 downloads.
          720 * 30 (moyenne) = 21'600 hits par mois
          21600*36864 = 796262400 octets = 759 Mo par mois rien que pour lui, pour du contenu mis à jour au maximum 1 fois par jour (je veux bien tolérer que l'on mette à jour le RSS toutes les 60 minutes...).

          Je vais voir ce que je peux faire !
          • [^] # Re: TTL

            Posté par  . Évalué à 2.

            et si tu retourne une erreur 404 en te basant sur l'ip et la date de la derniere récupération du flux ? ou alors dans le cas d'une détection d'abus à base d'ip, tu ne retourne que les x dernières news ?

            le plus simple est de contacter le responsable du site en question ...
            • [^] # Re: TTL

              Posté par  (site web personnel) . Évalué à 2.

              Ce n'est pas un site, mais un Thunderbird 1.5 mal configuré simplement.

              Je vais préparer un billet spécial et le balancer dans le lecteur des gens qui pompent trop souvent, je pense que c'est la meilleure solution.
      • [^] # Re: TTL

        Posté par  (site web personnel, Mastodon) . Évalué à 2.

        Si, sans TTL, tu as des clients qui abusent, c'est ta faute, car tu ne donne pas de périodicité.

        Si, avec TTL, tu as des clients qui abusent, c'est leur faute, car ils ne respectent pas ton paramètre.

        La gelée de coings est une chose à ne pas avaler de travers.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.