J'utilise winsock pour envoyer des requêtes http à internet. J'ai découvert que quelque chose dans le système de mon ordinateur met en cache les réponses http 301 déplacées de façon permanente. Ainsi, si j'envoie une requête GET pour une certaine URL, elle renvoie une ancienne réponse sans rien envoyer sur le web. Le problème, c'est que la réponse mise en cache est erronée. Je veux vider le cache, mais je ne sais même pas qui s'occupe de la mise en cache.
Je sais comment effacer ce cache dans mon navigateur. De même, lorsque j'utilise wininet au lieu de winsock, il n'y a pas de problème. Où se trouve le cache pour winsock et comment l'effacer ?
EDIT : La réponse d'Andreas ci-dessous occasionne quelques remarques. Mon programme fonctionne comme un proxy sur localhost, recevant des requêtes de Firefox et les envoyant sur le web. Les requêtes sont donc préparées par Firefox et l'en-tête host est toujours présent. La raison pour laquelle je pense que cela a quelque chose à voir avec winsock sur mon propre ordinateur est que Firefox obtiendra la page correctement si je n'utilise pas mon serveur proxy. Il n'y a pas de réponse 301 dans ce cas. Mais Firefox avait aussi ce problème (sans proxy) jusqu'à ce que j'efface son historique (oublier ce site). C'est pourquoi je pense qu'il doit s'agir d'un problème de cache winsock.
Puisque Firefox réussit (sans proxy) à vider son cache, ce n'est pas mon fournisseur d'accès qui fait la mise en cache. Notez que la requête envoyée est identique, qu'elle passe par mon proxy ou non. Je ne change rien. De plus, comme je l'ai dit, wininet fonctionne.
Je suis d'accord pour dire que winsock ne sait rien de http. Pourtant, il semble qu'il y ait un lien entre winsock et le fait que le web ait une fonction de cache. Quelle autre explication peut-il y avoir ? Mon proxy fonctionne correctement avec de nombreux autres sites, mais sur certains d'entre eux, j'obtiens cette réponse 301 permanently moved avec un en-tête location défectueux. Comment puis-je en savoir plus sur ce qui se passe ?