J'ai écrit un service Web reposant qui n'est consommé que par des périphériques, jamais des navigateurs. Les appareils accèdent à Internet via le routeur de ménage existant du propriétaire et communiquent avec le service Web en envoyant des demandes HTTP via le routeur aussi souvent que toutes les 30 secondes. Ces demandes sont principalement des demandes "interrogations" de voir si le service Web dispose de nouvelles informations pour le périphérique.
Je souhaite empêcher les proxies transparents du FAI d'intercepter la demande et de renvoyer une réponse mise en cache. J'ai lu qu'une seule façon de le faire est d'ajouter une chaîne de requête aléatoire à la fin de l'URL de la demande pour tromper le proxy en pensant que c'est une demande unique. Par exemple: p> J'ai la capacité de le faire, mais est-ce le meilleur moyen? Un peu semble être un hack. P> p>
3 Réponses :
Vous pouvez essayer d'utiliser une connexion cryptée. Je pense que les proxy de cache ne sont pas censés stocker des réponses de la communication cryptée. P>
Une solution peut être de configurer HTTPS sur votre serveur, une autre pourrait être de configurer le client à utiliser un des proxies SSL. pour envoyer des demandes à votre serveur HTTP. P>
HTTPS n'est pas une option pour mon scénario. Il doit être simple HTTP pour permettre des milliers de demandes par minute. Le processus de la poignée de main requis pour HTTPS créerait trop de frais généraux que je pense.
Avec le contrôle de cache approprié et d'autres en-têtes bien sûr, utilisez POST et VOILA! Cela pourrait résoudre le problème que vous avez indiqué. p>
Vous voudrez peut-être voir cela - Discussion sur la mise en cache P>
Ensuite, le passage de paramètres supplémentaire pourrait également être évité. P>
Vous devez utiliser en-tête de contrôle du cache de HTTP pour y parvenir.
dans le réponse que vous devez envoyer: p> Vous devez également envoyer un Pragma Header pour les serveurs intermédiaires HTTP / 1.0: p> lecture associée: p>
Donc, vous ne pensez pas que je dois inclure no-cache code> et
no-store code> dans la valeur du cache-cache-contrôle code> en-tête?