recursal/MDN huggingface dataset:
Hôte
====

Un hôte est un périphérique connecté à l'Internet (ou à un réseau local). Des hôtes appelés serveurs offrent des services supplémentaires comme l'hébergement de pages web ou le stockage de fichiers et de courriels.

Voir aussi
----------

* Hôte sur Wikipédia
Texel
=====

Un **Texel** est un pixel unique dans une carte de texture, qui est une image qui est utilisée (en tout ou en partie) comme image présentée sur la surface d'un polygone dans une image rendue en part) 3D. Il ne doit pas être confondu avec le pixel qui est l'unité d'espace de l'écran. C'est l'une des principales différences entre Texel et pixels, les pixels sont des données d'image. Les composants Texel sont constitués de données subjecives, ils peuvent donc être une image aussi bien qu'une carte de profondeur.

Le processus de mappage des Texel appropriés à leurs points correspondants sur un polygone est appelé **texture mapping**, qui est une étape du processus de rendu d'une image 3D pour l'affichage. Le texture mapping est généralement effectué avant d'éclairer la scène; cependant, dans WebGL, l'éclairage est effectué dans le cadre du processus de texture mapping.

Les textures sont caractérisées par des collections de Texel, comme la façon dont les images sont caractérisées par des collections de pixels. Lors du texture mapping, le moteur de rendu mappe Texel sur les pixels appropriés.

Apprendre plus
--------------

### Culture générale

* Texel sur Wikipédia
### Voir aussi

* Utilisation de textures dans WebGL
* Éclairage dans WebGL
* Animation de textures dans WebGL
Ordre canonique
===============

En CSS, la locution "ordre canonique" est utilisée pour désigner l'ordre dans lequel des valeurs séparées doivent être spécifiées (ou analysées) ou doivent être sérialisées dans le cadre d'une valeur de propriété CSS. Il est défini par la syntaxe formelle de la propriété et se réfère normalement à l'ordre dans lequel les valeurs longues doivent être spécifiées dans le cadre d'une seule valeur raccourcie.

Par exemple, `background`, les valeurs de propriété raccourcie sont constituées de plusieurs propriétés `background-*` . L'ordre canonique de ces valeurs longues est défini comme suit :

1. `background-image`
2. `background-position`
3. `background-size`
4. `background-repeat`
5. `background-attachment`
6. `background-origin`
7. `background-clip`
8. `background-color`

De plus, sa syntaxe exige que, si une valeur pour `background-size` est donnée, elle doit être spécifiée après la valeur de `background-position`, séparée par une barre oblique. D'autres valeurs peuvent apparaître dans n'importe quel ordre.

Voir aussi
----------

* Que signifie "ordre canonique" en ce qui concerne les propriétés CSS ? (en) sur Stack Overflow qui fournit également d'autres discussions utiles.
* La description de la syntaxe formelle utilisée pour les valeurs CSS sur MDN
ECMAScript
==========

**ECMAScript** est le langage de script sur lequel JavaScript est basé. Ecma International a pour tâche la standardisation d'ECMAScript.

Pour en savoir plus
-------------------

### Culture générale

* ECMAScript sur Wikipédia
### Référence technique

* ECMAScript
Méthode de saisie
=================

Une méthode de saisie (IME pour Input Method Editor) est un programme qui permet de saisir du texte via une interface utilisateur spécialisé. Les méthodes de saisie peuvent être utilisées dans de nombreuses situations dont :

* la saisie de caractères chinois, japonnais ou encore coréen à partir d'un clavier latin ;
* la saisie de caractères latin à partir d'un clavier numérique ;
* la saisie de texte à partir d'un écran tactile avec reconnaisance d'écriture manuscrite.
Voir aussi
----------

1. Articles Wikipédia
    1. Méthode d'entrée
2. Glossary
    1. I18N
EXIF
====

