# Préversion et rendu à la demande

Host sert toujours les fichiers statiques et les pages pré-rendues. Les fonctions, c’est-à-dire le rendu à la demande, les routes d’API, les Server Actions, le proxy, le runtime edge, l’ISR et les crons, sont en préversion. Cette page explique comment elles se comportent, et ce que tu observes.

## Ce qui est en ligne dans tous les cas

Un site construit avec `vercel build` produit deux sortes de contenu :

- les fichiers statiques et les pages pré-rendues au build. Ils sont servis dès le déploiement, sans fonction ;
- les pages et les routes qui ont besoin d’une fonction. Elles passent par l’exécution en préversion.

Une organisation qui n’a pas encore accès à l’exécution des fonctions voit ses pages statiques en ligne normalement. Seule une adresse qui demande une fonction répond `501`, avec le message « Rendu à la demande pas encore servi ».

## Ouvert organisation par organisation

L’exécution des fonctions est ouverte organisation par organisation. Si une de tes adresses répond `501`, demande l’activation à <support@hgdc.ch>, avec le nom de ton organisation.

## Comportement des fonctions

- Chaque déploiement a son environnement d’exécution, isolé des autres, avec les variables de son environnement.
- Une fonction dispose de 512 Mo de mémoire par défaut, et de 1 Go au plus.
- Une requête dure 30 secondes au plus par défaut. Tu peux allonger jusqu’à 60 secondes avec `maxDuration`.
- Après une période sans trafic, l’environnement s’arrête. La première requête suivante prend quelques secondes ; les suivantes sont immédiates.

## Runtime edge

Une fonction marquée `runtime: "edge"` tourne dans un contexte isolé, avec les API Web, comme chez Vercel.

## ISR

Une page avec une durée de revalidation est rendue une fois, puis gardée. Une fois la durée écoulée, elle est régénérée en arrière-plan. Le visiteur reçoit toujours une réponse immédiate.

Le cache de l’ISR est tenu en mémoire par serveur. Il repart à vide quand le serveur redémarre : la page suivante est rendue à nouveau.

## Crons

Les `crons` de `vercel.json` appellent leur chemin en GET, à l’heure indiquée en UTC, sur le déploiement de production uniquement. Un déploiement de preview n’a jamais de cron.

Si tu définis la variable `CRON_SECRET` pour la production, chaque appel porte `Authorization: Bearer <CRON_SECRET>`. Vérifie cet en-tête dans ta route avant d’agir.

## Proxy et middleware

Le proxy, anciennement middleware, et le middleware Node.js s’exécutent en préversion, comme les fonctions.

## Pour une page qui ne peut pas attendre

Si une page a besoin d’une fonction alors que l’exécution n’est pas encore ouverte à ton organisation, tu peux la pré-rendre au build. Elle est alors servie comme une page statique.

## Voir aussi

- [Compatibilité](/docs/reference/compatibilite/) : la liste complète, fonction par fonction.
- [Limites](/docs/reference/limites/) : mémoire, durée et débits.
