[PYTHON] À propos du cache HTTP lors du développement d'une application Web basée sur l'API REST [à l'aide de GCP]

Aperçu

Je développe le côté serveur avec Cloud run en Python (Flask) et le côté client avec Firebase en Javascript (Vue.js). python lit et écrit principalement les données Firestore. À ce moment, j'ai rencontré les deux problèmes suivants.

  1. Je fais une demande GET, mais j'effectue une demande OPTIONS (vérifiez auprès du navigateur)

Cet article décrit ces causes et contre-mesures.

"Environ 1

Pour 1, la requête OPTIONS est appelée une requête de contrôle en amont, et si ce n'est pas une simple requête, il semble que ce soit une requête CORS pour vérifier si le protocole CORS est compris. Cela peut être éliminé en examinant les paramètres de demande du côté client (dans le cas de l'API REST, il peut y avoir un en-tête d'authentification, il peut donc être ignoré dans de nombreux cas). Pour les demandes avant le vol, veuillez vous référer aux sites suivants. Après tout, ce n'était pas un problème, alors c'est tout.

À propos de "2."

Cela est dû au cache HTTP. ** Lorsque la réponse a été générée côté serveur, c'était parce que je n'avais pas défini le "Cache-control header" lié au cache HTTP **. En conséquence, la requête n'est pas allée à l'origine du côté de l'exécution du cloud et le cache HTTP de Firebase a été répondu du côté du client. Il n'y a aucun problème avec la première communication GET après le déploiement, mais même si vous modifiez le contenu de Firestore après cela, la deuxième communication GET et les suivantes seront les mêmes que le premier contenu.

en conclusion

Peut-être parce que c'est une connaissance trop courante des boutiques en ligne, il n'y avait pas beaucoup d'articles comme ça, alors je l'ai écrit sous forme de mémorandum.

Recommended Posts

À propos du cache HTTP lors du développement d'une application Web basée sur l'API REST [à l'aide de GCP]
Application Web utilisant Bottle (1)
Développement d'applications WEB à l'aide de django-development partie 1-
Contre-mesures contre le proxy lors de l'utilisation de l'API WEB
Créer une application Web avec Flask ②
Développement d'une application WEB avec Django [Ajout d'application]
Créer une application Web avec Flask ①
Créer une application Web avec Flask ③
Créer une application Web avec Flask ④