Le **format de fichier d'image échangeable ou EXIF** (« *Exchangeable Image File Format* » en anglais) est une norme qui spécifie comment les métadonnées d'un fichier multimédia peuvent être intégrées dans le fichier. Par exemple, une image peut contenir des données EXIF décrivant : la largeur, la hauteur et la densité des pixels, la vitesse d'obturation, l'ouverture, les paramètres ISO, la date de capture, etc.

Voir aussi
----------

* EXIF (Wikipedia)
* Normes CIPA, incluant "CIPA DC-008-Traduction-2019 Format de fichier d'image échangeable pour les appareils photo numériques : Version Exif 2.32"
Agent utilisateur
=================

Un agent utilisateur est un programme informatique qui représente une personne, par exemple, un navigateur dans le cadre d'une utilisation sur le Web.

En dehors des navigateurs, un agent utilisateur peut être un aspirateur de sites, un gestionnaire de téléchargements ou toute autre application accédant au Web. Les navigateurs, lorsqu'ils effectuent des requêtes vers un serveur, y intègrent un en-tête HTTP auto-identifiant `User-Agent` appelé chaîne de caractères user agent (UA). Souvent, cette chaîne identifie le navigateur, son numéro de version ainsi que le système d'exploitation de l'hôte.

Les spambots, gestionnaires de téléchargements et certains navigateurs envoient souvent des chaînes UA falsifiées pour se présenter eux-mêmes comme un client différent. Cette action est nommée *user agent spoofing*.

Côté client, la chaîne de l'agent utilisateur est accessible en JavaScript avec `navigator.userAgent.`

Une chaîne classique d'agent utilisateur ressemble à ceci : `"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"`.

Voir aussi
----------

### Culture générale

* Agent utilisateur sur Wikipédia
### Référence technique

* En-tête User agent dans la RFC 2616
Gamut
=====

Un **gamut** ou encore appelé une **gamme de couleurs** est un sous-ensemble de couleurs, représentant généralement les couleurs qu'un écran ou qu'un périphérique d'impression peut afficher.

Aucun écran ou imprimante ne peut représenter toute la gamme de couleurs qu'un œil humain peut percevoir. Le *gamut* d'un périphériques représente l'ensemble qu'il prend en charge.

Traditionnellement, dans le développement web, la seule gamme utilisée était sRGB (pour *Standard Red-Green-Blue* en anglais), où chaque couleur est décrite à l'aide de trois octets, un pour chaque couleur primaire. Cependant, les moniteurs à large gamme de couleurs et les imprimantes professionnelles prennent en charge une gamme de couleurs plus large, qui ne peut pas être représentée à l'aide de ce gamut.

Depuis 2021, les navigateurs ont commencé à fournir des fonctionnalités pour d'autres gamuts, comme P3, largement utilisé dans l'industrie du cinéma, et rec2020.

Il est désormais possible de définir différents ensembles de couleurs pour les appareils prenant en charge des gammes plus étendues à l'aide de la fonctionnalité média `color-gamut`. Des couleurs en dehors de la gamme RGB peuvent être définies à l'aide de fonctions CSS spécifiques telles que `lch()` pour le système de coordonnées cylindriques LCH ou `lab()` pour le système de coordonnées Lab.

Voir aussi
----------

* L'article Wikipédia sur le gamut
ASCII
=====

**ASCII** (*American Standard Code for Information Interchange*) est l'une des méthodes d'encodage utilisées par les ordinateurs pour convertir les lettres, les nombres, la ponctuation et les codes de contrôle sous forme numérique. Depuis 2007, l'UTF-8 est privilégié sur internet.

Voir aussi
----------

* ASCII sur Wikipédia
Google Chrome
=============

Google Chrome est un navigateur Web gratuit développé par Google. Il est basé sur le projet open source Chromium. Certaines différences clés sont décrites sur le wiki de Chromium. En ce qui concerne le moteur rendu, les deux navigateurs utilisent un fork de WebKit appelé Blink. Remarquez que la version iOS de Chrome utilise le moteur de rendu de cette plate-forme et non Blink.

Pour en savoir plus
-------------------

### Culture générale

