REFERENTIEL NORMATIF du CNES RNC-CNES-E-40-505 Référence : Version 2 13 mars 2000 Méthode et Procédure REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB APPROBATION Président du CDN ; date et nom : METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 Page i.1 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Version 2 13 mars 2000 PAGE D'ANALYSE DOCUMENTAIRE TITRE : REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB MOTS CLES : Internet; Web ; Serveur ; Règle ; Recommandation. RESUME : Ce document présente les règles et recommandations pour la réalisation de serveur Web. Il est applicable à la spécification, au développement et à la maintenance de serveur Web. SITUATION DU DOCUMENT : Ce document fait partie de la collection des Méthodes et Procédures associées au Référentiel Normatif du CNES (ECSS et MP). Il appartient à la filiation Ingénierie des Logiciels. NOMBRE DE PAGES : 99 LANGUE : Française Progiciels utilisés / version : Word 97 SERVICE GESTIONNAIRE : Délégation à l'Assurance de la Qualité du Centre Spatial de Toulouse (DTS/AQ) AUTEUR(S) : DATE : 21/07/98 G. GUILLOT / C. JOUAN RELECTURE / CONTROLE : Pour ACCORD : Le Président du Comité Technique de Normalisation : © CNES 1998 Reproduction strictement réservée à l'usage privé du copiste, non destinée à une utilisation collective (article 41-2 de la loi n°57-298 du 11 Mars 1957). METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 Page i.2 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Version 2 13 mars 2000 PAGES DES MODIFICATIONS VERSION DATE PAGES MODIFIEES OBSERVATIONS 0.0 28/07/97 Document initial (sans chartes) 0.1 19/09/97 Document entièrement refondu (sans chartes) Version non prise en compte 0.2 22/10/97 Prise en compte dans la version 0.0 de certaines évolutions de la version 0.1 Version de base pour l’introduction des chartes 0.3 17/11/97 Amélioration du document Nouvelle version de base pour l’introduction des chartes PR.4 22/04/98 Refonte du document Version complète Introduction de l’analyse du public, des informations et de la technologie (§ 9) Report dans une note technique séparée des règles sur les chartes 0.1 21/07/98 Introduction des remarques suite aux relectures Version complète Normalisation du document pour soumission au CTN 2 Nouvelle codification des documents METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page i.3 Version 2 13 mars 2000 SOMMAIRE 1. INTRODUCTION ....................................................................................................... 1 2. OBJET DU DOCUMENT........................................................................................... 1 3. ORGANISATION DU DOCUMENT ........................................................................... 2 4. DOMAINE D’APPLICATION..................................................................................... 2 5. DOCUMENTS DE RÉFÉRENCE............................................................................... 3 6. DOCUMENTS APPLICABLES ................................................................................. 4 7. GLOSSAIRE - TERMINOLOGIE............................................................................... 5 7.1 ABREVIATIONS ........................................................................................................................................... 5 7.2 GLOSSAIRE................................................................................................................................................... 5 8. GUIDE DE LECTURE ............................................................................................. 10 8.1 INTRODUCTION ........................................................................................................................................ 10 8.2 PRESENTATION DES REGLES............................................................................................................... 10 8.2.1 STRUCTURE D’UNE REGLE .............................................................................................................. 10 8.2.2 TYPES DE REGLES .............................................................................................................................. 10 8.2.3 CODIFICATION D’UNE REGLE ......................................................................................................... 11 8.3 LES MODELES D’ARCHITECTURE...................................................................................................... 12 8.3.1 SERVEURS WEB STATIQUES............................................................................................................ 13 8.3.2 SERVEURS WEB DYNAMIQUES....................................................................................................... 16 8.3.3 SERVEURS WEB ETENDUS ............................................................................................................... 17 9. RÈGLES DE BASE ................................................................................................. 19 9.1 REGLES CONCERNANT L’ANALYSE DU PUBLIC............................................................................ 19 9.2 REGLES CONCERNANT L’ANALYSE DE L’INFORMATION ......................................................... 23 9.3 REGLES CONCERNANT L’ANALYSE DE LA TECHNOLOGIE ...................................................... 27 9.4 CHOIX D’UN TYPE DE SERVEUR ......................................................................................................... 33 METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page i.4 Version 2 13 mars 2000 10. RÈGLES COMMUNES ET APPLICABLES AUX SERVEURS STATIQUES ....... 34 10.1 REGLES GENERALES ............................................................................................................................ 34 10.2 REGLES APPLICABLES EN PHASE DE SPECIFICATION ............................................................. 40 10.3 REGLES APPLICABLES EN PHASE DE CONCEPTION ET DE REALISATION ........................ 45 10.4 REGLES APPLICABLES EN PHASE DE MAINTENANCE .............................................................. 74 11. RÈGLES APPLICABLES AUX SERVEURS WEB DYNAMIQUES ...................... 76 11.1 REGLES GENERALES ............................................................................................................................ 76 11.2 REGLES APPLICABLES EN PHASE DE SPECIFICATION ............................................................. 78 11.3 REGLES APPLICABLES EN PHASE DE CONCEPTION ET DE REALISATION ........................ 79 11.4 REGLES APPLICABLES EN PHASE DE MAINTENANCE .............................................................. 84 12. RÈGLES APPLICABLES AUX SERVEURS WEB ÉTENDUS ............................. 85 13. INDEX DES REGLES............................................................................................ 89 METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Page 1 Version 2 13 mars 2000 1. INTRODUCTION Le document "Règles et recommandations pour la réalisation d’un serveur Web" fait partie de la collection des Méthodes et Procédures associées au Référentiel Normatif du CNES (ECSS et MP). Il appartient à la filiation Ingénierie des Logiciels. Ce document est complété par un document annexe « Règles pour la réalisation de chartes pour un serveur Web » (DR11). 2. OBJET DU DOCUMENT La présente MP énonce : • des règles de base, applicables en préalable à la réalisation de tout serveur Web • des règles et des recommandations applicables aux phases de spécification, de conception et de maintenance d’un serveur (et d’un site) Web, • des règles et des recommandations générales associées à la réalisation d’un serveur Web. Remarque : Ce document n’est pas un document de référence des techniques Web. Cependant, les phases du cycle de vie de réalisation d'une architecture de serveur Web (spécification, conception et maintenance) sont évoquées au travers des différents types de serveurs. La classification retenue pour les différents types de serveurs Web est la suivante par ordre de complexité : • serveurs Web statiques, • serveurs Web dynamiques, • serveurs Web étendus. Toutes les règles énoncées pour un type de serveur Web sont également à appliquer pour les types de serveurs Web plus élaborés. Par exemple, toutes les règles applicables aux serveurs Web statiques le sont également aux serveurs Web dynamiques. Restrictions Des règles de développement plus précises devront être déterminées pour la réalisation proprement dite de l’application serveur et de l’application client, car elles dépendent de la technologie choisie. En raison de l’évolution rapide des techniques liées à ce type de développement, ce document n’est en aucun cas un « état de l’art » ou une liste exhaustive des outils et techniques disponibles sur le marché. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB 3. ORGANISATION RNC-CNES-E-40-505 Page 2 Version 2 13 mars 2000 DU DOCUMENT Ce document a été structuré avec un découpage respectant les différents grands types d’architectures afin de permettre à l’utilisateur de trouver rapidement les règles qui répondent à son besoin : • la première partie décrit les types d’architecture du serveur Web, • la deuxième partie décrit les analyses du public, de l’information et de la technologie à mener avant le choix d’une architecture de serveur Web, • la troisième partie est consacrée aux règles relatives à la totalité des serveurs Web, quel que soit leur type, notamment les serveurs et sites Web statiques, • la quatrième partie est consacrée aux règles relatives aux serveurs Web dynamiques, • la cinquième partie est consacrée aux règles relatives aux serveurs Web étendus. 4. DOMAINE D’APPLICATION Ce document vise plusieurs types d’utilisateurs : • le chef de projet qui doit spécifier correctement le serveur (ou le site) à développer, • le chef de projet et/ou l’ingénieur qualité qui doit valider les règles relatives à la réalisation, extraire les recommandations pertinentes pour son projet et éventuellement adapter et compléter les règles en fonction du contexte de réalisation, • les personnes chargées de la réalisation du projet : elles doivent appliquer les règles et les recommandations retenues pour chaque étape du cycle de vie du logiciel. Du fait de ce triple objectif, ce document est donc une combinaison et parfois un compromis entre un guide de spécification, un standard de conception, et un guide de développement de serveurs et de sites Web. METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB 5. DOCUMENTS Page 3 Version 2 13 mars 2000 DE RÉFÉRENCE • (DR1) : Référentiel Normatif RNC-ECSS-E-40 Logiciels • (DR2) : Règles et recommandations pour l’utilisation de la méthode OMT (RNC-CNES-Q-80-525) • (DR3) : Règles et recommandations pour l’utilisation du langage Java (RNC-CNES-Q-80-527) • (DR4) : Règles et recommandations d’ergonomie des interfaces Homme Machine informatiques (RNC-CNES-E-40-504) • (DR5) : Exigences de sécurité pour l’utilisation des serveurs et relais HTTP (SSI-SB-21201-CN, Ed 1 Rév 4 du 08/08/95) • (DR6) : Règles de sécurité pour les développements sous UNIX (RNC-CNES-Q-80-523, version provisoire) • (DR7) : Cahier de recette du serveur HTTP UNIX du CERN (SSI-VR-21203-CN CN, Ed 1 Rév 3 du 20/11/95) • (DR8) : Règles et recommandations pour l’utilisation du langage C (RNC-CNES-Q-80-506) • (DR9) : P. Lynch, S. Horton, Yale C/AIM Web Style Guide (http://info.med.yale.edu/caim/manual/) • (DR10) : R. Levine (Sun Microsystems), Sun Guide to Web Style (http://www.sun.com/styleguide/) • (DR11) : Règles pour la réalisation de chartes pour un serveur Web (RNC-CNES-E-40-505-A) • (DR12) : RNC-ECSS-Q-80 Assurance Produit des Logiciels • (DR13) : Manuel utilisateur des services applicatifs IW3 (IW3-MU-3500-037-CAP Ed 2 Rév 1 du 09/04/98) • (DR14) : Manuel utilisateur des services d'exploitation IW3 (IW3-MU-3500-038-CAP Ed 2 Rév 1 du 09/04/98) • (DR15) : Démarche d'ouverture d'un serveur WWW (IW3-DT-4000-041-CAP Ed 1 Rév 1 du 02/12/97) • (DR16) : Guide de Rédaction d'un Dossier Système de serveur WWW (IW3-GR-4000-042-CAP Ed 1 rév 1 du 02/12/97) METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB • (DR17) : Guide de Rédaction d'un Dossier d'exploitation de serveur WWW (IW3-GR-4000-043-CAP Ed 1 Rév 2 du 28/05/98) • (DR18) : RFC HyperText MarkUp Langage http://www.w3.org/MarkUp/ 6. DOCUMENTS Néant. APPLICABLES RNC-CNES-E-40-505 Page 4 Version 2 13 mars 2000 METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB 7. GLOSSAIRE - RNC-CNES-E-40-505 Page 5 Version 2 13 mars 2000 TERMINOLOGIE 7.1 ABREVIATIONS API Application Program Interface CGI Common Gateway Interface DNS Data Name System FTP File Transfert Protocol HTML HyperText Markup Language HTTP HyperText Transfer Protocol IIOP Internet Inter-ORB Protocol IP Internet Protocol ISAPI Internet Server API MIME Multipurpose Internet Mail Extensions MP Méthode et Procédure NSAPI Netscape Server API TCP Transfert Communication Protocol. URL Uniform Resource Locator WWW ou W3 World Wide Web 7.2 GLOSSAIRE ActiveX Technologie développée par Microsoft, issue des technologies COM et OLE, permettant de définir des composants applicatifs, téléchargeables automatiquement et exécutables par les navigateurs Web. Ces composants permettent d’inclure des documents et des contrôles utilisateurs dans des pages HTML. A la différence des composants Java, ActiveX n’est pas un langage, mais un ensemble de règles que les composants doivent respecter. API Application Program Interface. Ensemble de conventions définissant de quelle manière un service peut être joint par un logiciel METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page 6 Version 2 13 mars 2000 Applet Composant applicatif téléchargeable, qui peut être inclus dans une page HTML. De tels composants peuvent par exemple être des composants de l’interface utilisateur ou bien des composants pouvant communiquer avec d’autres applications distantes. Les applets sont essentiellement écrits en Java. CGI Common Gateway Interface. Interface d’appel de programmes par un serveur Web. L’interface CGI permet notamment la communication avec des bases de données. Cookie Information générée et utilisée par un serveur Web et stockée au niveau du poste de travail sur lequel réside le navigateur Web. L’utilisation de cookies permet de stocker des informations propres à un serveur Web au niveau du poste client, dont la durée de vie peut être prolongée au-delà d’une session, telles que des informations sur les préférences de l’utilisateur. CORBA "Common Object Request Broker Architecture" traduisible par "Architecture à objets distribués ". Norme définissant l'architecture que doivent adopter les applications, pour rendre possible la communication entre des objets distribués sur des machines hétérogènes interconnectées . DNS Serveur responsable de la correspondance entre un nom symbolique et une adresse Internet. Base centrale contenant le nom et l’adresse IP des machines. Extranet Réseau collaboratif d’entreprise basé sur les technologies Internet dont l’accès est également autorisé à certains partenaires extérieurs (fournisseurs, clients...). Frame Cellule Technique qui permet de partager une fenêtre en plusieurs cellules. FTP Protocole d'échange de fichiers sur Internet. Par extension, FTP désigne aussi le client Groupware Technique dont l’objectif est de partager des informations communes entre plusieurs intervenants. Helper Application (Modules d’aide) Programme appelé par un navigateur Web pour afficher ou traiter de manière externe les fichiers d’un type donné. Le type d’un fichier, et donc le module d’aide à exécuter, est déterminé d’après son type MIME ou bien d’après le suffixe de son nom. HTML HyperText Markup Language Langage standard utilisé pour formater les documents publiés sur le Web. HTML repose sur l’utilisation de "tags" ou balises de formatage permettant également l’inclusion d’éléments externes tels que des images et des documents multimédia. HTTP HyperText Transfer Protocol. Protocole de communication utilisé pour transporter des documents hypertextes et d’autres documents, entre un serveur et un navigateur Web. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page 7 Version 2 13 mars 2000 IIOP Internet Inter-ORB Protocol. Protocole de communication développé par l’OMG (Object Management Group) pour l’interaction entre plusieurs plates-formes CORBA. IIOP permet notamment l’intégration de technologies Web avec CORBA. IIOP permet l’échange de données complexes et structurées. Image Map Image incluse dans une page Web associant des liens hypertextes à des portions de l’image. Les images maps sont habituellement utilisées pour créer des menus de navigation sous forme graphique. IP Protocole permettant la communication entre machines distantes placées sur des réseaux hétérogènes Internet Le réseau Internet est un ensemble mondial de réseaux interconnectés reposant sur le protocole de communication TCP/IP. Ce réseau, tolérant aux pannes, permet le routage dynamique des informations. Le terme Internet est aussi fréquemment utilisé pour désigner les technologies reposant sur TCP/IP, telles que le Web, le courrier électronique, les groupes de communications... Intranet Réseau collaboratif basé sur les technologies Internet mais interne à une entreprise. Un Intranet est généralement privé et protégé des accès extérieurs au moyen d’un firewall (garde-barrière ou coupe-feu). ISAPI Internet Server API. Interface permettant aux serveurs Web Microsoft Internet Information Server et aux serveurs compatibles de communiquer avec des programmes externes. L’intégration de tels programmes avec le serveur est plus forte qu’avec l’interface CGI, ce qui permet des gains de performance importants. IW3 Structure d'accueil sécurisée pour les serveurs WEB, composée d'un environnement "chrooté" et de procédures d'administration du serveur. Java Langage de programmation, défini par Sun Microsystems, orienté - objet et indépendant de la plate-forme matérielle et système. Java est à la base des applets téléchargeables et exécutables dans les pages HTML. LibWIndus Librairie de fonctions "C sécurisé" utilisables par les cgi des serveurs WEB (Sécurisation des cgi, gestion des messages applicatifs, gestion des paramètres d'entrée, gestion de "templates") Maquette Application logicielle développée de façon succincte pour valider certains aspects de la spécification (présentation, navigation, ...). Une maquette n’a aucune fonctionnalité hors celles qu’on veut valider et n’est pas réutilisable pour le développement de l’application réelle. MIME Multipurpose Internet Mail Extensions. Spécification permettant de typer et de formater les documents transitant sur les réseaux Internet. La majorité des navigateurs Web et des outils de messagerie reposent notamment sur ce standard. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page 8 Version 2 13 mars 2000 Navigateur Web Application utilisée pour localiser et afficher des pages HTML et permettant la navigation de page en page en suivant les liens hypertextes. NSAPI Netscape Server API. Interface permettant aux serveurs Web de Netscape et aux serveurs compatibles de communiquer avec des programmes externes. L’intégration de tels programmes avec le serveur est plus forte qu’avec l’interface CGI, ce qui permet des gains de performance importants. Page HTML Unité cohérente d’affichage d’un navigateur Web codée en langage HTML et associée à une URL qui permet son transfert du serveur Web vers le navigateur selon le protocole HTTP. Une page HTML ou page Web peut être décomposée en sous-pages possédant leur propre URL. Plug-in (Module externe incorporé) Module ajoutant des fonctions à un navigateur Web. Les modules externes incorporés sont principalement utilisés dans les navigateurs Web pour inclure à l’intérieur d’une page Web des documents nécessitant un programme spécial pour les afficher et gérer l’interaction avec l’utilisateur. Le module externe incorporé à exécuter est déterminé d’après le type MIME du document. Prototype Application logicielle développée de façon partielle pour valider certains choix techniques de la conception. Un prototype est développé de façon incrémentale (ajout de fonctionnalités à chaque version) et est réutilisable totalement ou partiellement pour le développement de l’application réelle. Rubriquage Il s’agit du résultat de la structuration de l’information. C’est une phase importante qui consiste à organiser la connaissance qui sera délivré par le serveur. Serveur Web Application faisant office de serveur et proposant des services Web. Le rôle principal d’un serveur Web est de retourner des pages Web en réponse aux requêtes des navigateurs Web. Un serveur Web est implanté sur une machine Web. Site Web Ensemble d’applications de type serveur Web proposant des services sur un même sujet et partageant des données communes. Tag Balise, marqueur Elément du langage HTML servant à décrire la structure d'un document. Chaque structure de texte est encadrée par une paire de balises qui se présentent sous la forme suivante : <balise> texte affecté par la balise.</balise> TCP Protocole de communication fournissant une connexion fiable entre des machines hétérogènes. Des protocoles comme FTP, HTTP, Gopher ou WAIS utilisent les services de la connexion TCP. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page 9 Version 2 13 mars 2000 URL Uniform Resource Locator. Adresse d’un document, d’un élément inclus ou de toute autre ressource sur le Web. L’URL est formée de plusieurs parties, précisant notamment le protocole utilisé, l’adresse du serveur et la référence de l’élément sur ce serveur (par exemple, http://www.company.com/home.html). World Wide Web / Web / WWW Le World Wide Web est un réseau global d’informations hypertextes, partie intégrante du réseau Internet. Le World Wide Web est composé de serveurs Web accédés par des clients, les navigateurs Web. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB 8. GUIDE RNC-CNES-E-40-505 Page 10 Version 2 13 mars 2000 DE LECTURE 8.1 INTRODUCTION Le but de ce chapitre est d’orienter l’utilisateur de ce document dans sa démarche de recherche des recommandations et des règles. Les règles pour la réalisation d’un serveur Web énoncées dans ce document sont présentées : • en fonction du type de serveur choisi • en fonction de la phase du cycle de vie considérée. 8.2 PRESENTATION DES REGLES 8.2.1 STRUCTURE D’UNE REGLE Pour chaque règle, la description fait apparaître les rubriques suivantes : • la référence de la règle, • l’énoncé de la règle, consistant en une phrase synthétique, • la description détaillée de la règle précisant les différentes circonstances d’application de la règle, • la justification de la règle présentant l’objectif de la règle, ses avantages et inconvénients ainsi que des possibilités alternatives qui n’ont pas été retenues, • un ou plusieurs exemple(s) (si nécessaire), pour illustrer les applications de la règle, sans que cela constitue une manière obligatoire d’appliquer la règle, ainsi que des contre-exemples dans le cas où ceux-ci présenteraient un intérêt. 8.2.2 TYPES DE REGLES Il y a deux types de règles : • les exigences (le défaut) • les recommandations (comportant la mention (Recom) en dessous du nom de la règle). Les exigences sont imposées par l’application de ce standard ; les recommandations sont conseillées. METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Page 11 Version 2 13 mars 2000 8.2.3 CODIFICATION D’UNE REGLE La codification utilisée pour référencer les règles est la suivante : <Domaine>.<SousDomaine>.<Thème> avec : <Domaine> est un terme abrégé : AP : Analyse du Public AI : Analyse de l’Information AT : Analyse de la Technologie SS : Serveur Web Statique SD : Serveur Web Dynamique SE : Serveur Web Etendu <SousDomaine> est un terme non abrégé : Conception : Règles sur la phase de conception du serveur ou du site Web Configuration : Règles sur la configuration du serveur ou du site Web Ergonomie : Règles sur l’ergonomie et la charte graphique du site Formation : Règles sur la formation des personnes impliquées dans la création du serveur ou du site Web HTML : Règles sur l’utilisation du langage HTML Maintenance : Règles concernant la maintenance du serveur ou du site Web Performance : Règles concernant les performances du serveur Web Portabilité : Règles concernant la portabilité vis à vis des navigateurs Web Processus : Règles concernant l’enchaînement des tâches lors de la création du serveur ou du site Web Réalisation : Règles sur la phase de réalisation du serveur ou du site Web Sécurité : Règles sur la sécurité du serveur ou du site Web Spécification : Règles sur la phase de spécification du serveur ou du site Web Structure : Règles concernant la structuration du serveur ou du site Web Thème est le sujet traité par la règle. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB 8.3 RNC-CNES-E-40-505 Page 12 Version 2 13 mars 2000 LES MODELES D’ARCHITECTURE Le but de cette section est d’orienter l’utilisateur de ce document dans sa démarche de recherche et de mise en place d’une architecture de serveur Web en lui proposant les recommandations et règles appropriées. Cette section apporte des éléments de réponses à des questions telles que : • Quelles solutions peuvent être réalisées en utilisant telle architecture ? • Quelle architecture est appropriée pour tel besoin ? • Quelles sont les questions à se poser et quelles sont les étapes à suivre pour définir et réaliser un serveur Web ? Les solutions d’architectures décrites dans ce document définissent trois grands modèles d’architecture : • Les serveurs Web statiques (Cf. chapitre 8.3.1) permettent la création de sites Web présentant une information dont la structure et le contenu sont statiques. Les informations affichées peuvent éventuellement être complexes grâce à l’utilisation de techniques additionnelles décrites dans ce document. Ces types de serveurs correspondent à des cas d’utilisation du type serveur institutionnel (plaquette) ou présentation de produits (catalogue) ou d’activité. • Les serveurs Web dynamiques (Cf. chapitre 8.3.2) ajoutent aux serveurs Web statiques des possibilités de présenter des informations évolutives provenant de bases de données (qui peuvent être mises à jour par d’autres applications) ou des informations générées par des applications externes. Les cas d’utilisation de ces serveurs sont très nombreux, et ils recouvrent en particulier les cas de publications d’annuaires d’entreprise, de listes évolutives de produits, d’applications de type "groupware" et plus généralement de type base d’informations. • Les serveurs Web étendus (Cf. chapitre 8.3.3) ajoutent aux serveurs Web dynamiques la possibilité de pouvoir engager une communication directe et complexe entre un poste client et des applications serveurs autres que l’application d’origine. Une telle architecture combine les fonctions de présentation et de modification d’informations d’un serveur Web dynamique avec les fonctions classiques et générales d’applications distribuées. Les cas d’utilisation de ces serveurs sont les plus larges, mais leur complexité aussi, ce qui les rend applicables aux applications complexes allant au-delà des possibilités des serveurs Web "classiques" en particulier, en s’affranchissant des limites du protocole HTTP et du langage HTML. Les sections suivantes décrivent sommairement chaque catégorie d’architecture de serveurs Web et les principes techniques associés. Les règles propres à chaque catégorie sont décrites dans des chapitres suivants de ce document. Il est à noter que les règles présentées s’appliquent aussi bien à des serveurs Web simples qu’à des sites Web comportant plusieurs serveurs Web interagissant sur les informations présentées par le site Web. Dans la suite du document, le terme « serveur Web » s’appliquera aussi bien à un serveur Web qu’à un site Web. METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 Page 13 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Version 2 13 mars 2000 8.3.1 SERVEURS WEB STATIQUES 8.3.1.1 DESCRIPTION Les serveurs Web statiques sont les serveurs Web retournant une page prédéfinie statiquement en réponse à une requête d’un navigateur Web. Cette catégorie d’architecture exclut toute interaction entre le serveur Web et d’autres applications ou bases de données. Ainsi, le serveur Web se limite à retourner des documents préexistants. Les serveurs Web statiques reposent sur le protocole HTTP et retournent des pages HTML ou d’autres documents, désignés grâce à leur URL. Poste Client Réseau TCP/IP Serveur Pages HTML Navigateur Web (1) Requête HTTP (URL) Serveur Web (2) (4) (3) Page HTML Figure 1 : Serveur Web statique Les accès au serveur Web, à certaines pages ou à certains documents peuvent être sécurisés de 2 manières : • Cryptage des informations dans les limites légales • Accès confidentiel nécessitant la saisie d’un identifiant d’utilisateur et d’un mot de passe correspondant Les serveurs Web statiques utilisent également des techniques au niveau du poste client qui sont décrites ci-après. METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 Page 14 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Version 2 13 mars 2000 En plus des documents HTML et des images qui peuvent être envoyés par un serveur Web à un navigateur Web, d’autres types de documents peuvent être mis à disposition. Les documents nécessitant un programme spécifique pour être affichés et pour gérer l’interaction utilisateur peuvent être utilisés au niveau du poste client soit en lançant un module d’aide (helper application) à l’extérieur du navigateur Web ou bien en lançant un module externe incorporé (plug-in), affichant le document à l’intérieur de la page Web. Pages HTML Navigateur Web (1) Requête HTTP (URL) Serveur Web (3) Document (4) (2) Autres types de documents Module d'aide Figure 2 : Modules d’aide (helper applications) Pages HTML Navigateur Web (4) Module externe incorporé (1) Requête HTTP (URL) Serveur Web (3) Document (2) Autres types de documents Figure 3 : Modules externes incorporés (plug-ins) METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 Page 15 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Version 2 13 mars 2000 Les pages HTML peuvent contenir, en plus des informations textuelles et de navigation, des scripts client (par exemple, Javascript ou VBScript) qui sont utilisés et exécutés par le navigateur. Ces scripts sont essentiellement destinés à améliorer et à contrôler l’interaction et le dialogue avec l’utilisateur (par exemple, un contrôle de la validité des champs de saisie et l’affichage de messages d’erreur par le navigateur sur le poste client). En plus des divers types de documents affichés directement ou indirectement par le navigateur Web, des composants exécutables peuvent être téléchargés pour être exécutés dans le navigateur Web. Ces composants peuvent avoir une représentation graphique dans une page HTML ou bien s’exécuter de manière non visible. Dans le cadre d’une architecture Web statique, seuls les composants agissant à l’intérieur du poste client sont considérés, essentiellement des composants graphiques (par exemple, un message déroulant, une image sensible à certains événements...). Les composants communiquant avec des ressources distantes sont décrits dans le cadre d’architectures Web dynamiques étendues. Pages HTML Navigateur Web (4) (1) Requête HTTP (URL) Serveur Web (3) Composant Composant s'exécutant dans le navigateur (2) Composants Figure 4 : Composants graphiques 8.3.1.2 EXEMPLE Pour livrer aux utilisateurs la télémesure d’un satellite avec un serveur de type statique, on peut : • Décommuter la télémesure puis la mettre à disposition sur le serveur sous forme de pages HTML que l’utilisateur pourra lire. • Créer des pages permettant l’accès aux données brutes de télémesure que l’utilisateur pourra télécharger chez lui et les analyser par ses propres moyens (à l’aide d’une application externe). • Concevoir un module d’aide (helper application) ou un module externe incorporé (plug-in) que l’utilisateur pourra télécharger puis installer chez lui afin que les fichiers de données brutes de télémesure soient automatiquement analysés lors de leur téléchargement. La limitation de ce système est que les fichiers de télémesure disponibles sont fixés par le responsable du serveur : Si celui-ci décide qu’il y aura un fichier de télémesure brut pour la période du 1er au 15 Avril et un autre du 15 au 30 Avril, l’utilisateur intéressé par la période du 15 au 16 Avril devra télécharger les 2 fichiers. Dans le cadre de l'industrialisation des serveurs WWW, le CNES a fait développer le produit IW3 comprenant une structure d'accueil de serveur statique et les procédures d'exploitation associées ainsi qu'une librairie de fonctions applicatives sécurisées. METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 Page 16 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Version 2 13 mars 2000 8.3.2 SERVEURS WEB DYNAMIQUES 8.3.2.1 DESCRIPTION Les modèles de serveurs statiques décrits précédemment reposent sur une utilisation de pages et d’éléments statiques, ne permettant notamment pas d’interagir avec un système d’information en temps réel, ni de pouvoir instaurer un dialogue coopératif avec un utilisateur. Les serveurs Web offrant ces fonctions définissent une nouvelle catégorie; les serveurs Web dynamiques. Dans ce modèle, le serveur Web peut retourner soit des pages HTML statiques avec les mêmes fonctions que dans le cas des serveurs Web statiques, soit des pages HTML résultant de l’exécution d’un programme extérieur : Pages HTML statiques Navigateur Web (1) Requête HTTP (URL) Serveur Web (2) Appel à des ressources externes (4) Page HTML (3) Page HTML résultante Figure 5 : Serveur Web dynamique Plusieurs interfaces de communication entre le serveur Web et les applications externes existent. L’interface standard et originelle est l’interface CGI. En réponse à une requête nécessitant l’utilisation d’une ressource externe, le serveur Web exécute l’application correspondante dans un nouveau processus système. Les paramètres spécifiés dans la requête sont passés au programme appelé. En retour, le programme génère une page Web qui est retournée au navigateur Web : Pages HTML statiques Navigateur Web (1) Requête HTTP (URL) Serveur Web (4) Page HTML (2) Appel CGI (3) Page HTML résultante Script CGI Accès à des applications ou bases de données externes Fi Figure 6 : Interface CGI (Common Gateway Interface) METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page 17 Version 2 13 mars 2000 On peut noter également des extensions et des mécanismes voisins de ce modèle, tels que : • Des interfaces propriétaires, spécifiques à un serveur Web (NSAPI de Netscape, ISAPI de Microsoft, ...), • Les serveurs dynamiques interprétés reposant sur des modèles de pages (Livewire de Netscape, Active Server Pages de Microsoft, Cold Fusion d’Allaire, ...), • Les serveurs statiques interprétés dont les pages sont générées à partir de modèles de pages (NetObjects,...). Cette notion est liée à la fonctionnalité de SSI ( Server Side Include). Elle permet au serveur de construire des documents à la volée par assemblage de "morceaux " existants. La subtilité par rapport aux serveurs dynamiques, est que les "morceaux" en question existent de façon statique. Les documents produits ne sont donc pas construits ex nihilo. De plus, les éléments qui les composent sont éditables de façon statique comme les pages HTML standards. 8.3.2.2 EXEMPLE Pour livrer aux utilisateurs la télémesure du satellite avec un serveur de type dynamique, on peut, en plus des possibilités offertes par les serveurs statiques : • Donner à l’utilisateur la possibilité de définir les dates ou la télémesure l’intéressant et le format d’affichage qu’il désire, puis ensuite, générer dynamiquement les pages HTML répondant à sa requête (serveur dynamique). 8.3.3 SERVEURS WEB ETENDUS 8.3.3.1 DESCRIPTION Les serveurs Web étendus constituent un modèle de serveur dans lequel aux fonctions des serveurs statiques et dynamiques s’ajoutent des fonctions de communication directe entre le navigateur Web et des applications externes. Cette communication est établie par des composants applicatifs (par exemple, applets Java ou composants ActiveX) téléchargés dans le navigateur. Ce modèle combine à la fois les possibilités des serveurs Web plus classiques décrits ci-dessus et celles, plus générales, des applications distribuées : METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 Page 18 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Version 2 13 mars 2000 Pages HTML Ressources Externes Navigateur Web Serveur Web Composant s'exécutant dans le navigateur Composants Applications Externes Figure 7: Serveurs Web étendus 8.3.3.2 EXEMPLE Pour livrer aux utilisateurs la télémesure du satellite avec un serveur de type dynamique étendu, on peut, en plus des possibilités offertes par les serveurs statiques et dynamiques : • développer une application (en Java par exemple) qui, une fois téléchargée par l’utilisateur, interrogera directement les fichiers de données brutes de télémesure présents sur un serveur applicatif, les décommutera et les présentera en fonction des demandes de l’utilisateur. METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB 9. RÈGLES Page 19 Version 2 13 mars 2000 DE BASE 9.1 REGLES CONCERNANT L’ANALYSE DU PUBLIC Objectif L'analyse du public permet de déterminer les attentes, les goûts, le niveau et le domaine de compétence des utilisateurs du site Web. Démarche L'analyse du public comprend 4 études : • l'identification du public • l'évaluation de la connaissance du public quant au contenu de l'information • l'évaluation de l'expérience du public quant à la technologie Web • l'analyse des attentes du public AP.Description La nature du public visé doit être identifiée. Description Les éléments à identifier sont : • l'âge • la catégorie socio-professionnelle (profession, fonction ou activité) • le profil type du public principal, du public secondaire (groupes) • la langue usuelle du public • le volume d'audience et les plages horaires de consultation Justification Les pages du site Web peuvent être consultées par différents publics : il est donc nécessaire de les connaître pour adapter le contenu et la présentation des pages au public visé. Exemple Le public cible est le suivant : • Age : 20-60 ans • CSP : Ingénieurs, Techniciens • Langue : Français • Audience potentielle : 50 util./jour aux heures de bureau en France METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB AP.Connaissance.Métier RNC-CNES-E-40-505 Page 20 Version 2 13 mars 2000 La connaissance du public visé sur le sujet traité par le site doit être identifiée Description Les différents niveaux de connaissance peuvent être classifiés en : • expert • familiarisé • novice • étranger au domaine Justification Afin d'obtenir une bonne fréquentation, le contenu des pages du site doit être adapté à la connaissance préalable du public sur le sujet. Exemple Les profils visés sont : • Chefs de projet, développeurs pour les aider dans leurs choix (public principal) • Ingénieurs spécialisés pour obtenir un retour d'expérience sur un projet (public secondaire) • Toute personne de la société METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB AP.Connaissance.Web RNC-CNES-E-40-505 Page 21 Version 2 13 mars 2000 L’expérience du public visé quant à la technologie du Web doit être identifiée. Description Les éléments à identifier sont : • la maîtrise de l’utilisation d'un navigateur : − sa manipulation, − son paramétrage, • la maîtrise de l’utilisation d’une fonction de recherche, • la maîtrise de l’utilisation d’une messagerie électronique, • ... Justification Plus le public visé est expert dans le maniement de la technologie Web, moins il est nécessaire de "guider" la consultation des pages. Le contenu et la navigation dans le site devront donc tenir compte de cette caractéristique du public. Exemple Le public cible est familiarisé avec l'utilisation d'un navigateur. Les personnes concernées savent utiliser des fonctions de recherche lors de l'utilisation d'une messagerie (cf. menu Outils/Rechercher d’Exchange). METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB AP.Attentes Page 22 Version 2 13 mars 2000 Les attentes du public visé doivent être identifiées. Description Les attentes d'un utilisateur consultant un site peuvent être par exemple : • fournir ou se procurer des informations sur des produits • acquérir de nouvelles connaissances ou compétences • effectuer des recherches • s’abonner à des forums • partager une passion Justification Une bonne connaissance de l'attente du public cible permet d'adapter le contenu du site aux attentes identifiés. Exemple Les attentes des personnes cibles sont les suivantes : • collecter des informations relatives aux méthodes, langages et techniques de développement. • prendre contact pour obtenir le bilan et le retour d'expérience sur un projet. • accéder à d'autres serveurs extérieurs sélectionnés traitant du sujet demandé METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page 23 Version 2 13 mars 2000 9.2 REGLES CONCERNANT L’ANALYSE DE L’INFORMATION Objectif L'analyse de l'information permet d'obtenir l'état du patrimoine documentaire (quelque en soit le support) concerné par le site Web au moment de l'analyse. Démarche L'analyse de l'information passe par les étapes suivantes : • identification des informations répondant aux attentes du public visé, • évaluation de l'état actuel de l'information, • identification des propriétaires de l'information, • estimation de la fréquence de mise à jour et/ou révision nécessaires, • estimation du volume d'information à mettre à disposition. Les informations répondant aux attentes du public visé doivent être identifiées. AI.Attentes Description Les attentes en information sont identifiés en utilisant les résultats de la règle AP.Attentes. Les éléments à identifier sont : • les informations qui seront présentes systématiquement • les informations à inclure • les informations qui seront accessibles depuis d'autres sites • la forme de l'information (texte, graphique, tableaux, …) Justification L’étude des attentes du public visé en information permet d'évaluer l'effort de développement nécessaire. Exemple Les informations à inclure dans le site sont les suivantes : • la liste des activités • pour chaque activité : • une description générale • une description logistique : • une description technique (facultative) : • les nouveautés du mois METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB AI.Existant.Etat Page 24 Version 2 13 mars 2000 L'état de l'information à introduire dans le site doit être évalué. Description L'information à introduire dans le site se répartit en deux catégories : • l'information qui fait l'objet de documents pré-existants • l'information qui n'est pas consignée dans un document Pour les documents existants, les caractéristiques à identifier sont : • la localisation des informations disponibles • le support (papier, le format si informatique, audio, vidéo, …) • la langue • l'état d'avancement • le volume Pour l'information qui ne fait pas l'objet d'un document, les caractéristiques à identifier sont : • la localisation et la forme de l'information • l'évaluation du volume d'information à rédiger Remarque : Le volume est une expression de la taille des informations et s'exprime en terme de nombre de pages, de mots, d'images, d'illustrations... Attention : Toutes les données concernant l'état de l'information sont valables au moment où l'évaluation est réalisée, et de ce fait peuvent ne pas être figées. Il faut alors statuer sur les évolutions potentielles. Justification L’étude de l'état de l'existant permet de définir les ressources (humaines et matérielles) à prévoir pour la conception du site. Le volume de l'information à mettre en ligne est déterminant quant au choix de la technologie (selon sa fréquence de mise à jour et en terme d'hébergement). Exemple Les informations recensées comprennent : • des renseignements fournis oralement • des textes rédigés en français, fournis au format Word • 50 documents photographiques sous forme papier ou numérique. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB AI.Existant.Adaptation RNC-CNES-E-40-505 Page 25 Version 2 13 mars 2000 Les adaptations sur l'information actuelle doivent être identifiées. Description Les éléments à identifier sont : • la restructuration de l'information pour l'adapter à la technologie Web par rapport aux chartes graphiques et rédactionnelles • les illustrations nécessaires à créer pour améliorer ou enrichir le contenu de l'information • les travaux de traduction éventuels • les travaux de conversion de format des documents (support informatique, audio, vidéo) • les travaux de saisie (support papier) Justification L’étude des adaptations à réaliser permet d'évaluer une partie de l'effort de développement nécessaire. Exemple Les renseignements oraux doivent être mis par écrits et rédigés sous Word 97. METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB AI.Propriété Page 26 Version 2 13 mars 2000 Le propriétaire de l'information et les droits de diffusion doivent être identifiés. Description Les éléments à identifier sont, pour chaque information : • le propriétaire ou l'émetteur • la durée de validité • la confidentialité Remarque : La loi n° 78-17 du 6 janvier 1978 communément dénommée "LOI INFORMATIQUE ET LIBERTE" impose un certain nombre d'obligations relatives au traitement informatisé d'informations nominatives permettant d'identifier une ou plusieurs personnes physiques par le biais notamment de la constitution de fichiers. Justification La publication d'information est protégée par les droits d'auteurs. Avant toute publication, il faut connaître le ou les auteur(s) de l'information afin de demander ou de faire figurer des réserves quant au contenu de l'information. Exemple Toute photographie insérée dans le site doit être accompagnée du nom de son propriétaire. AI.Miseàjour Les besoins de révision et de mises à jour doivent être identifiés. Description Les éléments à identifier sont : • les informations qui devront être soumises à des révisions et des mises à jour • les caractéristiques qui interviennent dans la pérennité de l'information (date, événement, …) • les fréquences de mises à jours nécessaires Justification L'identification des besoins de révision et de mises à jour de l’information permet d’évaluer l’effort d’exploitation. Exemple Les informations doivent être mises à jour : • tous les mois pour les nouveautés • tous les trimestres pour les activités METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Page 27 Version 2 13 mars 2000 9.3 REGLES CONCERNANT L’ANALYSE DE LA TECHNOLOGIE Objectif L'analyse de la technologie permet de déterminer : • côté client, les installations nécessaires pour la consultation du site Web • côté réalisation : − les ressources matérielles et logicielles nécessaires au développement du site − les compétences nécessaires (utilisation de ressources interne ou externe) L'analyse technologique permet également de déterminer les contraintes en terme de sécurité et d'accès à l'information. Démarche L'analyse de la technologie se divise en 3 études : • la configuration nécessaire des installations du client • les environnements de développement et d’exploitation nécessaires au niveau : − des logiciels bureautique, PAO et multimédia − des logiciels spécifiques Web − du matériel du serveur − des compétences • les conditions de sécurité et de contrôle d'accès nécessaires METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB AT.Config.Client Page 28 Version 2 13 mars 2000 La configuration des installations du client doit être identifiée. Description Les éléments à identifier pour l'installation actuelle sont : • le type de navigateurs le plus largement utilisé • la ou les plates-formes utilisées • le type de connexion utilisé par la majorité du public visé pour accéder au site : via une liaison directe (connexion rapide) ou via une connexion commutée par l'intermédiaire d'un fournisseur local d'accès à Internet (connexion lente) • l'accès à une imprimante Les éléments à identifier pour l'utilisation du site sont : • les dispositifs supplémentaires pour l'affichage et les conditions d'utilisation • les dispositifs supplémentaires pour profiter des informations audio et vidéo et les conditions d'utilisation Attention : Toutes les données concernant la configuration des installations du client sont valables au moment où l'évaluation est réalisée, et de ce fait peuvent ne pas être figées. Il faut alors statuer sur les évolutions potentielles. Justification L'utilisateur consultant le site doit disposer d'une configuration adaptée à la consultation du site, en matière d'espace disque, de mémoire, d'écran, d'imprimante… Il faut bien connaître la configuration du poste client pour proposer un site adapté et/ou l'informer des ressources nécessaires impliquant des installations supplémentaires. Exemple Les utilisateurs utilisent Netscape version 4 avec le plug-in Acrobat pour consulter le site. METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB AT.Logiciels.géné Page 29 Version 2 13 mars 2000 Les besoins en logiciels de bureautique, de PAO et de multimédia nécessaires pour le développement du site Web doivent être identifiés. Description Les éléments à identifier sont : • logiciels graphiques nécessaires pour le traitement des images • logiciels multimédia nécessaires pour les traitements des animations, des vidéos, du son • outils de conversions de fichiers existants • outils de compression d'image, de vidéo et d'audio • éditeurs de texte • … Justification L’objectif est de se doter des outils nécessaires ou de limiter les besoins à ce qu’on sait faire avec les outils disponibles. Exemple Les besoins en logiciels de bureautique, de PAO et de multimédia pour le développement du site Web sont : Eléments à définir Résultat Logiciel de retouches d'images Adobe Photoshop Conversion de fichiers Word en HTML Microsoft Word 97 Conversion de fichiers FrameMaker en HTML WebWorks Publisher Conversion de fichiers graphiques Paint Shop Pro Création de GIF animés Microsoft GIF Animator Création de graphiques 3D et animation 3D Studio MAX Bibliothèques d'éléments graphiques Adobe Galery Effects METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB AT.Logiciels.Web RNC-CNES-E-40-505 Page 30 Version 2 13 mars 2000 Les logiciels spécifiques Web nécessaires au développement et à l’exploitation du site doivent être identifiés Description Les éléments à identifier sont : • le logiciel serveur Web (HTTPD) pour le site à créer • les services à implémenter sur le serveur (FTP, E-mail, DNS, …) FTP : Il est quelquefois intéressant économiquement de proposer un service FTP pour les fonctionnalités de téléchargement d'un contenu ou de programmes. Un service FTP est simple à maintenir et se fait pratiquement sur tout système d'exploitation. DNS : Un service DNS permet de disposer de noms de domaines personnalisés pour les utilisateurs. E-Mail : Un service E-mail permet de rendre vivant son site. • le ou les outils d'édition de pages • l'outil d'administration des pages du site • les outils de tests, de validation de l'arborescence du site pour en assurer la cohérence • les outils de programmation complémentaires indispensables pour les développements spécifiques (scripts CGI, JavaScript, …) : ces outils dépendent de l'architecture du serveur (serveur Web statique, serveur Web dynamique et serveur Web étendu). • les outils d'indexation de l'information • les outils d’analyse des logs Justification L'architecture Web repose sur une architecture Client/Serveur. Il existe plusieurs outils pour créer et exploiter les informations (outils d'édition et d'administration de pages) . Les informations peuvent être présentées de façon simple ou bien enrichies par des développements complémentaires. Exemple Besoins logiciels spécifiques pour le développement et l’exploitation du site Web : Eléments à définir Résultat Système de la machine hôte SOLARIS 2.4 Services Internet CERN Gestion de sécurité Fonctionnalités de sécurité offertes en standard par le serveur CERN Editeur de pages HTML PageMill, Microsoft FrontPage Administration des pages du site Microsoft FrontPage Langage de scripts et de développement JavaScript et Java Bases de données Metaphase METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB AT.Matériels RNC-CNES-E-40-505 Page 31 Version 2 13 mars 2000 Les matériels nécessaires à la mise en place et l’exploitation du site doivent être identifiés. Description La configuration minimale cible doit être identifiée en termes de : • Plate-forme • Système d'exploitation, • Mémoire ram, mémoire disque • Taille de l'écran • Présence d'une carte vidéo, son • Evolutions possibles Justification Cette étude permet de mettre en place les ressources matérielles nécessaires à la conception, au développement et à l’exploitation du site Web. Exemple Le développement doit être réalisé sur un PC Pentium sous Windows 95 avec : • 16 Mo RAM • 1 Go disque • un scanner pour intégrer photos et dessins METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB AT.Compétence RNC-CNES-E-40-505 Page 32 Version 2 13 mars 2000 Les compétences (ressources humaines) doivent être évaluées. Description Les compétences doivent être évaluées par domaine : • graphisme (photographie, PAO, design, …) • rédaction • développement d'applications • administration réseau • audio • vidéo Remarque : Le support d'experts est préconisé. Justification Le développement d'un site Web fait intervenir plusieurs compétences. Les compétences disponibles en interne ou complémentaire en externe doivent être évaluées pour faire face aux nécessités du développement. Exemple Le développement doit être confié à une équipe possédant des compétences dans les domaines suivants : • graphisme • rédaction • développement d'application • administration réseau METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 Page 33 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Version 2 13 mars 2000 9.4 CHOIX D’UN TYPE DE SERVEUR Les serveurs Web permettent de répondre à de nombreux besoins de présentation d’informations, d’interaction avec les utilisateurs et d’intégration avec des données et des systèmes existants. Le tableau suivant résume la couverture de ces besoins par chacune des architectures de serveurs. Tout besoin couvert par un type de serveur l’est également par un serveur de type plus élaboré. Afin de réduire la complexité de la solution, il est préférable de choisir le type de serveur le plus simple (par exemple, statique plutôt que dynamique) répondant à chacun des besoins : Besoins Serveurs Web statiques Serveurs Web dynamiques Serveurs Web étendus Publication d’informations statiques (institutionnelles, catalogue de services...) 999 9 9 Affichage de données complexes (données autres que du texte ou des images bitmap) 999 9 9 (plug-ins ou composants) (plug-ins ou composants) (plug-ins ou composants) Besoin d’interactions complexes avec l’utilisateur Récupération d’informations saisies par l’utilisateur (saisie de formulaires...) Mise à jour des informations depuis des bases de données ou des applications Mise à jour des informations en temps réel depuis des bases de données ou des applications Personnalisation des informations présentées en fonction des utilisateurs Besoins de communication directe entre un poste client et une application 999 9 9 (plug-ins ou composants) (plug-ins ou composants) (plug-ins ou composants) 999 9 (sauf statique interprété) 999 9 999 9 (sauf statique interprété) 999 9 (sauf statique interprété) 999 METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB 10. RÈGLES Page 34 Version 2 13 mars 2000 COMMUNES ET APPLICABLES AUX SERVEURS STATIQUES Les règles communes sont indépendantes de l’architecture choisie. Ce sont notamment celles qui sont applicables aux serveurs statiques. Les règles sont présentées en fonction de la phase du cycle de vie. 10.1 REGLES GENERALES SS.Processus.Analyses Des analyses préalables doivent être réalisées (analyse du public, de l’information et de la technologie). Description Les analyses à réaliser en préalable ou en début de phase de spécification sont : • l'analyse du public, • l'analyse de l'information, • l'analyse de la technologie. Remarque : Les règles applicables pour la réalisation de ces analyses font l'objet du chapitre 9. Justification Sans une étude de la cible visée par le serveur, ce dernier risque de n’être que très peu visité et donc de passer à côté de sa mission. Un tel échec peut être dû : • à des raisons techniques : l’utilisateur ne dispose pas d’une plate-forme adaptée au serveur (les exigences imposées peuvent être trop contraignantes), le volume des informations à transférer est trop important... • au contenu du serveur : l’information présentée n’est pas compréhensible par tous les utilisateurs ciblés ou bien l’utilisation du serveur est trop complexe. Attention : Si le site vise plusieurs populations distinctes, chacune d’elles doit être identifiée, de manière à pouvoir y rattacher si possible et/ou si nécessaire des sections différentes du serveur. Exemple (cf doc DR11) METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Processus.Développement Page 35 Version 2 13 mars 2000 Le développement d’un serveur Web doit suivre un cycle de vie adapté aux technologies web, avec les moyens de gestion associés. Description Comme tout projet informatique, le développement d’un serveur Web doit suivre un processus de développement. Cependant certaines particularités sont à prendre en compte : • Au cours de la phase de spécification, il est possible d’envisager des développements itératifs de maquette pour valider les aspects présentation, navigation, etc. • Au cours de la phase de conception, il est recommandé de procéder à des développements incrémentaux de prototypes pour valider certains choix techniques et des points délicats (présentation, navigation, performance, robustesse, etc.). • Le document de spécification doit contenir : • la définition des utilisateurs visés et les contraintes en découlant, • les exigences pour l’élaboration des chartes graphique, rédactionnelle et navigationnelle, • Les fichiers définissant le contenu d’un serveur Web et sa configuration doivent être gérés par un système de gestion de configuration, dès la phase de développement et durant la phase d’exploitation. Ceci concerne tous les fichiers, dont notamment : • les pages HTML • les fichiers téléchargeables • les modèles de pages • les programmes et les scripts éventuellement • les fichiers de configuration du serveur Web • la documentation • les moyens de production • Les fichiers utilisés par un serveur Web opérationnel ainsi que le serveur Web lui-même (moteur, fichiers de configuration, adresse...) doivent être séparés de la version utilisée en développement. Justification Le cycle de vie est un modèle qui permet de positionner et de suivre les activités d’un projet. Une réalisation Web est un projet. Il doit suivre un cycle de vie pour éviter la dispersion. Exemple Sans objet METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Processus.Tests RNC-CNES-E-40-505 Page 36 Version 2 13 mars 2000 Tous les niveaux de tests doivent être réalisés pour le développement d’un serveur Web. Description Comme tout projet informatique, le développement d’un serveur Web doit inclure des phases de tests : • tests unitaires de l’interface utilisateur et de la partie applicative, • tests de validation de l’ensemble (en particulier tests d’environnement, de performance, de sécurité), • recette externe sur site précédée d’un bilan technique (BT) et suivie d’une commission de revue des essais (CRE) comme décrit dans [DR1]. La documentation de tests doit être complète comme pour une application classique (dossiers de tests, journal d’essais, trace du passage des tests, ...) et un cahier de recette est obligatoire. Justification Les tests sont des activités indispensables pour garantir un fonctionnement correct du serveur développé, en conformité avec la spécification. Exemple Sans objet SS.Documentation La réalisation d’un serveur Web doit être documentée. Description Comme tout projet informatique, le développement d’un serveur Web doit inclure la rédaction de la documentation soit : • une documentation de spécification • un dossier de conception avec un dossier d'architecture • une documentation de tests complète avec un dossier de tests, journal d’essais, trace du passage des tests, ... et un cahier de recette • un dossier d'exploitation En particulier, un dossier d'exploitation et un dossier d'architecture sont nécessaires pour l'obtention de l'agrément sécurité d'un serveur WEB (Cf. [DR4] et [DR5]). Justification La documentation est un élément indispensable pour assurer un déroulement correct du développement et de la maintenance du serveur. Exemple : sans objet METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Ergonomie.MP&IHM RNC-CNES-E-40-505 Page 37 Version 2 13 mars 2000 Un ensemble de règles concernant l'interface homme machine du serveur Web doit être appliqué. Description Il faut définir l’ensemble des règles concernant l’ergonomie. Pour cela, il faut désigner les règles du document « Règles et recommandations d’ergonomie des interfaces Homme Machine informatiques » (DR4), applicables dans le cas précis du serveur à réaliser. Dans tous les cas, un sous-ensemble de ces règles est applicable à la réalisation des chartes ; ces règles sont listées en annexe du document (DR11) Justification Afin d’assurer une bonne ergonomie, maniabilité et robustesse d’un serveur Web, il est vital de respecter un ensemble de règles générales. Un serveur Web, c’est surtout de l’IHM. Exemple Sans objet METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Portabilité.Navigateur RNC-CNES-E-40-505 Page 38 Version 2 13 mars 2000 Les dispositifs proposés par le site Web doivent pouvoir être mis en oeuvre par tous les utilisateurs de la population cible. Description Les pages Web doivent pouvoir être visualisées correctement sur tous les navigateurs Web et toutes les plates-formes (Windows 3.x/95/NT, Unix, MacOs, ...) utilisés par la population ciblée. Il en est de même des mécanismes utilisés et il faut notamment veiller : • au langage utilisé pour les scripts clients (JavaScript), • à la disponibilité ou la possibilté de télécharger des plug-ins et des helpers sur les platesformes cibles, • à l’environnement d’exécution des composants inclus (Java...) Les contraintes imposées à l’environnement des utilisateurs peuvent éventuellement être plus fortes dans le cas d’une utilisation par un groupe spécifique d’utilisateurs (Intranet). Remarque : L'application de cette règle passe par la connaissance du matériel dont disposent les utilisateurs appartenant à la population cible (cf chapitre 9). Justification Afin d’assurer l’utilisabilité d’un serveur Web, il est vital de respecter des critères de portabilité de la solution choisie. Exemple Sans objet METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Sécurité.MP&Sécurite RNC-CNES-E-40-505 Page 39 Version 2 13 mars 2000 Les exigences du document " Exigences de sécurité pour l’utilisation des serveurs et relais HTTP " (DR5) doivent être appliquées, en particulier dans le cas d’un serveur Web accessible depuis l’extérieur du CNES. Description Les règles générales de sécurité telles que décrites dans (DR5) doivent être appliquées sur un projet de construction de serveur Web. Dans le cas particulier d’un site Web accessible depuis l’extérieur du CNES, l’application de ces règles est obligatoire et contrôlée au cours d’une recette « sécurité » (sanctionnée par un agrément sécurité). Remarque : Dans le cas d'un agrément sécurité, il est recommandé de développer un serveur le plus simple possible. A titre d’information complémentaire sur les exigences de sécurité d’un serveur Web, le document Cahier de recette du serveur HTTP UNIX du CERN (DR7) peut être consulté. Justification Un serveur Web constitue un développement à part entière et de par l’ouverture au système d’information qu’il propose, les règles de sécurité associées doivent être strictement respectées. Exemple Dans le cadre du produit IW3, ces règles sont mises en oeuvre au travers de la structure d'accueil "chrootée" et de la sécurisation des librairies applicatives. METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Page 40 Version 2 13 mars 2000 10.2 REGLES APPLICABLES EN PHASE DE SPECIFICATION SS.Ergonomie.Charte Une charte navigationnelle, une charte rédactionnelle et une charte graphique doivent être spécifiées. Description Lors de la spécification, on doit définir les exigences à respecter pour réaliser : • la charte graphique décrivant les règles de présentation (style, découpage, icônes,...) ; la participation de graphistes professionnels est fortement recommandée • la charte rédactionnelle contenant les règles de rédaction du contenu des pages, • la charte navigationnelle, décrivant les règles de navigation entre les différentes pages du serveur et vers d’autres serveurs. L'ensemble des règles applicables pour la spécification de ces chartes est présenté dans le document Règles pour la réalisation de chartes pour un serveur Web (DR11). Justification Sans charte graphique, les informations présentées par le serveur Web risquent de ne pas être homogènes et de dérouter l’utilisateur. De plus, l’absence de charte graphique risque de multiplier les retours sur la présentation, l’ergonomie des pages, .... Sans charte rédactionnelle, les informations présentées par le serveur Web risquent de ne pas être adaptées au public visé (non compréhensibles, pouvant prêter à confusion...). De plus, il est important de respecter la forme du message société. Sans charte de navigation, le serveur risque de ne pas être homogène et de dérouter l’utilisateur. Exemple (cf doc DR11) METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Spécification.Formation Page 41 Version 2 13 mars 2000 Les personnes qui spécifient un serveur Web doivent être formées aux technologies Web. Description Lors de la spécification, la connaissance du besoin n’est pas suffisante. Il est nécessaire de connaître les principes de fonctionnement d’un serveur Web et ses possibilités. Le support d’un spécialiste des technologies Web est vivement recommandé lors de cette phase. Au minimum, le spécifieur doit disposer (lui-même ou son support) des connaissances sur les domaines suivants : • les principes du protocole HTTP, • le langage HTML, ses contraintes et limites, ses différentes versions, • les formats graphiques, leurs contraintes et limites, • le mode d’interaction des formulaires (FORM) et les conséquences des performances du réseau sur le mode opératoire, à cause du protocole HTTP, • les informations stockables dans le journal des accès et le journal des erreurs, • l’appel aux applications CGI, les contraintes et limites. Selon le cas, des notions sur les possibilités des points suivants peuvent être nécessaires : • les scripts Javascript, • les applets Java voire ActiveX, • les extensions (plug-ins et helper applications), • les formats audio et vidéo ainsi que les applications « au fil de l’eau » (streaming) comme la téléconférence. Justification • La méconnaissance des technologies Web et de leurs possibilités risque de conduire à définir une spécification mal adaptée aux serveurs Web, en particulier les échanges de données entre l’utilisateur et le serveur sont très particuliers et sont difficilement comparables à un système client - serveur classique. • La découverte tardive des possibilités des serveurs Web risque de multiplier les demandes de modifications de la spécification de départ. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Spécification.Evolution RNC-CNES-E-40-505 Page 42 Version 2 13 mars 2000 Dès la spécification, il faut définir et caractériser les informations évolutives du site qui seront mises en évidence. Description Les informations présentées par un site Web sont amenées à évoluer (informations nouvelles, mises à jour des informations) et il est important d’en avertir l’utilisateur. Il faut définir, dès la spécification du site, le type des informations du site susceptibles d’évoluer (mise à jour ou création), de quelle façon (personnalisée ou non) et jusqu’à quel niveau de détail on veut les indiquer à l’utilisateur. Justification La vocation essentielle d’un site Web est d’informer ses utilisateurs. Les utilisateurs étant en général amenés à consulter le serveur de manière régulière, il est important pour capter leur attention et afin d’assurer une bonne qualité de service de leur permettre un accès rapide aux informations nouvelles. Il existe de nombreuses solutions, de granularité différente, pour permettre à l’utilisateur d’accéder aux informations nouvelles. La prise en compte a posteriori de la fonction de mise en évidence des informations nouvelles nécessite une modification du serveur qui peut être très coûteuse, surtout si elle doit être automatique. Exemple Selon le besoin spécifié, la solution en conception s’appuiera sur un serveur externe qui balaie régulièrement les pages statiques d’un ensemble de sites, ou nécessitera une solution particulière, pour des services basés sur des pages dynamiques ou des applications spécialisées. Ainsi, cela peut se traduire de différentes façons : 1)Il est possible de prévoir une page contenant des liens vers les nouvelles informations du serveur présentées par ordre chronologique inverse. Il faut alors proposer un lien vers cette page depuis la page d’accueil du serveur. 2)On peut ajouter un petit icône « new » après les informations nouvelles (...du jour, de la semaine, du mois, selon la spécification). 3)On peut également mettre en gras ou d’une couleur différente les liens vers les pages contenant les nouveautés. 4)Sur un serveur dynamique, on peut stocker l’identité de l’utilisateur et déterminer dynamiquement les pages du sites, nouvellement ajoutées depuis sa dernière visite (du site, du thème, etc. à spécifier). METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Spécification.FichierTrace RNC-CNES-E-40-505 Page 43 Version 2 13 mars 2000 Dès la spécification, les besoins du site en matière d’analyse des fichiers de trace des accès au serveur (log et erreur) doivent être définis. Description L’analyse des fichiers de trace des accès au serveur est un moyen de surveillance du fonctionnement du site Web. Cette analyse doit être spécifiée en terme de granularité, de fréquence et d’outillage (outils disponibles ou spécifiques). Dans le cas d’un site ouvert à l’extérieur du CNES et faisant l’objet d’un agrément sécurité, des exigences spécifiques sont énoncées dans le document « Exigences de sécurité pour l’utilisation des serveurs et relais HTTP » (DR5). Justification Les accès au serveur et les erreurs du serveur doivent être consignés dans un fichier afin de permettre la surveillance de l’exploitation du site et le suivi de sa conformité aux objectifs assignés, en utilisant les outils de trace disponibles. Exemple Voici quelques exemples d’opérations possibles avec l’analyse des fichiers de trace des accès au serveur: Juger de l’utilité de chaque service et page du site et décider des modifications (la granularité de l’analyse est à spécifier), Connaître les sites pointeurs d’origine des visiteurs, Détecter les types de navigateur utilisés par les visiteurs et adapter le contenu en conséquence, Analyser les goulets d’étranglement dans les services et moyens de support (réseau, base de données, processeurs applicatifs etc.), Détecter rapidement les accès frauduleux et prendre les mesures palliatives, Tracer les erreurs internes pour les corriger. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Spécification.Serveur RNC-CNES-E-40-505 Page 44 Version 2 13 mars 2000 Dès la spécification, il est recommandé de définir un dispositif de remplacement du serveur Web pendant les phases de maintenance. Description Pendant les phases de maintenance du serveur Web (installation et recette d’une nouvelle version, évolution de la structure de la base d’informations), il est conseillé d’interdire les accès au serveur opérationnel et d’avertir les utilisateurs de l’indisponibilité du serveur. Justification Pendant les phases de maintenance, le fonctionnement du serveur peut être perturbé et certains accès utilisateurs peuvent nuire au déroulement des opérations de maintenance. Il est préférable alors d’arrêter le serveur et d’avertir les utilisateurs de son indisponibilité en mettant à disposition un serveur alternatif affichant une page particulière. Exemple Pour le serveur ANDROMAQ, un serveur de maintenance est activé pendant les phases de maintenance du serveur opérationnel. La page affichée index.html ne donne accès à aucune fonctionnalité du serveur opérationnel : METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page 45 Version 2 13 mars 2000 10.3 REGLES APPLICABLES EN PHASE DE CONCEPTION ET DE REALISATION SS.Conception.Résultat La phase de conception doit déboucher sur un dossier de conception comprenant des éléments spécifiques aux sites Web et éventuellement un prototype ou une maquette. Description A la fin de la phase de conception, les questions suivantes doivent impérativement avoir trouvé une réponse : • Qui est visé par le serveur et quelles contraintes en découlent ? • Comment l’information sera-t-elle structurée ? (rubriquage) • A quoi ressemblera le résultat final ? (validé par une maquette ou un prototype) • Quels choix graphiques ont été faits ? (charte graphique) • Quels choix de rédaction ont été faits ? (charte rédactionnelle) • Comment l’utilisateur final naviguera-t-il dans l’information ? (charte de navigation) Le dossier de conception doit comprendre, en plus du contenu classique, les éléments suivants : • un document d’architecture du site, • un dossier justificatif des choix d’architecture, • un document de rubriquage (structuration de l’information), • les chartes graphique, rédactionnelle et navigationnelle • les dispositions induites par le choix des utilisateurs cible, • un document d’exploitation précisant les solutions retenues pour l’analyse des logs, la mise en évidence des informations nouvelles, .... Justification Si les réponses à ces questions n’ont pas été trouvées en fin de conception, de mauvais choix auront peut-être été faits et cela posera des problèmes bien plus importants par la suite. Exemple Sans objet. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Conception.Version RNC-CNES-E-40-505 Page 46 Version 2 13 mars 2000 La date de dernière modification des pages statiques doit être affichée. Description La date de dernière modification d’une page statique doit être affichée en bas de page. Dans le cas de l’utilisation d’un sommaire plus particulièrement avec des frames, il peut être plus judicieux d’afficher la date de modification dans le dit sommaire à côté des liens. Il faut toutefois la mettre en commentaire dans le code HTML des pages ne l’affichant pas. Justification Les informations publiées sur un serveur Web étant gérées de manière centralisée, il est possible de les mettre à jour relativement souvent. Ainsi, pour informer l’utilisateur de la fraîcheur des informations proposées, il est recommandé de préciser la date, et donc l’âge de ces informations. Exemple Le code HTML suivant peut être utilisé en bas de page: <CENTER><FONT SIZE="-1">Date de derni&agrave;re modification : 10 juillet 1997</FONT></CENTER> Ou, en Javascript : <SCRIPT> document.write("This page updated on "+ document.lastModified) </SCRIPT> METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Conception.FichierTrace Page 47 Version 2 13 mars 2000 Le mécanisme de trace des accès au serveur doit être mis en place et paramétré. Description Les accès au serveur et les erreurs du serveur doivent être consignés dans des fichiers de log. Le mécanisme de trace, spécifique du serveur utilisé, doit être paramétré en fonction des spécifications d’analyse de ces fichiers de trace (cf. règle SE.Spécification.Méthode&Applet). Dans le cas d’un site ouvert à l’extérieur du CNES et faisant l’objet d’un agrément sécurité, des exigences spécifiques sur les fichiers de log sont énoncées dans le document « Exigences de sécurité pour l’utilisation des serveurs et relais HTTP » (DR5). Afin d’en faciliter l’exploitation ultérieure, il faut effectuer une rotation des fichiers de log à intervalles réguliers, en fonction de la fréquence d’accès au serveur, et donc de la taille des fichiers de log. La rotation des fichiers de log consiste à archiver les versions courantes. Justification L’objectif de cette règle est de répondre aux exigences de la règle Spécification SS.Spécification.FichierTrace pour le suivi de l’exploitation du site. Exemple Sur le serveur httpd du CERN, on peut préciser dans le fichier de configuration du serveur deux directives pour générer les traces d’accès et les traces d’erreur: AccessLog /absolute/path/logfile ErrorLog /absolute/path/errorlog Par contre, le paramétrage de la trace est limité à la désactivation de la trace sur certaines adresses IP. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Configuration.MIME (Recom) RNC-CNES-E-40-505 Page 48 Version 2 13 mars 2000 Il est recommandé de définir les types MIME des documents téléchargeables au niveau du serveur. Description Un document retourné par le serveur Web doit définir correctement son type MIME. Les types MIME par défaut des documents téléchargeables doivent être définis dans la configuration du serveur en fonction de l’extension du fichier ou de son type, propres au système d’exploitation hébergeant le serveur Web. Justification Les documents retournés par un serveur Web à un navigateur Web respectent le format MIME. En fonction du type du document ainsi défini par le serveur, le navigateur peut décider de l’action à réaliser : affichage par le navigateur lui-même (HTML, images...), affichage par une application externe. Le navigateur Web définit en standard de telles associations type/action, et la liste de ces associations peut être étendue. Il est donc important que les types MIME des documents retournés par un serveur Web soient standards, et notamment tels que définis dans les navigateurs. Exemple Pour trouver les types standards MIME reconnus par défaut par les navigateurs Web, on peut consulter la liste des associations type/action enregistrées par le navigateur (consulter la rubrique options ou préférences). La RFC 2046 définit la norme d’utilisation des types MIME. Cette RFC peut être obtenue en recherchant des informations sur MIME à l’aide d’un moteur de recherche Web. Un lien direct existant est http://www.oac.uci.edu/indiv/ehood/MIME/rfc2046.html METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Configuration.ErreurAccès (Recom) RNC-CNES-E-40-505 Page 49 Version 2 13 mars 2000 Il est recommandé de définir les pages affichées en cas d’erreur d’accès au serveur. Description En cas d’erreur (erreur interne, page non trouvée, URL mal orthographié), la plupart des serveurs Web permettent l’affichage d’une page spécifique à un type d’erreur. La page doit permettre à l’utilisateur de comprendre l’erreur et de pouvoir reprendre son parcours sur le site et d’informer l’administrateur du site, le cas échéant. Justification En l’absence de pages spécifiques, les serveurs du commerce émettent un en-tête HTTP avec le code d’erreur et un texte explicatif simple en anglais. Les navigateurs du commerce, en recevant cet en-tête, affichent une page en anglais avec le code, l’explication et un lien hypertexte vers la page d’origine. En créant systématiquement des pages d’erreur, on peut les personnaliser et assurer l’homogénéité de la configuration du site selon les chartes graphique et rédactionnelle. Exemple La définition de la page à afficher en cas d’erreur interne au serveur Netscape Enterprise est possible dans le fichier de configuration obj.conf à l’aide de la directive : Error code="500" fn="send-error" path="/chemin/serverr.html" Avec le serveur httpd du CERN (depuis la version 3.0A), rajouter dans le fichier de configuration les références relatives des pages correspondant aux numéros d’erreurs : ErrorUrl 403 <location>/mon-message-erreur-403 ErrorUrl 404 <location>/mon-message-erreur-404 Avec le serveur Apache, voici des exemples de directives d’affichage de pages spécifiques d’erreur: ErrorDocument 500 http://foo.example.com/cgi-bin/tester ErrorDocument 404 /cgi-bin/bad_urls.pl ErrorDocument 401 /subscription_info.html ErrorDocument 403 "Sorry can’t allow you access today" METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Ergonomie.Plugin Page 50 Version 2 13 mars 2000 Les liens vers des documents nécessitant l’utilisation de dispositifs particuliers doivent être accompagnés d’informations sur la mise en oeuvre de ce dispositif. Description Une page HTML peut contenir des éléments qui peuvent être affichés à l’intérieur de la page seulement si l’utilisateur dispose du module externe incorporé approprié (plug-in). La page contenant ces éléments, et éventuellement les liens faisant référence à cette page doivent mentionner la nécessité de disposer de ce module externe incorporé. Afin de permettre aux utilisateurs de visualiser ces éléments, des informations sur le module externe incorporé nécessaire doivent être affichées. De plus, si le module externe incorporé est téléchargeable, un lien permettant de le télécharger et donnant des informations sur la procédure d’installation doit être affiché. Les liens pointant vers des documents affichables à l’aide d’un module d’aide (helper application) doivent mentionner l’outil utilisé et sa version. Le cas échéant, des informations, voire un lien, permettant de télécharger et d’installer le module peuvent être ajoutées. Justification Les utilisateurs ne disposant pas du module externe incorporé doivent pouvoir être guidés afin de pouvoir le récupérer et l’installer. Il ne faut faire aucune supposition sur les applications installées sur le poste de l’utilisateur. De plus, le nommage des fichiers, et notamment leurs suffixes, ne permettent pas forcément d’identifier leur format et l’outil à utiliser. Il est donc nécessaire de mentionner le format des fichiers téléchargeables. Il est à noter que les plug-ins et les helper applications, en tant qu’applications exécutables, sont dépendantes de la plate-forme cliente cible (matériel et système d’exploitation). Ceci a donc un impact sur l’étendue de la population visée par le serveur. Ne pas proposer de plug-in ou de helper application pour une plate-forme donnée réduit intrinsèquement la cible pouvant potentiellement utiliser l’information. Exemple Voici le code HTML correspondant à l’affichage du message : Pour visualiser l’animation ci-dessous, vous devez télécharger et installer le module incorporé XYZ.aaa.bbb <BR> Pour visualiser l’animation ci-dessous, vous devez <A HREF="http://xyz">t&eacute;l&eacute;charger</A> et installer le module incorpor&eacute; XYZ. <EMBED SRC="aaa.bbb"> Voici un lien permettant de télécharger le document Word6 proc.doc : <A HREF="/downloads/proc.doc">proc.doc</A> (56Ko, Word 6.0) METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Ergonomie.Lien RNC-CNES-E-40-505 Page 51 Version 2 13 mars 2000 Les liens vers des documents téléchargeables volumineux (> 30 Ko) doivent être accompagnés d’une mention de leur taille. Description Un lien vers un document téléchargeable (page HTML, fichier...) doit être suivi de la taille du document. Il faut de plus justifier la pertinence de mise à disposition de documents particulièrement volumineux (> 500 Ko). Justification La mention de la taille des documents permet de prévenir les utilisateurs du temps prévisible de téléchargement (fonction de la bande passante de leur connexion au site et de la charge du réseau) et de la taille nécessaire pour sauvegarder le document. Exemple <A HREF="http://xxx/yyy.doc">yyy.ps</A> (440 Ko; PostScript) METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.HTML.Norme RNC-CNES-E-40-505 Page 52 Version 2 13 mars 2000 Les pages Web doivent être créées en respectant la norme HTML définie par le W3C et supportée par les navigateurs ciblés. Description Les pages Web doivent respecter le standard HTML tel que défini par le W3C (World-Wide-Web Consortium). La version du langage HTML à utiliser doit être celle la plus supportée par les navigateurs Web ciblés. Dans le cas d’un serveur Web dédié à une population spécifique, on peut se permettre d’utiliser un standard HTML plus récent, pourvu qu’il soit supporté par les navigateurs Web dont disposent ces utilisateurs. L’utilisation d’un outil ou d’un service de validation de code HTML conformément au standard utilisé est préconisé. Justification Afin de permettre aux pages Web d’être consultées par les utilisateurs définis par la cible, il est nécessaire de se conformer aux standards. Ceci est d’autant plus nécessaire que plusieurs extensions propriétaires du langage HTML ont existé ou existent encore. Exemple La liste des outils ou services de validation de pages HTML est longue. Il est conseillé de se référer aux listes établies sur des sites tels que : • Le World Wide Web Consortium (www.w3c.org) qui liste des outils relatifs au langage HTML (éditeurs, vérificateurs...) • Les moteurs d’indexation des sites Internet, et notamment ceux classifiant les sites en fonction de catégories, tels que Yahoo (www.yahoo.com), et en recherchant la rubrique correspondant aux vérificateurs de code HTML (par exemple la catégorie Computers and Internet / Information and Documentation / Data Formats / HTML / Validation and Checkers) METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 Page 53 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Version 2 13 mars 2000 Les caractères spéciaux doivent être spécifiés à l’aide du code HTML correspondant. SS.HTML.CarSpéciaux Description Les caractères spéciaux, dont les caractères accentués, doivent être écrits à l’aide du code HTML correspondant : &code; . Justification Le code des caractères spéciaux est dépendant de la plate-forme et ces caractères doivent donc être spécifiés dans un format indépendant. Exemple En HTML, écrire : caract&egrave;re au lieu de : caractère Une table de correspondance entre les caractères ISO 8859-1 (Latin 1) et les noms HTML est donnée à : http://www.uni-passau.de/~ramsch/iso8859-1.html http://gotlib/INTERNET/DOC_WWW/DOC_HTML/accentuatio.html Voici quelques codes HTML des caractères spéciaux les plus utilisés : é ù " ç : : : : &eacute; &ugrave; &quot; &ccedil; SS.HTML.MotsClés è ô § < : : : : &egrave; &ocirc; &sect; &lt; ê î « > : : : : &ecirc; &icirc; &laquo; &gt; à ï » & : : : : &agrave; &iuml; &raquo; &amp; Les mots-clés ou tags et les options du langage doivent être mis en majuscules. Description Les mots-clés du langage HTML, nommés « tags » et encadrés des caractères < et >, ainsi que les options du langage doivent être mis en majuscules. Justification Ceci permet de repérer rapidement les tags et options dans un fichier HTML. Exemple Voir exemple de la règle SS.HTML.Structure METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.HTML.Commentaires RNC-CNES-E-40-505 Page 54 Version 2 13 mars 2000 Il est conseillé de mettre des commentaires dans un fichier HTML. Description Il est conseillé de commenter le code d’un fichier HTML en ajoutant des lignes au format suivant : <!-- commentaire ... -->. Justification La présence de commentaires dans un fichier HTML permet d’expliquer son contenu et donc de faciliter sa maintenance. Exemple Voir exemple de la règle SS.HTML.Structure SS.HTML.Tags A tout tag d’ouverture doit correspondre un tag de fermeture. Description Les instructions HTML sont délimitées par un tag d’ouverture (<TAG>) et un tag de fermeture (</TAG>). A tout tag d’ouverture doit correspondre un tag de fermeture, excepté dans certains cas pour les tags tels que <BR>, <HR>, <P>, .... Justification La présence du tag de fermeture, bien que, dans certains cas, facultatif en HTML, facilite la lisibilité. Exemple Voir exemple de la règle SS.HTML.Structure METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.HTML.Lisibilité RNC-CNES-E-40-505 Page 55 Version 2 13 mars 2000 Les fichiers HTML doivent être structurés. Description Les fichiers HTML doivent être structurés en utilisant les caractères blancs (touche ESPACE) et retour chariot (touche RETURN ou Entrée) qui ne sont pas interpretés par HTML. On peut ainsi : • limiter la longueur des lignes, • aérer le fichier en introduisant des lignes blanches, • indenter les lignes de façon à mettre en évidence les tags structurants ou à représenter la forme de la page telle qu’elle apparaît à l’écran, en particulier au niveau des listes. De plus, lorsqu’un tag ne concerne qu’une phrase courte, on peut écrire sur la même ligne le tag de début, la phrase et le tag de fin. Justification Le code HTML peut ainsi être présenté comme un code source classique en améliorant considérablement sa lisibilité. Exemple Voir exemple de la règle SS.HTML.Structure METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 Page 56 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Version 2 13 mars 2000 Les fichiers HTML doivent respecter une trame minimum. SS.HTML.Structure Description Les fichiers HTML doivent contenir un certain nombre de tags obligatoires aui constitue la trame minimum suivante : <HTML> <HEAD> </HEAD> <BODY> </BODY> </HTML> Justification Le respect d’une trame permet de ne pas oublier des tags importants et d’obtenir une homogénéité des fichiers HTML. Exemple de page HTML simple <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows1252"> <META NAME="Generator" CONTENT="Microsoft Word 97"> <TITLE>Nouveautés d'ANDROMAQ</TITLE> <!-- SCCS : @(#)nouveautes.html 1.2 --> <!-- Modifié par Gérard Guillot le 30-Mars-1998 --> </HEAD> <BODY BACKGROUND = "/Icones/fond.gif"> <CENTER><H1>Nouveaut&eacute;s d'ANDROMAQ</H1></CENTER> <CENTER>en date du 30/03/1998</CENTER> <P> <P> <P>La base d'informations ANDROMAQ continue de s'enrichir : <P> <DIR> <IMG SRC="/Icones/balle-jaune" ALIGN=TOP> <B> de nouvelles fiches sont disponibles</B> <DIR> <BR> <IMG SRC="/Icones/balle-rouge" ALIGN=TOP> Cooperation for Space Standardisation <BR> <IMG SRC="/Icones/balle-rouge" ALIGN=TOP> Assurance Produit Logiciels <BR> </DIR> ECSS - European ECSS-Q-80 - METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page 57 Version 2 13 mars 2000 <P> <IMG SRC="/Icones/balle-jaune" ALIGN=TOP> <B> quelques fiches ont été mises à jour</B> <DIR> <BR> <IMG SRC="/Icones/balle-rouge" ALIGN=TOP> Ada_83 Langage de programmation Ada version 83 <BR> <IMG SRC="/Icones/balle-rouge" ALIGN=TOP> Ada_95 Langage de programmation Ada version 95 <BR> <IMG SRC="/Icones/balle-rouge" ALIGN=TOP> Java - Langage de programmation orienté objet <BR> </DIR> <P> </DIR> <P> <IMG SRC="/Icones/statvis1.gif" ALT="ObjetGraphique Les 20 fiches les plus visuali&eacute;es" ALIGN=CENTER> </P> <P> <P>Vous pouvez : <P> <DIR> <IMG SRC="/Icones/balle-jaune" ALIGN=TOP> revenir &agrave; la <B><A HREF="Welcome">page d'accueil</A></B>, <P> <IMG SRC="/Icones/balle-jaune" ALIGN=TOP> lancer une "<B><A HREF="/CGI/Interroge">recherche et consultation</A></B>", <P> <IMG SRC="/Icones/balle-jaune" ALIGN=TOP> <B><A HREF="/CGI/Maj/GestionFiches">proposer</A></B> une fiche. </DIR> </BODY> </HTML> METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Page 58 Version 2 13 mars 2000 Exemple de page HTML avec frame <HTML> <META NAME="Author" CONTENT="Jean-Marc DELTRUEL"> <META NAME="Lastmodified" CONTENT="06/08/97"> <HEAD> <TITLE>Serveur WWW de la division QL</TITLE> </HEAD> <FRAMESET COLS="15%,*" FRAMEBORDER="0" FRAMESPACING="0" BORDER="0"> <FRAME NAME="table_des_matieres" SRC="table_des_matieres.html" MARGINWIDTH="2"> <FRAMESET ROWS="*,5%"> <FRAME NAME="page" SRC="page_de_garde.html" MARGINWIDTH="10" MARGINHEIGTH="1"> <FRAME SCROLLING="no" NAME="bas_de_page" SRC="bas_de_page.html"> </FRAMESET> </FRAMESET> <NOFRAMES> Dommage, votre <EM>navigateur</EM> ne sait pas lire les <EM>"frames"</EM> !. </NOFRAME> </HTML> METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.HTML.LienRelatif RNC-CNES-E-40-505 Page 59 Version 2 13 mars 2000 Les liens internes au site doivent être définis de manière relative. Description Les liens hypertextes définis dans les pages HTML doivent faire référence à des URL relatives au serveur, c’est à dire ne mentionnant pas le nom et le domaine de la machine hébergeant le serveur Web. Justification Un navigateur Web interprète les liens relatifs en les faisant précéder de l’adresse de base du serveur. Au niveau du serveur, la gestion de liens relatifs allège la maintenance d’un site en permettant notamment de pouvoir changer l’URL de base d’un serveur, ce qui permet à son tour de pouvoir utiliser les mêmes pages sur les versions opérationnelle et de développement du site, voire même sur une copie locale des fichiers HTML. Exemple Lien relatif : <A HREF="/documents/bienvenue.html"> Lien absolu (A éviter) : <A HREF="http://machine.du.domaine/documents/bienvenue.html"> METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.HTML.Image (Recom) RNC-CNES-E-40-505 Page 60 Version 2 13 mars 2000 Les pages HTML doivent pouvoir être utilisées sans afficher les images incorporées. Description Les pages HTML sont composées de texte et d’images. Les images doivent être utilisées dans un but illustratif mais ne doivent pas être vitales pour la compréhension et la navigation. Une page doit pouvoir être utilisée, c’est à dire être compréhensible et permettre les mêmes actions, que les images incluses soient affichées ou non. Il est possible de définir un texte alternatif à toute image incorporée qui est affiché si l’image n’est pas chargée (paramètre ALT de l’adressage d’une image). Ce texte doit être utilisé pour décrire brièvement l’image. De plus, afin de permettre au navigateur Web de positionner correctement les autres éléments constituant la page, pendant le chargement de la page ou bien si les images ne sont pas chargées, on peut indiquer la taille de l’image en pixels (paramètres HEIGHT et WIDTH de la définition de l’adressage d’une image). Enfin, si une image Map est utilisée (image et liens associés à des zones de l’image), des liens textuels alternatifs doivent être proposés. Une autre solution peut consister à proposer deux modes de navigation complémentaires, l’un utilisant uniquement des informations textuelles, l’autre reposant sur l’utilisation d’images. Ceci nécessite la création de deux structures parallèles pour le site Web. Justification L’affichage d’une page HTML contenant des images est en général réalisé par le navigateur Web en affichant d’abord le texte de la page et le texte alternatif à la place des images. Si l’utilisateur a configuré son navigateur Web dans ce sens, les images incluses sont ensuite chargées une à une. Les utilisateurs connectés au serveur à l’aide d’une connexion à débit relativement faible seraient pénalisés s’ils devaient attendre que toutes les informations soient chargées avant de pouvoir comprendre et utiliser la page. De plus, certains de ces utilisateurs utilisent leur navigateur Web en ne sélectionnant pas l’option d’affichage des images incluses. Exemple <IMG SRC="URL de l’image" ALT="Description de l’image" HEIGHT="20" WIDTH="20"> Le tag « ALT » permet de définir le texte alternatif. Les tags HEIGHT et WIDTH définissent la hauteur et la largeur de l’image. METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.HTML.ImageMap Page 61 Version 2 13 mars 2000 Les images maps doivent être définies côté client plutôt que côté serveur. Description Une image Map présentant une image utilisée pour représenter des liens de navigation doit être définie au niveau du client plutôt qu’au niveau du serveur. Justification La navigation grâce à une image Map définie au niveau client est gérée par le navigateur. Les images Map évitent ainsi une communication avec le serveur surtout depuis qu’elles sont supportées par tous les navigateurs Web récents. Il est de plus directement possible de voir, au niveau du navigateur, quelles zones de l’image sont interactives et sur quelles destinations elles pointent. Exemple Une image Map côté client définit, en plus d’une image, des associations entre des portions de celle-ci et des URL : <img src="navigbar.gif" usemap="#imgmap" border=0 ismap> <map name="imgmap"> <area shape="rect" coords="1,1,100,100" href="link1.htm"> <area shape="rect" coords="1,101,101,200" href="link2.htm"> <area shape="rect" coords="101,1,200,100" href="link3.htm"> <area shape="rect" coords="101,101,200,200" href="link4.htm"> </map> METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.HTML.EntêtePage Page 62 Version 2 13 mars 2000 Les informations standards d’en-tête de page (tags TITLE et META) doivent être définies. Description Le titre de toute page HTML statique ou générée, défini par le tag TITLE, doit être spécifique et évocateur du contenu de la page. De plus, certaines informations de l’entête de page (tag META) sont utilisées par des robots d’indexation de serveurs ou par d’autres utilitaires. Il est donc nécessaire de les renseigner. En particulier on renseignera : • META HTTP-EQUIV="Expires" avec la date d’expiration de l’information contenue dans la page • META NAME="keywords" avec une liste de mots-clés sur la page • META NAME="description" avec une description courte de la page • META NAME="author" avec le nom de l’auteur Dans la mesure du possible, les contenus des champs « TITLE » et « H1 » (titre affiché) doivent être identiques (cf. CR.Structure.Titrage). Justification C’est le titre de la page qui est utilisé automatiquement par les navigateurs Web lorsque la référence à la page est stockée (en tant que signet). C’est également ce nom qui est utilisé dans l’historique des pages parcourues. Ce nom doit pouvoir permettre une identification immédiate de la nature de la page par l’utilisateur. De plus, pour qu’un site soit consulté, il est utile de l’indexer dans les bases d’indexation des sites Web de la manière la plus appropriée. Ainsi, lister les mots-clés d’une page peut-être plus efficace que de laisser le robot d’indexation se baser sur le contenu de la page. Exemple Titre logique <HEAD> ⇓ <TITLE>CNES - Liste des sites</TITLE> <META HTTP-EQUIV="Expires" CONTENT="25-Dec-1998 12:00:00 GMT"> <META NAME="keywords" CONTENT="web development"> <META NAME="description" CONTENT="Liste des sites du CNES"> </HEAD> Titre affiché <BODY> ⇓ <H1> CNES - Liste des sites</H1> ... METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.HTML.NomURL RNC-CNES-E-40-505 Page 63 Version 2 13 mars 2000 Les noms et formats d’URL doivent être homogènes et contrôlés. Description Les noms et formats des URL doivent être homogènes dans l’ensemble du serveur. En particulier on veillera à : • l’utilisation de caractères minuscules dans les URL • ne pas utiliser de caractères spéciaux (caractères accentués...) • l’utilisation de séparateurs / ou \ • aux suffixes des documents (htm ou html) Justification Certains éléments du nommage des URL sont liés à la plate-forme matérielle et système. Ainsi, dans un souci d’homogénéité et afin de rendre une migration vers une autre plate-forme plus aisée, les dépendances vers la plate-forme doivent être minimisées, et tout du moins clairement identifiées. Exemple Sans objet METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Performance.Volume RNC-CNES-E-40-505 Page 64 Version 2 13 mars 2000 Le volume de transfert doit être limité afin d’augmenter les performances apparentes du serveur. Description Avec HTTP, chaque image ou élément incorporé dans une page HTML provoque l’ouverture d’une connexion TCP/IP. Il est donc recommandé de n’incorporer dans une page que le nombre d’éléments strictement nécessaires à la fonction de la page. Il n’est cependant pas possible de fixer une limite chiffrée étant donné la large variété des fonctions d’une page. Cette règle est à moduler en fonction des contraintes techniques des utilisateurs ciblés (Intranet, serveur externe, ...). Justification Le débit du réseau est un facteur limitant de la plupart des serveurs. On peut contourner cette limitation en surveillant la taille des fichiers transférés. Le volume de transfert d’une connexion HTTP est directement lié à la performance apparente du serveur et doit donc être le plus faible possible. Les pages doivent donc être conçues pour ne pas nécessiter le téléchargement d’informations trop volumineuses (la page elle-même et les éléments incorporés). Exemple On peut limiter le volume d’une page trop grosse en la découpant en pages plus petites. On peut également afficher des imagettes à la place d’images complètes, ces imagettes pointant vers les images complètes. A titre d’illustration, le tableau suivant donne des exemples de temps de transfert en fonction de la bande passante de la connexion et de la taille des informations chargées : Modem 14.4K Liaison 56K Liaison 128K Fichier de 10Ko 5,7s 1,4s 0,6s Fichier de 25Ko 14,2s 3,6s 1,6s Fichier de 50Ko 28,4s 7,1s 3,1s Fichier de 100Ko 56,9s 14,3s 6,3s Fichier de 500Ko 4,7min 71,4s 31,3s Fichier de 2Mo 19,4min 4,8min 2,1min METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.HTML.LgTable (Recom) RNC-CNES-E-40-505 Page 65 Version 2 13 mars 2000 L’utilisation de tables HTML longues doit être évitée. Description Il faut éviter : • les tables contenant des informations de taille importante, • les tables avec beaucoup de lignes (ce qui risque d’arriver, en l’absence de protection, dans des pages HTML générées dynamiquement par interrogation de base de données), • les tables contenant des tables en cascades excessives, • les tables dont certaines cases contiennent des images incorporées sans indication de dimensions (WIDTH et HEIGHT), • ... Justification Les navigateurs Web se basent sur le contenu d’une table pour en définir la taille ainsi que celle de ses constituants. Il faut donc attendre que toutes les informations aient été téléchargées avant de voir le moindre affichage de la table. En comparaison, les informations autres que les tables sont visualisées au fur et à mesure de leur téléchargement. Ceci permet à un utilisateur de commencer à exploiter l’information avant son chargement complet. Exemple Pour un serveur externe (Modem 14.4K), une simple table HTML de 10Ko met 5 a 6 secondes pour se charger et donc pour apparaître. Pendant ce temps, il ne se passe rien et l’utilisateur peut être dérouté. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Réalisation.Script (Recom) RNC-CNES-E-40-505 Page 66 Version 2 13 mars 2000 Le langage à utiliser pour les scripts client est le langage Javascript. Description Lorsque des scripts client sont utilisés à l’intérieur d’une page HTML, on préférera le langage Javascript, plus communément reconnu et interprété par les navigateurs Web. Etant donné les légères modifications d’interprétation du langage Javascript d’un navigateur Web à l’autre, il est cependant nécessaire de tester les pages et les scripts sur tous les navigateurs Web ciblés. Justification Il est nécessaire de s’assurer que les pages Web sont lisibles et que les mécanismes associés sont utilisables par les différentes plates-formes cibles. Le langage de script utilisé dans les pages HTML et interprété par les navigateurs Web est un de ces mécanismes. Il existe deux langages de script répandus qui sont JavaScript et VBScript. La recommandation de JavaScript (quand l’utilité d’un script est démontrée pour la fonction d’une page) s’explique par les raisons suivantes : • le langage Javascript et sa normalisation en font le langage de script client le plus largement reconnu, • le langage VBScript n’est reconnu que par le navigateur de Microsoft, • le langage VBScript incite fortement à utiliser des fonctions propriétaires Active Server Pages de Microsoft, limitant la portabilité du serveur, • le langage VBScript incite fortement à utiliser des extensions ActiveX propriétaires et uniquement sur processeurs Intel (en septembre 1997), limitant la portabilité de la plate-forme cliente. Exemple Sans objet. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Réalisation.Cookies RNC-CNES-E-40-505 Page 67 Version 2 13 mars 2000 Si des cookies sont utilisés par un serveur Web, ils doivent être déclarés avec une date d’expiration et leur domaine de visibilité doit être local au serveur. Description Si le mécanisme de cookies est utilisé par un site Web, les dispositions suivantes seront prises : • le lien sur la page appelant le cookie expliquera au visiteur potentiel pourquoi un cookie est utilisé, • la date d’expiration du cookie doit être positionnée en fonction de la durée de validité de l’information. En particulier, on veillera à déclarer comme temporaires à la durée de l’exécution du navigateur les cookies véhiculant de l’information propre à la session Web. Ceci est particulièrement important si les cookies sont utilisés pour stocker des informations confidentielles, • le domaine de visibilité d’un cookie doit être restreint au domaine du serveur Web qui le crée et le maintient. Justification Le mécanisme de cookies a été inventé par Netscape pour contourner l’absence de rémanence d’informations d’un appel HTTP à un autre et permettre ainsi au serveur d’un site de mémoriser l’historique d’un parcours de visiteur en vue de : • interroger plusieurs fois une base de données sans répéter les opérations de mise en place de contexte, • décompter les choix d’articles le long d’un parcours pour effectuer en une seule fois une opération globale (traitement, facturation, envoi). Ce mécanisme consiste, pour le serveur Web, à envoyer une identification spécifique au serveur (un cookie) qui est mémorisée par le client navigateur sur son disque dur. Ceci permet à un serveur Web (à l’origine du cookie ou tout autre serveur) de récupérer automatiquement ces informations lorsqu’il est accédé par un navigateur Web, et a priori, par l’utilisateur du poste de travail sur lequel le navigateur Web s’exécute. Afin d’éviter l’utilisation de ces informations à des fins illicites, celles-ci doivent être temporaires (elles sont détruites à la fin d’exécution du navigateur Web) ou permanentes (stockées sur disque) mais avec une durée de validité et n’être visibles que par le serveur Web qui les a créées. Exemple Les cookies sont propres à un poste client, celui-ci pouvant être partagé par plusieurs utilisateurs. Ainsi tous les utilisateurs exécutant un navigateur Web sur un poste partagé peuvent partager le même cookie et donc les mêmes informations confidentielles. Il est donc nécessaire de détruire le cookie dès que l’utilisateur quitte le navigateur Web ou à la demande de l’utilisateur, dès que celui-ci veut se "déconnecter". METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Page 68 Version 2 13 mars 2000 Un cookie est déclaré comme temporaire par le serveur le créant en ne mentionnant pas de date d’expiration. Il faut de plus prévenir l’utilisateur de la procédure à suivre pour que ces informations soient effectivement détruites (comme par exemple, en quittant le navigateur Web, ou bien en exécutant une action informant le serveur Web de détruire les informations contenues dans le cookie La spécification complète du mécanisme de cookie est sur : http://www.internic.net/rfc/rfc2109.txt METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Réalisation.ChampCaché Page 69 Version 2 13 mars 2000 Les champs cachés des formulaires HTML ne doivent pas contenir d’informations confidentielles. Description Les champs cachés dans les formulaires ne doivent pas être utilisés pour stocker des informations qui ne doivent pas être consultées par un utilisateur. Justification La valeur de champs cachés dans un formulaire n’est pas affichée avec la page HTML mais peut être facilement consultée en visualisant le code source de cette page. Exemple La valeur d’un champ caché peut facilement être consultée par un utilisateur visualisant le source d’une page HTML : <INPUT TYPE="HIDDEN" NAME="CODE_CARTE_BLEUE" VALUE="1234"> SS.Réalisation.Validation Un serveur Web doit être validé à chaque livraison. Description Lors de chaque livraison, une phase de validation doit être effectuée. Il s’agit comme pour un projet classique de jouer les scénarios de test créés lors de la phase de spécification. La seule particularité du Web est qu’il faut effectuer une revue complète des liens internes au serveur. Cette phase de validation doit être également effectuée lors de la livraison des différentes versions de prototype, en cohérence avec les objectifs définis pour chacune des versions. Justification Suite à une modification de la structure du site ou à cause une erreur dans l’écriture d’un lien, les liens internes peuvent devenir invalides. Exemple Il existe bon nombre d’outils automatisant la vérification de cohérence des liens entre pages d’un site ainsi que vers les pages externes à un site. Il est conseillé de se référer aux listes établies sur des sites tels que : • Le World Wide Web Consortium (www.w3c.org) qui liste des outils relatifs au langage HTML, dont des outils de vérification de liens. • Les moteurs d’indexation des sites Internet (cf. SS.HTML.Norme) METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Structure.Répertoire (Recom) Page 70 Version 2 13 mars 2000 Il ne faut donner accès au listing d’un répertoire que si cela correspond à un réel besoin. Description Le serveur Web doit être configuré pour que le contenu des répertoires contenant les fichiers HTML et les autres documents ne soit pas directement consultable. Il est nécessaire de créer une page spécifique listant les documents pour chaque répertoire contenant des documents téléchargeables. Utiliser dans la mesure du possible les fichiers index.html et welcome.html qui, sur certains serveurs Web, donnent accès par défaut au contenu d’un répertoire. Justification Les serveurs Web statiques présentaient originellement essentiellement des informations statiques qui étaient structurées à l’aide de répertoires. Certains serveurs Web proposent donc par défaut d’afficher le contenu d’un répertoire en réponse à une requête qui peut se traduire en nom de répertoire sur le serveur. Par exemple, une URL telle que http://xxx.yyy/documents/procedure.doc peut être détournée par un utilisateur en http://xxx.yyy/documents/ , qui résulterait en l’affichage du contenu du répertoire. Cet affichage pourrait permettre un accès aisé à des documents non référencés dans les pages du serveur et qui auraient dû être supprimés. La création d’une page spécifique permet de plus de proposer un format de page respectant les standards définis pour le site plutôt que de reposer sur les mécanismes internes du serveur Web. Exemple Sur le serveur Enterprise Server 3 de Netscape, le fichier de configuration obf.conf du serveur doit contenir la directive suivante pour retourner un message d’erreur "Not Found" en réponse à une requête (URL) qui aurait dû résulter en l’affichage du contenu d’un répertoire : Service fn="deny-existence" method="(GET|HEAD)" type="magnusinternal/directory" Avec le serveur httpd du CERN, ajouter dans le fichier de configuration du serveur la directive : DirAccess On pour autoriser l’accès direct au contenu des répertoires DirAccess Off pour interdire l’accès direct au contenu des répertoires ou DirAccess Selective pour autoriser l’accès direct au contenu des seuls répertoires contenant un fichier nommé .www_browsable Avec le serveur Apache, on peut utiliser la directive suivante dans le fichier de configuration pour ne pas autoriser l’accès direct au contenu des répertoires : METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Page 71 Version 2 13 mars 2000 Options Indexes None SS.Structure.Image Une image utilisée dans plusieurs pages ne doit pas être dupliquée au niveau du serveur. Description Les images et autres éléments inclus dans différentes pages Web doivent partager la même représentation physique et ne doivent pas être dupliqués sur le serveur. Les éléments susceptibles de mise en commun sont : • les images, logos et éléments décoratifs d’habillement des pages, • les éléments de texte inclus comme les en-têtes et pieds de page, • les applets. Justification Les navigateurs stockent dans un cache les éléments accédés au cours des dernières navigations. L’accès à un élément déjà stocké dans le cache est beaucoup plus rapide que son téléchargement. Or, le stockage et la recherche d’éventuels éléments contenus dans le cache reposent sur leur URL. Il est donc nécessaire de ne pas dupliquer l’information pour profiter au mieux des informations contenues dans le cache. La non-duplication simplifie aussi la maintenance : • un schéma d’architecture peut évoluer, sa duplication obligerait à tracer tous les exemplaires, • un texte inclus d’en-tête ou de pied de page peut contenir des liens, qui peuvent changer, leur duplication obligerait à tracer les localisations à changer, • ... Exemple La barre de séparation « barre_sep1.gif » ne doit être que dans ../Image/Bouton. Le logo « Spot4.gif » ne doit être que dans ../Image/Logo. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Structure.Page RNC-CNES-E-40-505 Page 72 Version 2 13 mars 2000 Les informations doivent être organisées dans une arborescence de répertoires au niveau du serveur. Description Les pages, les éléments inclus ainsi que les scripts ou programmes appelés par le serveur doivent être stockés dans des répertoires différents, en fonction de leur type. De plus, la structure des répertoires doit correspondre à l’arborescence générale de navigation et respecter les exigences énoncées dans le document « Exigences de sécurité pour l’utilisation des serveurs et relais HTTP » (DR5). Justification Cette règle est nécessaire dans un but de meilleure maintenabilité ainsi que dans un but de meilleure sécurité. En effet, l’accès à des scripts ayant une interaction avec des systèmes d’information peut ainsi plus facilement être sécurisé. Exemple Un exemple de structure de site préconisée par le document « Cahier de recette du serveur HTTP Unix du CERN: » (DR6). • admin • bin • config • dev • etc • logs • cgi-bin • administration • consultation • public • prive • serveur_files • administration • consultation • public • prive • usr • var METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Outil.Recherche RNC-CNES-E-40-505 Page 73 Version 2 13 mars 2000 Si un outil de recherche est utilisé, son utilisation doit être précisée. Description La définition d'un outil de recherche est faite à travers le choix d'un moteur d’indexation. Celui-ci permet d'effectuer des recherches sur le contenu du site au moyen de mots-clés. Un formulaire est établi pour saisir le ou les mots-clés et éventuellement des options de recherche, puis lancer l'exécution de la recherche. Justification L'utilisation d'un outil de recherche permet à l’utilisateur d'avoir un accès direct et personnalisé à l’information.. Exemple Le site doit être indexé au moyen du moteur d'indexation Fulcrum. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page 74 Version 2 13 mars 2000 10.4 REGLES APPLICABLES EN PHASE DE MAINTENANCE SS.Maintenance.FichierTrace Les procédures d’exploitation des fichiers de trace des accès au serveur doivent être formalisées. Description Les fichiers de trace des accès au serveur et des erreurs retournées par le serveur doivent être exploités selon des procédures formalisées dans un document d’exploitation du serveur, en conformité avec les exigences énoncées dans la règle SS.Spécification.FichierTrace. De plus, les procédures d’exploitation des fichiers de trace doivent respecter les exigences énoncées dans le document « Exigences de sécurité pour l’utilisation des serveurs et relais HTTP » (DR5). Justification L’exploitation des fichiers de trace (logs) constitue un élément essentiel permettant de garantir une bonne utilisabilité du serveur et de se prémunir contre les accès frauduleux. Il est donc important que les procédures d’exploitation soient formalisées et acceptées par tous les acteurs (administrateur du serveur Web, administrateur de la machine hébergeant le serveur, responsable sécurité). Exemple Il existe de nombreux outils d’analyse des logs générés par les serveurs Web. Il est conseillé de se référer aux listes établies sur des sites tels que : • Le World Wide Web Consortium (www.w3c.org) qui liste des outils relatifs au Web, dont des outils d’analyse de logs. • Les moteurs d’indexation des sites Internet, et notamment ceux classifiant les sites en fonction de catégories, tels que Yahoo (www.yahoo.com), et en recherchant la rubrique correspondant aux outils d’analyse de fichiers de log (par exemple la catégorie Top / Computers and Internet / Software:Internet / World Wide Web / Servers / Log Analysis Tools) Les procédures d'exploitation contenues dans le produit IW3 permettent entre autre l'exploitation des fichiers logs au travers d'une interface WWW. METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.Maintenance.Version (Recom) Page 75 Version 2 13 mars 2000 La date de dernière modification des pages doit être mise à jour. Description La date de dernière modification d’une page statique ou des informations présentées dans une page générée dynamiquement doit être mise à jour. Justification La procédure de mise à jour de ces dates doit être définie dans le manuel d’exploitation du site. Exemple Sans objet SS.Maintenance.Cohérence La cohérence des liens externes doit être vérifiée. Description Les liens externes au serveur doivent être vérifiés régulièrement et la procédure de vérification doit être formalisée dans le document d’exploitation du serveur. La vérification de la cohérence doit porter sur l’existence des liens, et le maintien de leur pertinence. Justification Un utilisateur peut être dérouté ou tout du moins son appréciation sur la qualité du site peut être diminuée si le site paraît mal maintenu et contrôlé. Il est donc nécessaire d’éviter les pages d’erreur résultant de la non-disponibilité d’une page pointée par un lien. Ainsi, les liens externes au serveur sont susceptibles de pointer sur des documents qui peuvent évoluer et ne plus être disponibles ou valides. Il faut donc les vérifier régulièrement. Exemple Il existe de nombreux outils automatisant la vérification de cohérence des liens vers les pages externes à un site. Il est conseillé de se référer aux listes établies sur des sites tels que décrits dans HTML(SS.HTML.LienRelatif). METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB 11. RÈGLES APPLICABLES AUX SERVEURS WEB RNC-CNES-E-40-505 Page 76 Version 2 13 mars 2000 DYNAMIQUES Outre les règles applicables aux serveurs statiques, les règles spécifiques aux serveurs dynamiques sont présentées en fonction du cycle de vie. 11.1 REGLES GENERALES SD.Sécurité.Unix Si le serveur et les développements associés résident sur une plateforme de type UNIX, les exigences du document "Règles de sécurité pour les développements sous UNIX " (DR6) doivent être appliquées. Description Les règles générales de sécurité telles que décrites dans (DR6) doivent être appliquées sur un projet de construction de serveur Web dynamique. Justification Un serveur Web constitue un développement à part entière, les règles de sécurité associées doivent être strictement respectées. Exemple Sans objet. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page 77 Version 2 13 mars 2000 Le développement d’un serveur Web dynamique doit suivre un cycle de vie adapté aux technologies Web, avec les moyens de gestion associés et tous les niveaux de tests doivent être réalisés. SD.Processus Description En complément des règles SS.Processus.Développement et SS.Processus.Tests applicables aux serveurs statiques et dynamiques, il est nécessaire de préciser pour les serveurs dynamiques : • les programmes CGI doivent être gérés en configuration, • les tests unitaires et d’intégration de chaque CGI doivent être réalisés ainsi que l’intégration des composants pour la partie applicative. Justification Sans objet Exemple Sans objet SD.Processus.Prototype (Recom) La démarche de développement préconisée pour les CGI est le prototypage. Description La démarche de développement préconisée pour les CGI s’apparente au RAD (Rapid Access Developpent ). Elle consiste en une phase de prototypages successifs (trois versions maximum) puis une phase de réalisation faisant évoluer le dernier prototype vers le produit final. Les objectifs de chaque version du prototype doivent être définis clairement vis à vis des spécifications du serveur et validés lors de sa livraison. La validation devra identifier le niveau d’application des évolutions (évolutions de niveau conception ou de niveau spécification). Justification Cette phase de prototypage permet de valider les solutions préconisées et éventuellement d’affiner le besoin technique. Exemple Sans objet. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page 78 Version 2 13 mars 2000 11.2 REGLES APPLICABLES EN PHASE DE SPECIFICATION SD.Spécification.Méthode &CGI (Recom) Pour le développement de la partie applicative (CGI), il est conseillé d’utiliser une méthode de spécification. Description Pour la partie applicative (CGI), il est souhaitable lors de la spécification du serveur Web d’utiliser (comme pour un développement classique) une méthode de spécification. Justification Le développement d’un serveur Web s’apparente au développement d’une application, et à ce titre, les choix de spécification doivent être documentés. La méthode OMT est la méthode orientée objet préconisée par le CNES, pour ce qui concerne la phase d’analyse. Elle est particulièrement adaptée pour les applications de type client/serveur et doit être utilisée en respectant les les Règles et recommandations pour l’utilisation de la méthode OMT (DR2). L’utilisation d’un outil support de la méthode OMT permet de faciliter sa mise en oeuvre. Exemple La spécification du projet SIPAD (Système d’Information, de Préservation et d’Accès aux Données) du Centre de Données de la Physique des Plasmas (CDPP) a été réalisée en appliquant la méthode OMT avec l’outil ObjectPartner disponible sur la plate-forme de la division Qualité Logiciel. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page 79 Version 2 13 mars 2000 11.3 REGLES APPLICABLES EN PHASE DE CONCEPTION ET DE REALISATION SD.Conception.Méthode&CGI (Recom) Il est recommandé d’utiliser une méthode de conception pour le développement de la partie applicative (CGI). Description Pour la partie applicative (CGI), il est souhaitable lors de la conception du serveur Web d’utiliser une méthode de conception. Justification Le développement d’un serveur Web s’apparente au développement d’une application, et à ce titre, les choix de conception doivent être documentés. La méthode OMT est une des méthodes orientées objet préconisées par le CNES, pour ce qui concerne la phase de conception. Elle est particulièrement adaptée pour les applications de type client/serveur et doit être utilisée en respectant les Règles et recommandations pour l’utilisation de la méthode OMT(DR2). L’utilisation d’un outil support de la méthode OMT permet de faciliter sa mise en oeuvre et éventuellement de générer le code. Exemple La conception préliminaire du projet Préservation et d’Accès aux Données) des Plasmas (CDPP) a été réalisée en l’outil ObjectPartner disponible sur Qualité Logiciel. SD.Conception.IHM&CGI SIPAD (Système d’Information, de du Centre de Données de la Physique appliquant la méthode OMT avec la plate-forme de la division Il faut, lors de la conception, séparer la partie IHM (HTML) de la partie traitement. Description Comme pour un développement classique, il est souhaitable de bien séparer la partie IHM (ici HTML) de la partie traitement proprement dit. En particulier, les CGI générant dynamiquement des pages HTML doivent s’appuyer sur des modèles. Justification Pour les évolutions et la maintenance, il est souvent très dommageable qu’une modification « minime » de l’IHM entraîne une modification des traitements. Exemple L’utilisation de modèles de pages, d’une manière similaire aux serveurs Web dynamiques interprétés est un moyen de parvenir à une meilleure isolation entre la partie HTML et les traitements. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SD.Conception.Saisies RNC-CNES-E-40-505 Page 80 Version 2 13 mars 2000 Le serveur Web doit prévenir des modifications ou saisies abusives de champs cachés ou à choix restreint d’un formulaire HTML. Description Tout champ d’un formulaire HTML non modifiable (caché), ou à choix restreint (parmi une liste) doit être contrôlé par le programme, au niveau du serveur Web, traitant le résultat du formulaire. Justification La valeur de tout champ d’un formulaire HTML, même non modifiable (caché), ou à choix restreint (parmi une liste) peut être abusivement forcée à une valeur et retournée au serveur. Le serveur doit donc s’assurer que les valeurs retournées sont valides. Exemple On doit tester que les valeurs saisies dans les champs sont des valeurs valides, qui plus est, autorisées pour l’utilisateur. SD.Conception.ScriptClient Les scripts client ne doivent pas être utilisés pour décider de l’affichage ou pas d’informations confidentielles. Description Un script client, s’exécutant au niveau du navigateur Web, ne doit pas être utilisé pour afficher ou pas de l’information confidentielle. De tels contrôles doivent être réalisés au niveau du serveur. Justification Un utilisateur averti peut modifier une page HTML et les scripts clients inclus. Il ne faut donc pas que cette page contiennent des informations confidentielles. Exemple Une telle portion de code : <script language="JavaScript"> if (uid == 1) document.writeln( "Welcome super user,<BR>"); </script> peut facilement être modifiée par un utilisateur et être exécutée pour détourner certains tests : <script language="JavaScript"> document.writeln( "Welcome super user,<BR>"); </script> METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SD.Conception.UtilScript RNC-CNES-E-40-505 Page 81 Version 2 13 mars 2000 L’identité d’un utilisateur d’un script ou programme à accès restreint doit être vérifiée en début d’exécution. Description Par mesure de sécurité, il est recommandé de tester le bon fonctionnement du mécanisme d’authentification en tête des scripts ou programmes nécessitant l’authentification de l’utilisateur. Justification Les mécanismes d’authentification des serveurs sont robustes, mais une erreur de configuration de la sécurité est possible. La mesure décrite ici permet de renforcer les contrôles de sécurité. Exemple Par exemple, on peut, en utilisant le langage Perl, vérifier si un script est bien exécuté au nom d’un utilisateur : if ( $ENV{REMOTE_USER} ) { ... } else { # Erreur, pas de nom d’utilisateur, donc prévenir l’administrateur # car problème d’authentification } La méthode proposée ci-dessus n’est cependant pas une garantie que l’utilisateur s’est authentifié, mais elle permet d’effectuer un contrôle simple et permet de prévenir l’administrateur du site d’un problème du mécanisme d’authentification. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SD.Conception.InfoConfident RNC-CNES-E-40-505 Page 82 Version 2 13 mars 2000 Des paramètres transmis à l’intérieur d’une URL ne doivent pas contenir d’informations confidentielles et doivent être testés par le programme les utilisant. Description Les paramètres décrits dans une URL sont directement accessibles à un utilisateur et facilement modifiables. La modification de valeurs de tels paramètres ne doit pas porter atteinte à la sécurité. Elle ne doit notamment pas permettre à un utilisateur d’accéder à des fonctions qui ne lui sont pas permises. Les scripts et programmes doivent de plus être suffisamment robustes pour détecter les valeurs erronées. Il est de plus préconisé d’utiliser la méthode POST pour la soumission de formulaires pour éviter que l’utilisateur ait un accès aisé aux informations et puisse les modifier facilement. Justification Les paramètres transmis dans une URL sont visibles et peuvent être modifiés par un utilisateur, surtout si leur fonction est facilement interprétable. La fonction d’un script peut alors être détournée. La modification de valeurs de tels paramètres ne doit pas porter atteinte à la sécurité. Elle ne doit notamment pas permettre à un utilisateur d’accéder à des fonctions qui ne lui sont pas permises. Les scripts serveurs et programmes doivent de plus être suffisamment robustes pour détecter les valeurs erronées. La transmission d’un formulaire utilise deux méthodes : • <FORM METHOD="GET" ACTION="/cgi-bin/(exécutable quelconque)"> envoie les paramètres en clair, concaténés derrière l’URL de l’exécutable CGI qui sera appelé, • <FORM METHOD="POST" ACTION="/cgi-bin/(exécutable quelconque)"> envoie les paramètres par un fichier séparé qui est mis dans le fichier d’entrée standard stdin de l’exécutable CGI qui sera appelé, L’emploi de POST cache un peu plus les paramètres mais au prix d’une connexion supplémentaire qui peut être préjudiciable aux performances Exemple Une URL contenant en paramètre des informations confidentielles peut être facilement détournée : http://site.domaine/cgi-bin/exec.cgi?command=list&user=staff définissant les paramètres command et user peut être réécrite : http://site.domaine/cgi-bin/exec.cgi?command=list&user=root METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SD.Réalisation.CGI (Recom) RNC-CNES-E-40-505 Page 83 Version 2 13 mars 2000 Le langage préconisé pour les CGI est le « C sécurisé ». Description Le langage préconisé pour le codage des CGI est le « C sécurisé » en conformité avec les Règles de sécurité pour les développements sous UNIX . (DR6). Les Règles et recommandations pour l’utilisation du langage C (DR8) doivent être appliquées. Pour les serveurs non ouverts à l’extérieur, il est possible d’utiliser le Perl V5.03 ou plus, ou Java. Si le langage Java est utilisé, les règles applicables aux applications standalone du document Règles et recommandations pour l’utilisation du langage Java(DR3) doivent être appliquées. Justification Le langage « C sécurisé » offre toutes les garanties sur le respect des contraintes de sécurité. Le langage interprété Perl est très adapté aux manipulations de texte. Le langage Java est un langage orienté objet bien adapté au codage d’applications conçues avec une méthode orientée objet (cf. règle SD.Conception.Méthode&CGI) et présentant un certain nombre de garanties sur le respect des contraintes de sécurité. Exemple Sans objet. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page 84 Version 2 13 mars 2000 11.4 REGLES APPLICABLES EN PHASE DE MAINTENANCE Les serveurs Web dynamiques n’induisent pas de règles supplémentaires par rapport aux serveurs Web statiques. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB 12. RÈGLES APPLICABLES AUX SERVEURS WEB RNC-CNES-E-40-505 Page 85 Version 2 13 mars 2000 ÉTENDUS Les serveurs Web de type étendu héritent des caractéristiques des serveurs dynamiques en se rapprochant beaucoup plus des logiciels client - serveur classiques. De ce fait, les règles applicables sont celles des serveurs dynamiques mais aussi celles d’un développement classique. Certaines de ces règles doivent cependant être précisées. Le développement d’un serveur Web étendu doit suivre un cycle de vie adapté aux technologies Web, avec les moyens de gestion associés et tous les niveaux de tests doivent être réalisés. SE.Processus Description En complément de la règle SD.Processus applicable aux serveurs dynamiques, il est nécessaire de préciser pour les serveurs étendus : • les applets doivent être gérés en configuration, • les tests unitaires et d’intégration de chaque applet doivent être réalisés ainsi que l’intégration des composants pour la partie applicative. Justification Sans objet Exemple Sans objet METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SE.Spécification.Méthode&Ap plet RNC-CNES-E-40-505 Page 86 Version 2 13 mars 2000 Pour le développement de la partie applicative exécutée sur le client (applet), une méthode de spécification doit être utilisée. Description Il est indispensable lors de la spécification de la partie applicative d’un serveur Web étendu exécutée sur le client (applet) d’utiliser une méthode orientée objet. Justification Le développement de la partie applicative d’un serveur Web étendu exécutée sur le client (applet) s’apparente au développement d’une application orientée objet, et à ce titre, la méthode de spécification utilisée doit être orientée objet. La méthode OMT est la méthode orientée objet préconisée par le CNES, pour ce qui concerne la phase d’analyse. Elle est particulièrement adaptée pour les applications de type client/serveur et doit être utilisée en respectant les Règles et recommandations pour l’utilisation de la méthode OMT(DR2).. L’utilisation d’un outil support de la méthode OMT permet de faciliter sa mise en oeuvre. Exemple Sans objet. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB RNC-CNES-E-40-505 Page 87 Version 2 13 mars 2000 SE.Conception.Méthode&Appl Pour le développement de la partie applicative exécutée sur le client (applet), une méthode de conception doit être utilisée. et Description Il est indispensable lors de la conception de la partie applicative d’un serveur Web étendu exécutée sur le client (applet) d’utiliser une méthode orientée objet. Justification Le développement de la partie applicative d’un serveur Web étendu exécutée sur le client (applet) s’apparente au développement d’une application orientée objet, et à ce titre, la méthode de conception utilisée doit être orientée objet. La méthode OMT est une des méthodes orientées objet préconisées par le CNES, pour ce qui concerne la phase de conception. Elle est particulièrement adaptée pour les applications de type client/serveur et doit être utilisée en respectant les Règles et recommandations pour l’utilisation de la méthode OMT (DR2). L’utilisation d’un outil support de la méthode OMT permet de faciliter sa mise en oeuvre et éventuellement de générer le code. Exemple Sans objet. SE.Réalisation.Applet Le langage préconisé pour le développement de la partie applicative d’un serveur Web étendu exécutée sur le client (applet) est Java. Description Le langage Java est le langage préconisé pour le développement de composants téléchargeables (applet). Le document Règles et recommandations pour l’utilisation du langage Java (DR3) doit être appliqué. Justification Le langage Java est le langage le plus couramment supporté par les navigateurs Web pour les composants téléchargeables. L’indépendance du langage Java vis à vis de la plate-forme utilisée est un autre facteur essentiel de sa préconisation. De plus, les composants téléchargeables en Java, en général sur le modèle JavaBeans, sont exécutés par une machine virtuelle Java dans le navigateur, machine qui est soumise à des restrictions suivant un modèle de sécurité connu. Exemple : sans objet. METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Page laissée intentionnellement blanche RNC-CNES-E-40-505 Page 88 Version 2 13 mars 2000 METHODE ET PROCEDURE _______ REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB 13. INDEX RNC-CNES-E-40-505 Page 89 Version 2 13 mars 2000 DES REGLES AI.Attentes Page 23 AI.Existant.Adaptation Page 25 AI.Existant.Etat Page 24 AI.Miseàjour Page 26 AI.Propriété Page 26 AP.Attentes Page 22 AP.Connaissance.Métier Page 20 AP.Connaissance.Web Page 21 AP.Description Page 19 AT.Compétence Page 32 AT.Config.Client Page 28 AT.Logiciels.géné Page 29 AT.Logiciels.Web Page 30 AT.Matériels Page 31 SD.Conception.IHM&CGI Page 79 SD.Conception.InfoConfident Page 82 SD.Conception.Méthode&CGI (Recom) Page 79 SD.Conception.Saisies Page 80 SD.Conception.ScriptClient Page 80 Les informations répondant aux attentes du public visé doivent être identifiées Les adaptations sur l'information actuelle doivent être identifiées L'état de l'information à introduire dans le site doit être évalué Les besoins de révision et de mises à jour doivent être identifiés Le propriétaire de l'information et les droits de diffusion doivent être identifiés Les attentes du public visé doivent être identifiées La connaissance du public visé sur le sujet traité par le site doit être identifiée L’expérience du public visé quant à la technologie du Web doit être identifiée La nature du public visé doit être identifiée Les compétences (ressources humaines) doivent être évaluées La configuration des installations du client doit être identifiée Les besoins en logiciels de bureautique, de PAO et de multimédia nécessaires pour le développement du site Web doivent être identifiés Les logiciels spécifiques Web nécessaires au développement et à l’exploitation du site doivent être identifiés Les matériels nécessaires à la mise en place et l’exploitation du site doivent être identifiés Il faut, lors de la conception, séparer la partie IHM (HTML) de la partie traitement. Des paramètres transmis à l’intérieur d’une URL ne doivent pas contenir d’informations confidentielles et doivent être testés par le programme les utilisant. Il est recommandé d’utiliser une méthode de conception Le serveur Web doit prévenir des modifications ou saisies abusives de champs cachés ou à choix restreint d’un formulaire HTML. Les scripts client ne doivent pas être utilisés pour décider de l’affichage ou pas d’informations confidentielles. METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SD.Conception.UtilScript Page 81 SD.Processus Page 77 SD.Processus.Prototype (Recom) Page 77 SD.Réalisation.CGI (Recom) Page 83 SD.Sécurité.Unix Page 76 SD.Spécification.Méthode & (Recom) Page 78 SE.Conception.Méthode&Applet Page 87 SE.Processus Page 85 SE.Réalisation.Applet Page 87 SE.Spécification.Méthode&Applet Page 86 SS.Conception.FichierTrace Page 47 SS.Conception.Résultat Page 45 SS.Conception.Version Page 46 SS.Configuration.ErreurAccès (Recom) Page 49 SS.Configuration.MIME (Recom) Page 48 SS.Documentation Page 90 Version 2 13 mars 2000 L’identité d’un utilisateur d’un script ou programme à accès restreint doit être vérifiée en début d’exécution. Le développement d’un serveur Web dynamique doit suivre un cycle de vie adapté aux technologies Web, avec les moyens de gestion associés et tous les niveaux de tests doivent être réalisés. La démarche de développement préconisée pour les CGI est le prototypage. Le langage préconisé pour les CGI est le « C sécurisé ». Si le serveur et les développements associés résident sur une plate-forme de type UNIX, les exigences du document "Règles de sécurité pour les développements sous UNIX " (DR6) doivent être appliquées. Pour le développement de la partie applicative (CGI), il est conseillé d’utiliser une méthode de spécification. Pour le développement de la partie applicative exécutée sur le client (applet), une méthode de conception doit être utilisée. Le développement d’un serveur Web étendu doit suivre un cycle de vie adapté aux technologies Web, avec les moyens de gestion associés et tous les niveaux de tests doivent être réalisés. Le langage préconisé pour le développement de la partie applicative d’un serveur Web étendu exécutée sur le client (applet) est Java. Pour le développement de la partie applicative exécutée sur le client (applet), une méthode de spécification doit être utilisée. Le mécanisme de trace des accès au serveur doit être mis en place et paramétré. La phase de conception doit déboucher sur un dossier de conception comprenant des éléments spécifiques aux sites Web et éventuellement un prototype ou une maquette. La date de dernière modification des pages statiques doit être affichée. Il est recommandé de définir les pages affichées en cas d’erreur d’accès au serveur. Il est recommandé de définir les types MIME des documents téléchargeables au niveau du serveur. La réalisation d’un serveur Web doit être documentée. Page 36 SS.Ergonomie.Charte Page 40 SS.Ergonomie.Lien Page 51 SS.Ergonomie.MP&IHM Page 37 SS.Ergonomie.Plugin Page 50 Une charte navigationnelle, une charte rédactionnelle et une charte graphique doivent être spécifiées. Les liens vers des documents téléchargeables volumineux (> 30 Ko) doivent être accompagnés d’une mention de leur taille. Un ensemble de règles concernant l'interface homme machine du serveur Web doit être appliqué. Les liens vers des documents nécessitant l’utilisation de dispositifs particuliers doivent être accompagnés d’informations sur la mise en oeuvre de ce dispositif. METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB SS.HTML.CarSpéciaux Page 53 SS.HTML.Commentaires Page 54 SS.HTML.EntêtePage Page 62 SS.HTML.Image (Recom) Page 60 SS.HTML.ImageMap Page 61 SS.HTML.LgTable (Recom) Page 65 SS.HTML.LienRelatif Page 59 SS.HTML.Lisibilité Page 55 SS.HTML.MotsClés Page 53 SS.HTML.NomURL Page 63 SS.HTML.Norme Page 52 SS.HTML.Structure Page 56 SS.HTML.Tags Page 54 SS.Maintenance.Cohérence Page 75 SS.Maintenance.FichierTrace Page 74 SS.Maintenance.Version Page 75 SS.Outil.Recherche Page 73 SS.Performance.Volume Page 64 SS.Portabilité.Navigateur Page 38 SS.Processus.Analyses Page 34 SS.Processus.Développement Page 35 SS.Processus.Tests Page 91 Version 2 13 mars 2000 Les caractères spéciaux doivent être spécifiés à l’aide du code HTML correspondant. Il est conseillé de mettre des commentaires dans un fichier HTML Les informations standards d’en-tête de page (tags TITLE et META) doivent être définies. Les pages HTML doivent pouvoir être utilisées sans afficher les images incorporées. Les images maps doivent être définies côté client plutôt que côté serveur. L’utilisation de tables HTML longues doit être évitée. Les liens internes au site doivent être définis de manière relative. Les fichiers HTML doivent être structurés Les mots-clés ou tags et les options du langage doivent être mis en majuscules Les noms et formats d’URL doivent être homogènes et contrôlés. Les pages Web doivent être créées en respectant la norme HTML définie par le W3C et supportée par les navigateurs ciblés. Les fichiers HTML doivent respecter une trame minimum A tout tag d’ouverture doit correspondre un tag de fermeture La cohérence des liens externes doit être vérifiée. Les procédures d’exploitation des fichiers de trace des accès au serveur doivent être formalisées. La date de dernière modification des pages doit être mise à jour. Si un outil de recherche est utilisé, son utilisation doit être précisée Le volume de transfert doit être limité afin d’augmenter les performances apparentes du serveur. Les dispositifs proposés par le site Web doivent pouvoir être mis en oeuvre par tous les utilisateurs de la population cible. Des analyses préalables doivent être réalisées (analyse du public, de l’information et de la technologie). Le développement d’un serveur Web doit suivre un cycle de vie adapté aux technologies web, avec les moyens de gestion associés. Tous les niveaux de tests doivent être réalisés pour le développement d’un serveur Web. METHODE ET PROCEDURE _______ RNC-CNES-E-40-505 REGLES ET RECOMMANDATIONS POUR LA REALISATION D'UN SERVEUR WEB Page 36 SS.Réalisation.ChampCaché Page 69 SS.Réalisation.Cookies Page 67 SS.Réalisation.Script (Recom) Page 66 SS.Réalisation.Validation Page 69 SS.Sécurité.MP&Sécurite Page 39 SS.Spécification.Evolution Page 42 SS.Spécification.FichierTrace Page 43 SS.Spécification.Formation Page 41 SS.Spécification.Serveur Page 44 SS.Structure.Image Page 71 SS.Structure.Page Page 72 SS.Structure.Répertoire (Recom) Page 70 Page 92 Version 2 13 mars 2000 Les champs cachés des formulaires HTML ne doivent pas contenir d’informations confidentielles. Si des cookies sont utilisés par un serveur Web, ils doivent être déclarés avec une date d’expiration et leur domaine de visibilité doit être local au serveur. Le langage à utiliser pour les scripts client est le langage Javascript. Un serveur Web doit être validé à chaque livraison. Les exigences du document " Exigences de sécurité pour l’utilisation des serveurs et relais HTTP " (DR5) doivent être appliquées, en particulier dans le cas d’un serveur Web accessible depuis l’extérieur du CNES. Dès la spécification, il faut définir et caractériser les informations évolutives du site qui seront mises en évidence. Dès la spécification, les besoins du site en matière d’analyse des fichiers de trace des accès au serveur (log et erreur) doivent être définis. Les personnes qui spécifient un serveur Web doivent être formées aux technologies Web. Dès la spécification, il est recommandé de définir un dispositif de remplacement du serveur Web pendant les phases de maintenance. Une image utilisée dans plusieurs pages ne doit pas être dupliquée au niveau du serveur. Les informations doivent être organisées dans une arborescence de répertoires au niveau du serveur. Il ne faut donner accès au listing d’un répertoire que si cela correspond à un réel besoin. REFERENTIEL NORMATIF REALISE PAR : Centre Spatial de Toulouse Délégation à l'Assurance de la Qualité 18 Avenue Edouard Belin 31401 TOULOUSE CEDEX 4 Tél : 05 61 27 31 31 - Fax : 05 61 27 31 79 CENTRE NATIONAL D'ETUDES SPATIALES Siège social : 2 pl. Maurice Quentin 75039 Paris cedex 01 / Tel. (33) 01 44 76 75 00 / Fax : 01 44 46 76 76 RCS Paris B 775 665 912 / Siret : 775 665 912 00082 / Code APE 731Z