7
votes

Quel objet est de paramètre "& rnd =" dans les demandes http?

Pourquoi certaines applications Web utilisent-elles le paramètre http-get rnd ? Quel est le but de cela? Quels problèmes sont résolus en utilisant ce paramètre?


1 commentaires

N'a pas observé cela, mais cela pourrait aider à se débarrasser de la cache.


4 Réponses :


4
votes

C'est presque toujours pour le cache-buse.


0 commentaires

6
votes

Internet Explorer et d'autres navigateurs lira une URL d'image, téléchargez l'image et stockez-la dans un cache.

Si votre application va mettre à jour l'image régulière, vous souhaitez donc que vos utilisateurs ne voient pas une image en cache, l'URL doit être unique à chaque fois.

Par conséquent, l'ajout d'une chaîne aléatoire garantit qu'il sera unique et téléchargé dans la cache à chaque fois.


0 commentaires

7
votes

Ceci pourrait être de vous assurer que la page / l'image / tout ce qui n'est pas extraite du cache de l'utilisateur. Si le lien est différent à chaque fois, le navigateur l'obtiendra du serveur plutôt que du cache, assurant sa dernière version.

Il pourrait également être de suivre les progrès des personnes via le site. Mieux expliqué avec une petite histoire:

  1. Un exemple de visites d'utilisateur.com. Tous les liens reçoivent le même nombre aléatoire (disons 4).
  2. L'utilisateur ouvre un lien dans une nouvelle fenêtre / onglet et le lien est page2.php? rnd = 4. Tous les liens de cette page sont donnés au nombre aléatoire 7.
  3. L'utilisateur peut cliquer sur le lien vers la page3.php à partir de l'onglet Original ou le nouveau, et le logiciel Analytics sur le serveur peut indiquer lequel de la question de savoir s'il a RND = 4 ou RND = 7.

    Tout ce que nous pouvons faire est de suggérer des possibilités cependant. Il n'y a pas de raison standard de mettre RND = dans une URL, et nous ne pouvons pas connaître les motivations du concepteur de site Web sans voir le logiciel serveur.


0 commentaires

2
votes

Comme cela a été suggéré par d'autres. Ce type de comportement est généralement utilisé pour éviter les problèmes de mise en cache lorsque vous appelez une page qui renvoie des données de contenu dynamiques.

Par exemple, dites que vous avez une page qui obtient des informations d'utilisateur actuelles telles que "mysite.com/currenttuserdata". Maintenant, sur le premier appel à cette page, les données utilisateur seront renvoyées comme prévu, mais en fonction des paramètres de synchronisation et de mise en cache, le deuxième appel peut renvoyer les mêmes données - même si les données attendues peuvent avoir été mises à jour. P>

La principale raison de la mise en cache est bien sûr d'optimiser la vitesse de la demande fréquente. Mais dans l'instance où cela n'est pas recherché, l'ajout d'une valeur aléatoire sous forme de paramètre de chaîne de requête est connu pour être une solution largement utilisée. P>

Il existe cependant d'autres moyens de contourner ce problème. Par exemple, si vous faites une demande Ajax avec JavaScript / JQuery. Vous pouvez définir le cache sur false dans votre appel ... p> xxx pré>

Vous pouvez également le modifier pour tous les appels de page sur la charge de document avec ... P>

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public ActionResult NonCacheableData()
{
    return View();
}


0 commentaires