* Google Chrome sur Wikipédia
### Pour les utilisateurs de Chrome

Utilisez un des ces liens si vous êtes un utilisateur de tous les jours.

* Android
* IOS
* Bureau
### Pour les développeurs Web

Si vous souhaitez essayer les dernières fonctionnalités de Chrome, installez une des versions pré-stables. Google en fait des mises à jour fréquemment et les a conçu pour qu'elles s'installent en parallèle avec la version stable. Rendez-vous sur le Blog Chrome Releases pour découvrir les nouveautés.

* Chrome Dev pour Android
* Chrome Canary pour bureau.
Caractère
=========

Un **caractère** peut être un symbole (lettre, chiffre, ponctuation) ou un caractère de contrôle (par exemple un retour chariot ou un trait d'union conditionnel). UTF-8 est le jeu de caractères le plus courant. Il comprend les graphèmes des langues les plus répandues.

Voir aussi
----------

### Connaissances générales

* Caractère (informatique) sur Wikipédia
* Codage des caractères sur Wikipédia
* ASCII sur Wikipédia
* UTF-8 sur Wikipédia
* Unicode sur Wikipédia
SCM
===

SCM (Source Control Management) est un système de gestion de code source. Habituellement, il s'agit de l'utilisation de logiciels pour gérer les différentes versions des fichiers sources. Un programmeur peut modifier les fichiers de code source sans se préoccuper de l'édition de détails utiles car un SCM conserve la trace des modifications du code source et de qui a fait les modifications.

Parmi les systèmes de SCM figurent CVS, SVN, GIT.

Voir aussi
----------

### Culture générale

* Gestion de versions sur Wikipédia
BiDi
====

**BiDi** (BiDirectionnel) fait référence à un document contenant à la fois du texte se lisant de droite à gauche et du texte se lisant de gauche à droite. Même lorsque les deux directions se trouvent dans le même paragraphe, le texte de chaque langue doit apparaître dans son propre sens.

Pour en savoir plus
-------------------

### Culture générale

* Texte bidirectionnel sur Wikipédia
### Référence technique

* Développement d'applications Bidi
Cross-site scripting
====================

Cross-site scripting (XSS) est une faille de sécurité qui permet à un attaquant d'injecter dans un site web un code client malveillant. Ce code est exécuté par les victimes et permet aux attaquants de contourner les contrôles d'accès et d'usurper l'identité des utilisateurs. Selon le projet Open Web Application Security, XSS était la troisième cause de vulnérabilité des applications du web en 2013.

Ces attaques réussissent si l'application Web n'emploie pas assez de validation ou d'encodage. Le navigateur de l'utilisateur ne peut pas détecter que le script malveillant n'est pas fiable et lui donne donc accès à tous les cookies, jetons de session ou autres informations sensibles propres au site, ou permet au script malveillant de réécrire le contenu HTML.

Les attaques de script intersite se produisent généralement lorsque 1) les données entrent dans une application Web via une source non fiable (le plus souvent une requête web) ou 2) le contenu dynamique est envoyé à un utilisateur web sans être reconnu comme un contenu malveillant.

Le contenu malveillant inclut souvent JavaScript, mais parfois HTML, Flash, ou quelqu'autre code que le navigateur peut exécuter. La diversité des attaques basées sur XSS est presque illimitée, mais elles incluent généralement la transmission de données privées comme des cookies ou d'autres informations de session à l'attaquant, redirigeant la victime vers une page Web contrôlée par l'attaquant ou exécutant d'autres opérations malveillantes sur la machine de l'utilisateur.

Les attaques XSS peuvent être classées en 3 catégories : stockée (aussi appelée persistante), reflétée (aussi appelée non-persistante) ou basée sur DOM.

**Les attaques XSS stockées**

Le script injecté est stocké en permanence sur les serveurs cibles. La victime extrait ensuite ce script malveillant du serveur lorsque le navigateur envoie une demande de données.

**Les attaques XSS reflétées**

