Web client, web browser : client web, navigateur web.

Besoin

Afficher des pages/applications Web et naviguer entre elles.

Analyse

Un client Web est un composant logiciel installé sur la machine d'un utilisateur final.

Il dialogue avec un ou plusieurs serveurs Web à qui il demande des ressources telles que :

  • des pages Web
  • des feuilles de styles pour ces pages Web
  • des images (contenues dans les pages Web ou non)
  • des fichiers audio
  • des fichiers video
  • des archives (zip, etc.)
  • du code d'applications (Javascript, jar, exe, etc.)
  • d'autres types de documents (PDF, XML, etc.)
  • etc.

Pour interpréter certains types de ressources (fichiers Flash, Shockwave, PDF, Java parfois, etc.), un client Web doit parfois disposer de plugins.

Conception

Le client Web dialogue avec un serveur Web via le protocole HTTP.

  • une requête HTTP contient
    • l'URL de la ressource recherchée
    • divers autres paramètres liés à configuration du navigateur (langue préférée, etc.)
  • une réponse contient
    • des informations sur la ressource trouvée (son type MIME notamment, qui permetta au navigateur de l'interpréter)
    • les données de la ressource trouvée, comme :
      • le code HTML d'une page Web (incluant éventuellement du JavaScript)
      • les octets d'une image
      • etc

La réponse est ensuite interprétée :

  • par le client web s'il sait comment traiter le type MIME de la ressource reçue
  • par un plugin du client web
  • par un autre logiciel (le client web peut demander de le sélectionner ou se souvenir de la dernière sélection, ou demander l'OS d'exécuter le logiciel adéquat pour ce type de fichier)

Support

Au fil du temps la diversité de support des clients web en terme de :

  • technologies utilisées (HTML5, CSS3, Javascript)
  • caractéristiques variables d'affichage (dimensions, fontes)

a abouti à concevoir les sites/webapps selon des principes de :

  • conception web adaptative (responsive web design), stratégie de tolérance aux défaillances (fault tolerance) via :
    • mode dégradé (graceful degradation) donnant priorité à la présentation, au visuel
    • mode réaussé (progressive enhancement) : donnant priorité au contenu/à la structure. Préférable, ne serait-ce que pour être correctement adapté aux plates-formes mobiles.

Automation

Utile pour tests.

Design

La conception d'un site web/d'une webapp en elle-même est l'activité de web design.

Exemples

Des exemples de clients Web sont :

  • Navigateurs
    • Chrome (Google)
    • IE (Microsoft) — La version 6 pour Windows est plus conforme aux standards que ses prédecesseurs 5.0 et 5.5. Réclame cependant assez de mémoire pour ne pas faire grésiller votre disque dur sans discontinuer. Il est gratuit. La version 5 pour Mac fait un beau travail de conformance aux standards.
    • JavaSoft HotJava — Navigateur en Java développé par Sun. Project abandonné aujourd'hui (voir d'autres projets de navigateurs Java comme Jazilla).
    • Konqueror — Léger, anglophone, et conforme aux standards pour Linux.
    • Lynx — Mode texte uniquement, pour plates-formes Unix et VMS.
    • NCSA Mosaic — Le premier navigateur.
    • Netscape Navigator — Gratuit, conforme à 5 standards importants, y compris XML et DOM. Si votre machine n'est pas assez puissante, vous riquez de le trouver lent. Disponible en français.
    • MozillaOSS et gratuit respectant les standards. Il est la base sur laquelle sont construits d'autres navigateurs, par exemple Netscape 7. Il est rapide et doté de nombreuses fonctionalités (mail, chat, DOM Inspector).
    • Opera — Léger et rapide respectant les standards. Disponible sur 5 OS, et en français.
    • W3C Amaya — Développé par le W3C. A la fois navigateur et éditeur.
  • Composants
    • Android
      • WebView
    • iPhone
    • Java

Notes

  • La Same Origin Policy limite les requête d'un client web à son serveur, ce qui est peut être contourné via la CORS.
  • Egalement désigné sous le terme plus général de "client Web" (rapport au "serveurs" Web auquels il se connecte)
  • Peut constituer un client "universel", qui ne dépend plus d'une l'application installée sur tel ou tel serveur.
  • supportent généralement l'exécution de code JavaScript (inclut dans les pages Web téléchargée ou placé dans des fichiers JavaScript séparés)
  • constitue la partie cliente d'une architecture C/S Web.
  • Editeur Apple Google Mozilla Microsoft
    Produit Safari/iOS Chrome/Android Firefox/ IE Opera
    Version 1 6 7
    Domaine Technologie Release 0 0 0
    Navigation Onglets Oui Non
    Popups Blocage possible Oui
    Recherche Oui
    Protocole HTTP 1.1+
    Langage HTML 4.01
    XHTML 1.0
    WML 2.0
    CSS 2
    JavaScript Interpréteur Oui 1.3/1.5
    Debugger Non
    XML Affichage via XSL
    Feuilles de style
    Base
    XSLT Oui
    Xpath
    RDF
    MathML
    XML-RPC
    SOAP
    Namespaces Oui
    XLink
    DOM via XSL 2
    Sécurité Certificats X.509 Téléchargement de CA
    Cookies
    SSL Oui 3.0
    Java JRE 1.1.4 (SDK for Java 4.0)
    JNI Oui Oui
    Plate-forme Windows 95 Oui
    98 Oui Oui
    NT 4 Oui Oui
    2000 Oui Oui
    MacOS Oui Oui
    Linux Oui Oui
    Rendu Webkit Webkit

    Voir