Qu'est-ce que le format de fichier WAR ?
.war (Java Web Archive) est un format d'archive similaire à un fichier JAR, basé sur le conteneur standard ZIP. Les fichiers .war contiennent des applications web Java et des composants côté serveur qui peuvent être déployés et exécutés sur un conteneur de servlets tel qu'Apache Tomcat ou Jetty. Outre les fichiers .class compilés, l'archive peut stocker des ressources supplémentaires à exécuter sur le serveur, notamment des pages .jsp, du HTML statique et du CSS. Le répertoire obligatoire WEB-INF/ contient le descripteur de déploiement web.xml et un dossier lib/ pour les fichiers .jar de dépendances groupés.
Utilisation des fichiers .war
Un fichier .war, comme toute archive, peut être décompressé pour visualiser le code source et d'autres ressources - renommez-le en .zip et ouvrez-le avec n'importe quel outil d'archivage. L'environnement d'exécution, cependant, nécessite que l'application reste au format .war pour le déploiement ; le conteneur de servlets gère le chargement des classes et le routage des requêtes. Les projets Spring Boot modernes livrent souvent un « fat-JAR » autonome au lieu d'un .war, mais le déploiement WAR reste la norme sur les serveurs Jakarta EE tels que WildFly et WebSphere. .war est l'équivalent pour application web des archives .EAR, qui regroupent des applications d'entreprise complètes.
Sécurité et sûreté
RISQUE : MEDIUMUn WAR contient du code exécutable côté serveur (servlets compilées et bibliothèques JAR groupées), donc son déploiement exécute ce code sur votre serveur avec les privilèges du serveur. Ne déployez que des WAR provenant de sources fiables ; un WAR malveillant ou compromis peut héberger un shell web ou des dépendances vulnérables. L'inspection (renommer en .zip) est sûre ; le déploiement est l'étape risquée. Maintenez à jour votre conteneur de servlets et les bibliothèques incluses dans le WAR (risque lié à la chaîne d'approvisionnement, ex: bibliothèques de journalisation vulnérables).
Détails du format
en bref- Archive web Konqueror - Konqueror de KDE pouvait enregistrer une page web (et ses ressources) sous forme d'archive .war ; une utilisation rare et héritée de KDE, pas le format dominant.
- WAR (audio/échantillon) et données de jeu - Quelques outils anciens utilisaient .war pour des échantillons audio bruts ou des archives de ressources de jeu (ex: certains moteurs) ; sans rapport avec le format Java.
Programmes qui ouvrent les fichiers WAR
Détails techniques
spécifications approfondies| Format de conteneur | Archive ZIP ; octets magiques PK (0x50 0x4B 0x03 0x04) à l'offset 0 - identique au ZIP standard |
| Méthode de compression | DEFLATE par entrée (par défaut ZIP) ; les entrées individuelles peuvent être stockées (STORED) sans compression |
| Type MIME | application/java-archive |
| Ordre des octets | Little-endian (hérité de la spécification ZIP) |
| Structure de répertoire requise | Doit inclure le dossier WEB-INF/ contenant le descripteur de déploiement web.xml, ainsi que les sous-répertoires classes/ et lib/ |
| Encodage | Binaire |
| Taille de fichier typique | 1 Mo - 300 Mo ; varie selon le nombre de JAR de dépendances et de ressources statiques inclus |
| Intégrité / signature | CRC-32 par entrée ; signature de code JAR optionnelle via les fichiers de signature .SF / .RSA dans META-INF/ |
| Nombre max d'entrées d'archive | 65 535 (ZIP standard) ; l'extension ZIP64 lève cette limite |
| Cible de déploiement | Conteneurs de servlets et serveurs d'applications Jakarta EE : Apache Tomcat, Jetty, WildFly, GlassFish, WebSphere |
| Déclaration de version | Version de la spécification Servlet/Jakarta EE indiquée dans l'élément <web-app> de WEB-INF/web.xml ; META-INF/MANIFEST.MF optionnel |
| Isolation des classes | Chaque WAR déployé reçoit un chargeur de classes isolé ; empêche les conflits de versions de bibliothèques entre applications co-déployées |
| Hiérarchie dans l'empaquetage Java EE | Le WAR est la couche application web ; le JAR contient les bibliothèques/applications ; l'EAR (Enterprise Archive) enveloppe les WAR et les JAR EJB en une seule unité déployable |
| Prise en charge plateforme | Multiplateforme ; s'exécute sur tout OS avec une JVM et un conteneur de servlets compatible (Windows, Linux, macOS) |
| Déploiement à chaud | La plupart des conteneurs de servlets prennent en charge le déploiement ou le remplacement d'un fichier WAR sans redémarrage complet du serveur (déploiement par dépôt) |
| Publié | 1999 (Java Servlet 2.2 / J2EE 1.2) |
| Dernière version | Tracks Jakarta EE / Servlet spec (Jakarta Servlet 6.0, 2022); WAR layout itself is stable |
| Standard ouvert | Oui · libre de droits |
| Spécification | jakarta.ee |
Conversions WAR
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers WAR.