Lorsqu'un utilisateur est trompé en cliquant sur un lien malveillant, en soumettant un formulaire spécialement conçu ou en naviguant sur un site malveillant, le code injecté se rend sur le site Web vulnérable. Le serveur Web renvoie le script injecté au navigateur de l'utilisateur, par exemple dans un message d'erreur, un résultat de recherche ou toute autre réponse incluant des données envoyées au serveur dans le cadre de la demande. Le navigateur exécute le code car il suppose que la réponse provient d'un serveur "de confiance" avec lequel l'utilisateur a déjà interagi.

**Les attaques XSS basées sur DOM**

La charge utile est exécutée à la suite de la modification de l'environnement DOM (dans le navigateur de la victime) utilisé par le script côté client d'origine. En d'autres termes, la page elle-même ne change pas, mais le code côté client contenu dans la page s'exécute de manière inattendue en raison des modifications malveillantes apportées à l'environnement DOM.

Voir aussi
----------

### Culture générale

* *Cross-site\_scripting* sur Wikipédia
* Cross-site scripting sur OWASP (en)
* Un autre article à propos de Cross-site scripting (en)
Suite de chiffrement
====================

Une **suite de chiffrement** est un ensemble comprenant un algorithme d'échange de clefs, une méthode d'authentification, un chiffre et un code d'authentification des messages.

Dans un protocole de chiffrement tel que TLS, le client et le serveur doivent s'accorder sur une suite de chiffrement avant de pouvoir commencer à communiquer de manière sécurisée. Un exemple de suite de chiffrement peut être ECDHE\_RSA\_WITH\_AES\_128\_GCM\_SHA256 ou ECDHE-RSA-AES128-GCM-SHA256. Ces exemples indiquent :

* ECDHE (elliptic curve Diffie-Hellman ephemeral) pour l'échange de clefs
* RSA pour l'authentification
* AES-128 comme chiffre, avec Galois/Counter Mode (GCM) comme mode d'opération de chiffrement par bloc
* SHA-256 comme code d'authentification des messages (HMAC)
Voir aussi
----------

* Les choix de suites de chiffrement TLS recommandées par Mozilla (en anglais)
Microsoft Edge
==============

Microsoft Edge est un navigateur graphique gratuit fourni avec Microsoft Windows et développé par Microsoft depuis 2014. D'abord connu sous le nom de Spartan, Edge a remplacé le très ancien navigateur Microsoft Internet Explorer.

Voir aussi
----------

* Site web officiel
Sloppy mode
===========

En ECMAScript 5 et plus tard, les scripts optent pour un nouveau mode strict, qui modifie la sémantique de JavaScript de plusieurs façons pour améliorer sa résilience et qui facilite la compréhension de ce qui se passe en cas de problème .

Le mode normal, non-strict de JavaScript est parfois appelé **sloppy mode** (*mode bâclé*). Ce n'est pas une désignation officielle, mais vous risquez de la rencontrer si vous passez du temps à faire du code JavaScript.

Voir aussi
----------

### Culture générale

* "Strict Mode" dans le chapitre 7 ("JavaScript Syntax") dans le livre Speaking *JavaScript*. (en)
Latence
=======

**La latence** est le temps réseau nécessaire pour qu'une ressource demandée atteigne sa destination. Une latence faible est bonne, ce qui signifie qu'il y a peu ou pas de délai. Une latence forte est mauvaise, ce qui signifie que la ressource demandée prend beaucoup de temps à atteindre sa destination.

La latence peut être un facteur dans tout type de flux de données, mais le terme est le plus souvent employé en tant que latence réseau (le temps nécessaire pour qu'un paquet de données se propage d'une source jusqu'à sa destination) et latence codec média (le temps nécessaire pour qu'une donnée source soit encodée ou décodée et atteigne le consommateur de la donnée finale).

Voir aussi
----------

* Understanding Latency (en-US)
En-tête simple
==============

Un *en-tête simple* (ou en-tête de requête sécurisé CORS) est l'un des en-têtes HTTP suivants :

