TL;DR Il existe des cas où les demandes de lecture anticipée (prélecture, prélecture) volent non seulement vers le CSS mais également vers d'autres URL. Pour un point de terminaison spécifique
--Je souhaite connaître plus précisément le nombre de requêtes GET causées par les actions des utilisateurs C'est un processus relativement lourd, donc je ne veux pas traiter autant que possible les demandes supplémentaires.
Si vous avez les besoins ci-dessus, vous devez prendre des mesures de prélecture.
Lors du développement d'un système Web, j'ai pensé à la cause car une demande GET involontaire est entrée dans le journal du serveur de test. Après enquête, il semble que le navigateur puisse ignorer la demande GET en tant que processus de recherche anticipée (prélecture) lors de la saisie de quelque chose dans la barre du navigateur, et comme une valeur unique est définie dans l'en-tête de cette demande, chaque navigateur Le processus de détection a été mis en œuvre pour prendre en charge les spécifications de.
Chrome(Chromium)
Purpose: prefetch
https://www.chromestatus.com/feature/6247959677108224
https://bugs.chromium.org/p/chromium/issues/detail?id=86175#c65
Firefox
X-Moz: Prefetch
https://developer.mozilla.org/ja/docs/Web/HTTP/Link_prefetching_FAQ
Safari
X-Purpose: preview
import org.apache.commons.lang3.StringUtils;
import javax.servlet.http.HttpServletRequest;
public static boolean isPrefetchRequest(HttpServletRequest request) {
return StringUtils.equalsAny(request.getHeader("purpose"), "Prefetch", "prefetch") ||
StringUtils.equalsAny(request.getHeader("X-moz"), "Prefetch", "prefetch") ||
StringUtils.equalsAny(request.getHeader("X-Purpose"), "Preview", "preview");
}
―― Puisque les spécifications ne sont pas décidées par un examen léger, un suivi sera effectué en supposant que des modifications seront apportées.
Recommended Posts