web-dev-qa-db-fra.com

Est-ce que les demandes de cache CURL?

C'est une assez longue question, alors soyez indulgent avec moi.

Je voulais souligner mon serveur Akamai connecté depuis une instance AWS. J'ai donc commencé à utiliser ab benchmark. Cependant, ils semblaient ridiculement rapides pour télécharger ~ 3 Mo de fichiers vidéo. Naturellement, je voulais voir ce qui se passait. Voici ce que j'ai fait pour obtenir le fichier

curl -v -o/dev/null

Ce qui précède s'est terminé en ~ 5 secondes.

Ensuite, j'ai exécuté à nouveau la même commande. Cette fois, elle s'est terminée en ~ 200 ms! Naturellement, mon intuition dit que le fichier est mis en cache quelque part.

Mes questions:

  1. Curl cache-t-il les fichiers? Si oui, existe-t-il un moyen de l'ignorer?
  2. Si curl ne fonctionne pas, l'ubuntu résume-t-il un cache sous curl? Si oui, existe-t-il un moyen de l'ignorer?
  3. Compte tenu des exigences, pensez-vous qu'il pourrait y avoir un outil d'analyse comparative en dehors de ab qui pourrait servir l'objectif?

Merci, Akshay

19
Akshaya Shanbhogue

Le client curl ne met pas les fichiers en cache, mais le réseau du serveur distant pourrait bien l'être. Essayez d'ajouter une variable de chaîne de requête arbitraire à l'URL pour voir si vous pouvez la reproduire.

15
Josip Rodin

Tardivement, essayez:

curl -v -H "Cache-Control: no-cache"

Cela indiquera au serveur Web de ne pas mettre en cache. N'arrête pas les couches en dessous de la mise en cache, sauf s'il est codé pour obéir aux en-têtes.

6
user171959

Vous pouvez utiliser ajouter une chaîne de requête aléatoire en utilisant le $RANDOM variable d'environnement:

curl --location --silent "https://git.io/lsf-e2e?$RANDOM"

Cela a fonctionné pour moi sur les fichiers bruts github.

0
Édouard Lopez

J'ai utilisé cette commande curl avec un paramètre cache buster.

curl http://example.com/static/changing_file?_=$(date +%s)

date +%s affiche les secondes depuis l'Époque, si vous appelez l'URL plus d'une fois par seconde, utilisez date +%s.%N à ajouter en nanosecondes.

0
Martlark