* `Accept`,
* `Accept-Language`,
* `Content-Language`,
* `Content-Type` avec un type MIME de sa valeur analysée (ignorant les paramètres) et l'un des `application/x-www-form-urlencoded`, `multipart/form-data` ou `text/plain`.

Ou l'un de ces en-têtes d'indication de client :

* `DPR` (en-US)
* `Downlink` (en-US)
* `Save-Data` (en-US)
* `Viewport-Width` (en-US)
* `Width` (en-US)

Lorsqu'elles ne contiennent que de simples en-têtes, les requêtes sont réputées simples et n'ont pas besoin d'envoyer une requête de pré-vérification dans le contexte de CORS.

Voir aussi
----------

* En-têtes HTTP
* En-tête de réponse simple
* Nom d'en-tête interdit
* En-tête de requête
Compilation
===========

La compilation est un processus consistant à transformer un programme informatique, écrit dans un langage donné, en un programme dans un autre langage (généralement en assembleur qui pourra être exécuté par l'ordinateur).

Voir aussi
----------

* Compilateur sur Wikipédia
* A big list of learning material on StackOverflow
Code privilégié
===============

**Code privilégié** - Code Javascript de votre extension. Par exemple, code dans les scripts de contenu.

**Non-privilegié** - Javascript sur la page web.
Taille intrinsèque
==================

En CSS, la *taille intrinsèque* d'un élément est la taille qu'il aurait en fonction de son contenu, si aucun facteur externe ne lui était appliqué. Par exemple, les éléments en ligne sont dimensionnés de manière intrinsèque : la `largeur`, la `hauteur`, la marge et le remplissage vertical n'ont aucun impact, contrairement à la marge et au remplissage horizontal.

La manière dont les tailles intrinsèques sont calculées est définie dans la Spécification de dimensionnement intrinsèque et extrinsèque du CSS.

Le dimensionnement intrinsèque prend en compte la taille `min-content` et `max-content` d'un élément. Pour le texte, la taille du `min-content` serait le fait que le texte soit aussi petit que possible dans le sens linéaire sans provoquer de débordement, en faisant autant d'enveloppement souple que possible. Pour une boîte contenant une chaîne de texte, la taille du `min-content` serait définie par le mot le plus long. La valeur du mot-clé de `min-content` pour la propriété `width` dimensionnera un élément en fonction de la taille de `min-content`.

La taille de `max-content` est l'inverse — dans le cas du texte, le texte s'afficherait aussi large que possible, sans enveloppement souple, même si un débordement était provoqué. La valeur du mot clé `max-content` expose ce comportement.

Pour les images, la taille intrinsèque a la même signification — c'est la taille avec laquelle une image serait affichée si aucun CSS n'était appliqué pour modifier le rendu. Par défaut, les images sont supposées avoir une densité de "1x" pixels (1 pixel de périphérique = 1 pixel CSS) et donc la taille intrinsèque est simplement la hauteur et la largeur du pixel. La taille et la résolution intrinsèques de l'image peuvent être explicitement spécifiées dans les données EXIF. La densité de pixels intrinsèque peut également être définie pour les images à l'aide de l'attribut `srcset` (notez que si les deux mécanismes sont utilisés, la valeur `srcset` est appliquée "par-dessus" la valeur EXIF).
Environnement de document
=========================

Lorsque l'environnement global JavaScript est une fenêtre ou un cadre *iframe*, il s'appelle un *environnement de document*. Un environnement global est un environnement qui n'a pas d'environnement extérieur.

Voir aussi
----------

### Référence technique

* document environment dans la spécification HTML (en)
Préprocesseur CSS
=================

Un **préprocesseur** **CSS** est un programme qui vous permet de générer des CSS à partir d'un unique préprocesseur propriétaire Syntax. Il y a de nombreux préprocesseurs CSS au choix, mais la plupart des préprocesseurs CSS ajoutent quelques fonctionnalités qui n'existent pas en CSS pur, telles que variable, mixin, sélecteur d'imbrication, etc. Ces fonctionnalités rendent la structure CSS plus lisible et plus facile à maintenir.

Pour utiliser un préprocesseur CSS, vous devez installer un compilateur CSS sur votre serveur web.

Voir aussi
----------

### Culture générale

Ici certains des préprocesseurs CSS les plus populaires:

* SASS
* LESS
* Stylus
* PostCSS
Fragmenteur
===========

Un fragmenteur (ou *fragmentainer* en anglais) est défini dans la spécification de fragmentation CSS (en anglais) comme suit :

> 
> Une boîte, telle qu'une boîte de page, de colonne ou une région, qui contient une partie (ou la totalité) d'un flux fragmenté. Les fragmenteurs peuvent être prédéfinis ou générés selon les besoins. Lorsqu'un contenu fragmentable déborde d'un fragmenteur dans la dimension de bloc, il se brise dans le conteneur suivant de son contexte de fragmentation à la place.
> 
> 
> 

Les contextes fragmentés se trouvent dans les médias CSS paginés (ou *CSS Paged Media* en anglais), où le fragmenteur correspond à la boîte qui définit une page. Dans une disposition à plusieurs colonnes, le fragmenteur est la boîte de colonne créée lorsque les colonnes sont définies sur un conteneur à plusieurs colonnes. Dans les régions CSS, chaque région est un fragmenteur.
UTF-8
=====

UTF-8 (UCS Transformation Format 8) est le codage de caractères le plus répandu sur le world wide web. Chaque caractère est représenté par un à quatre octets. UTF-8 est rétro-compatible avec l'ASCII et peut représenter n'importe quel caractère Unicode.

Les 128 premiers caractères UTF-8 correspondent exactement aux 128 premiers caractères ASCII (numérotés de 0 à 127), ce qui signifie que tous les textes ASCII existants sont déjà valides en UTF-8. Tous les autres caractères utilisent de deux à quatre octets. Chacun de ces octets possède quelques bits réservés à des fins d'encodage. Comme les caractères non-ASCII nécessitent plus d'un octet pour être enregistrés, ils courent le risque d'être corrompus s'ils sont séparés ou s'ils ne sont pas recombinés.

Voir aussi
----------

### Culture générale

* UTF-8 sur Wikipédia
* FAQ sur l'UTF-8, sur le site web d'Unicode
Analyse syntaxique
==================

"Parser" signifie analyser et convertir un programme en un format interne que l'environnement d'exécution peut exécuter, par exemple le moteur JavaScript dans les navigateurs.

Le navigateur analyse (*parse* en anglais) du code HTML dans une arborescence DOM. L'analyse HTML implique la création de *tokens* et la construction d'arborescences. Les *tokens* HTML incluent des balises de début et de fin, ainsi que des noms et des valeurs d'attribut. Si le document est bien formé, son analyse est simple et rapide. L'analyseur analyse l'entrée décomposée en *tokens* dans le document, en créant l'arborescence du document.

Lorsque l'analyseur HTML trouve des ressources non bloquantes, telles qu'une image, le navigateur demande ces ressources et continue l'analyse. L'analyse peut continuer lorsqu'un fichier CSS est rencontré, mais les balises `<script>`, en particulier celles sans attribut `async` ou `defer`, bloquent le rendu et interrompent l'analyse du code HTML.

Lorsque le navigateur rencontre des styles CSS, il analyse le texte dans le modèle d'objet CSS (ou le CSSOM), une structure de données qu'il utilise ensuite pour styliser les mises en page et la peinture. Le navigateur crée ensuite une arborescence de rendu à partir de ces deux structures pour pouvoir peindre le contenu à l'écran. Le JavaScript est également téléchargé, analysé, puis exécuté.

L'analyse de JavaScript est faite pendant le moment de compilation ou quand l'analyseur syntaxique est appelé, comme pendant l'appel à une méthode.

Voir aussi
----------

* Analyse syntaxique sur Wikipédia