recursal/MDN huggingface dataset:
Premier rendu
=============

Le **premier rendu** (ou ***first paint*** en anglais), qui fait partie de l'API *Paint Timing*, correspond au temps entre la navigation et le moment où le navigateur affiche les premiers pixels à l'écran, rendant à l'écran tout ce qui est visuellement différent de ce qui y était présent avant la navigation. Cet indicateur répond à la question « Est-ce que quelque chose est bien en train de se passer ? ».

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

* Premier affichage significatif (ou *first meaningful paint* en anglais)
* Premier affichage de contenu (ou *first contentful paint* en anglais)
* L'API *Paint Timing* 
Obsolète
Héritage
========

L'héritage est une fonctionnalité majeure de la programmation orientée objet. L'abstraction de données peut être exprimée à plusieurs niveaux, c'est-à-dire que des classes peuvent avoir des superclasses et des sous-classes.

En tant que développeur d'applications, vous pouvez choisir quels seront les attributs et les méthodes de la superclasse à garder et ajouter les vôtres, rendant la définition de la classe très souple. Certains langages permettent à une classe d'hériter de plus d'un parent (héritage multiple).

Pour approfondir
----------------

### Apprendre sur ce sujet

* Héritage et chaîne de prototypes
OTA
===

*Over The Air* (**OTA**) se réfère à un système de mise à jour automatique sur des appareils connectés à un serveur central. Tous les propriétaires d'un appareil qui vont recevoir des instructions d'"update" *(mise à jour)* sont sur le même canal, et chaque appareil a souvent accès à plusieurs canaux (ex : pour les outils production ou ingénieur)

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

* *Over-the-air programming* sur Wikipédia
* Créer et appliquer des paquets de mise à jour B2G OS
LGPL
====

La LGPL (GNU Lesser General Public License) est une licence de logiciel libre publiée par la Free Software Foundation. Elle constitue une alternative plus permissive que la stricte GPL copyleft. Alors que tout travail dérivé d'un programme sous licence GPL doit être distribué sous les mêmes termes (liberté d'utiliser, de partager, d'étudier et de modifier), la LGPL n'impose qu'au composant sous LGPL d'un programme dérivé de continuer à utiliser la LGPL, pas au programme dans son intégralité. La LGPL est habituellement utilisée comme licence pour les composants partagés comme les bibliothèques (`.dll`, `.so`, `.jar`, etc.).

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

### Culture générale

* LGPL sur Wikipédia
* Texte de la licence LGPL sur gnu.org
OWASP
=====

**OWASP** (Open Web Application Security Project) est une organisation à but non lucratif et un réseau mondial qui travaille sur la sécurité des logiciels libres, en particulier sur le Web.

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

### Culture générale

* Site web officiel
Presto
======

Presto était le moteur de rendu propriétaire utilisé par le navigateur Opera jusqu'à la version 15. Depuis, ce dernier est basé sur Chromium qui utilise le moteur de rendu Blink.

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

* Moteur de rendu Presto sur Wikipédia
ATAG
====

*Authoring Tool Accessibility Guidelines* (ATAG) est une recommandation W3C pour construire des outils de création-accessibilité qui produisent des contenus accessibles.

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

### Culture générale

* ATAG dans le cadre de la Web Accessibility Initiative sur Wikipédia
### Informations techniques

* Présentation d'ATAG sur le site du W3C (en)
* La recommandation ATAG 2.0 sur le site du W3C (en)
XSLT
====

*eXtensible Stylesheet Language Transformations* (**XSLT**) est un langage déclaratif utilisé pour convertir des documents XML en d'autres documents XML, HTML, PDF, text brut etc.

XSLT possède son propre processeur qui accepte du XML en entrée, ou tout autre format qui peut être converti en XDM (XQuery and XPath Data Model). Le processeur XSLT génère un nouveau document basé sur le document XML et sur une feuille de styles XSLT, mais n'apporte aucune modification aux fichiers originaux pendant le processus.

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

### Référence technique

* XSLT sur Wikipédia
* Documentation XSLT sur MDN
Métadonnée
==========

Une **métadonnée** est — dans sa définition la plus simple — une donnée qui décrit une donnée. Par exemple, un document HTML est une donnée, mais son élément `<head>` peut aussi contenir des métadonnées le décrivant — par exemple qui l'a écrit, ou son résumé.

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

### Culture générale

* Métadonnée sur Wikipédia
### Métadonnée HTML

* L'élément `<meta>` sur MDN
RTCP (RTP Control Protocol)
===========================

Le **protocole de contrôle RTP** (ou *RTP Control Protocol* en anglais, qui donne l'acronyme **RTCP**) est un protocole partenaire du protocole RTP. RTCP est utilisé pour la collecte d'informations statistiques et le contrôle d'une session de diffusion média RTP.

Ces deux protocoles permettent de séparer, sur le plan logique et fonctionnel, les paquets de contrôle et de statistiques du flux média, tout en utilisant la couche de transmission des paquets sous-jacente pour transmettre les signaux RTCP ainsi que le contenu média et RTP.

RTCP transmet des paquets de contrôle à intervalle régulier à l'ensemble des participants d'une session RTP en utilisant le même mécanisme que celui utilisé pour la transmission des paquets de données. C'est le protocole sous-jacent qui gère le multiplexage des paquets de données et de contrôle, il pourra éventuellement utiliser des ports réseau distincts pour chaque type de paquet.

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

* Introduction au protocole de transport en temps réel (en-US)
* La page Wikipédia sur RTCP
* La section 6 de la RFC 3550 qui définit ce protocole (en anglais)
Déni de service distribué
=========================

Un déni de service distribué (DDoS, Distributed Denial-of-Service) est une attaque dans laquelle de nombreux systèmes sont compromis et réunis pour attaquer une seule cible, afin de submerger les ressources du serveur et de bloquer les utilisateurs légitimes.

Habituellement, de nombreuses personnes utilisant de nombreux robots, attaquent le Web à haut niveau : serveurs de banques ou cartes de crédit de paiement. DDoS concerne les réseaux informatiques et la gestion des ressources de l'unité centrale.

Dans une attaque DDoS classique, l'assaillant commence par exploiter une vulnérabilité dans un système informatique et en fait le maître DDoS. Le maître d'attaque, également connu sous le nom de botmaster (*maître robot*), identifie et infecte d'autres systèmes vulnérables avec des logiciels malveillants. Finalement, l'assaillant ordonne aux machines contrôlées de lancer une attaque contre une cible spécifiée.

Il existe deux types d'attaques DDoS : une attaque centrée sur le réseau (qui surcharge un service en utilisant la bande passante) et une attaque de la couche application (qui surcharge un service ou une base de données avec des appels d'application). Le débordement de données vers la cible entraîne une saturation dans la machine cible, de sorte qu'elle ne peut pas répondre ou répond très lentement au trafic légitime (d'où le nom de "déni de service"). Les propriétaires des ordinateurs infectés ne savent généralement pas que leurs ordinateurs ont été compromis et subissent également une perte de service.

Un ordinateur sous le contrôle d'un intrus est appelé un zombie ou un bot *(robot)*. Un réseau d'ordinateurs co-infectés est connu comme un botnet (*réseau de robots*) ou une armée de zombies. Kaspersky Labs et Symantec ont identifié tous deux les botnets - pas le spam, les virus ou les vers - comme la plus grande menace à la sécurité sur Internet.

L'équipe de préparation aux urgences informatiques des États-Unis (US-CERT) définit les symptômes des attaques par déni de service en y rattachant :

* Performances réseau exceptionnellement lentes (ouverture de fichiers ou accès à des sites Web)
* Indisponibilité d'un site web particulier
* Impossibilité d'accéder à un site Web
* Augmentation dramatique du nombre de spams reçus (ce type d'attaque DoS est considéré comme une bombe électronique)
* Déconnexion d'une connexion Internet sans fil ou filaire
* Refus à long terme de l'accès au web ou à des services internet.
Voir aussi
----------

### Culture générale

* Attaque par déni de service sur Wikipédia
Certifié
========

**Certifié** signifie qu'un contenu, une application ou une transmission de données a passé avec succès une évaluation faite par des professionnels ayant une expertise dans le domaine concerné, indiquant ainsi l'exhaustivité, la sécurité et la fiabilité.

Pour les détails sur la certification en Cryptographie, veuillez vous référer aux certificats numériques.

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

### Culture générale

* Tutoriel sur la sécurité des informations
* Autorité de certification sur Wikipédia
### Firefox OS

* Les applications internes de Firefox OS sont aussi parfois appelées applications certifiées : voir Permissions des applications pour plus d'informations.
FTU
===

FTU (First Time Use, ou première utilisation) est l'application qui se charge lorsque vous lancez une version nouvellement installée de Gecko sur un appareil Firefox OS.

Vous pouvez utiliser FTU pour définir des options importantes (e.g. fuseau horaire, détails du WiFi, langue par défaut, import des contacts), ou pour suivre le "Phone Tour" dans le but de découvrir votre appareil.
Jank
====

**Jank** se réfère à la lenteur dans une interface utilisateur, généralement causée par l'exécution de longues tâches sur le fil principal, le blocage du rendu ou la dépense de trop de puissance de processeur pour les processus en arrière-plan.
Authentification par défi-réponse
=================================

Dans les protocoles de sécurité, un défi (*challenge*), c'est quelques données envoyées au client par le serveur demandant des réponses différentes à chaque fois. Les protocoles défi-réponse sont une manière de combattre des attaques par rejeu dans lesquelles un attaquant écoute le message précédent et le renvoie une nouvelle fois pour obtenir la même information d'identification que le message original.

Le protocole d'authentification HTTP est basé sur défi-réponse, bien que le protocole "basique" n'utilise pas un vrai défi (le domaine est toujours le même).

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

* Authentification défi-réponse sur Wikipédia.
ltr
===

ltr (Left To Right, soit gauche vers droite) est une propriété de locale qui indique que le texte est écrit de la gauche vers la droite. Par exemple, la locale `en-US` (pour Anglais US) indique une écriture de gauche à droite.
Compression GZip
================

gzip est un algorithme de compression qui permet de réduire la taille des fichiers, ce qui permet des transferts réseau plus rapides. Il est généralement pris en charge par les serveurs Web et les navigateurs modernes, ce qui signifie que les serveurs peuvent compresser automatiquement les fichiers avec gzip avant de les envoyer, et les navigateurs peuvent décompresser les fichiers lors de leur réception.

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

* Enable gzip compression?
* Gzip sur Wikipédia
PNG
===

**PNG** (*Portable Network Graphics*) est un format de fichiers graphiques qui supporte la compression de données sans perte.

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

### Culture générale

* PNG sur Wikipédia
Endianness
==========

"Endian" et "endianness" (ou "ordre des octets") désigne la manière dont les ordinateurs organisent les octets pour constituer des nombres.

Chaque emplacement de stockage en mémoire dispose d'un index ou adresse. Un octet pouvant stocker une valeur de 8 bits (i.e. compris entre `0x00` et `0xff`), il faut en réserver davantage pour enregistrer des nombres plus grands. L'*ordre* le plus utilisé pour composer des nombres sur plusieurs octets est de loin le **little-endian** qui est utilisé sur tous les processeurs Intel. Little-endian signifie que le stockage des octets se fait du moins important au plus important (où l'octet le moins important prend la première adresse ou la plus basse), ce qui est comparable à la façon habituelle en Europe d'écrire les dates (e.g., 31 décembre 2050).

Naturellement, **big-endian** est l'ordre opposé, similaire à une date au format ISO (2050-12-31). Big-endian est aussi souvent appelé "ordre d'octet du réseau" car les standards internet ont généralement besoin des données dans cet ordre, en commençant au niveau socket UNIX standard et en continuant avec les structures de données Web binaires standardisées. De plus, les anciens ordinateurs Mac utilisaient des microprocesseurs 680x0 ou PowerPC qui étaient big-endian.

Exemples avec le nombre `0x12345678` (i.e. 305 419 896 en décimal) :

* *little-endian :* `0x78 0x56 0x34 0x12`
* *big-endian :* 0x12 0x34 0x56 0x78
* *mixed-endian* (dans le passé et très rare) : 0x34 0x12 0x78 0x56
Voir aussi
----------

* `ArrayBuffer`
* `DataView`
* Tableaux typés
* Boutisme sur Wikipédia
Number
======

En JavaScript, **Number** est un type de donnée numérique dans le format à virgule flottante double précision 64 bits (IEEE 754). Dans d'autres langages de programmation, différents types numériques peuvent exister, par exemple : Integers, Floats, Doubles, ou Bignums.

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

### Culture générale

* Types de donnée sur Wikipédia
### Référence technique

* La structure de donnée JavaScript : Number
* L'objet global JavaScript `Number`
Contexte d'empilement
=====================

**Le contexte d'empilement** renvoie à la façon dont les éléments d'une page web semblent se superposer à d'autres éléments, tout comme vous pouvez placer les fiches sur votre bureau côte à côte ou se chevauchant.

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

### Culture générale

* L'empilement de couches
DTLS (Datagram Transport Layer Security)
========================================

***Datagram Transport Layer Security*** (**DTLS**) (qu'on pourrait traduire en « sécurité de la couche transport en datagrammes ») est un protocole utilisé afin de sécuriser les communications basées sur des datagrammes. Ce protocole est basé sur le protocole correspondant pour les flux, TLS, et fournit un niveau équivalent de sécurité.

DTLS étant un protocole de datagrammes, il ne garantit pas l'ordre de livraison des messages, ni même que les messages seront effectivement transmis. Toutefois, DTLS profite des avantages des protocoles de datagrammes et notamment de faibles temps de traitement et d'une latence réduite.

Ces caractéristiques sont particulièrement utiles pour les domaines où DTLS est utilisé, dont WebRTC. Tous les protocoles relatifs à WebRTC chiffrent leur contenu à l'aide de DTLS : SCTP, SRTP, et STUN.

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

* La page Wikipédia sur DTLS
* Les spécifications directes :
    + La RFC 9147 qui définit le protocole DTLS en version 1.3 (en anglais)
    + La RFC 6347 qui définit le protocole DTLS en version 1.3 (en anglais)
* Les spécifications connexes :
    + La RFC 5763 dressant le cadre pour utiliser SRTP avec DTLS (en anglais)
    + La RFC 5764 spécifiant une extension DTLS pour l'établissement des clés pour SRTP (en anglais)
    + La RFC 6083 dressant le cadre pour utiliser SCTP avec DTLS (en anglais)
    + La RFC 8261 spécifiant l'encapsulation des paquets SCTP avec DTLS (en anglais)
    + La RFC 7350 spécifiant l'utilisation de STUN avec DTLS (en anglais)
    + La RFC 7925 pour les profils TLS / DTLS pour l'Internet des objets (en anglais)
WebIDL
======

**WebIDL** est le langage de description d'interface utilisé pour décrire les types de données, interfaces, méthodes, propriétés et d'autres éléments qui composent une interface de programmation d'application Web (API). Il utilise une syntaxe quelque peu stylisée qui est indépendante de tout langage de programmation spécifique, de sorte que le code sous-jacent utilisé pour construire chaque API puisse être écrit dans le langage le plus approprié, tout en permettant de faire le plan des composants de l'API pour une construction compatible JavaScript

WebIDL est utilisé dans presque toutes les spécifications des API pour le Web, et grâce à son format et à sa syntaxe standard, les programmeurs qui créent des navigateurs Web peuvent plus facilement s'assurer que leurs navigateurs sont compatibles entre eux indépendamment de la façon dont ils choisissent d'écrire le code pour implémenter l'API.

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

### Référence technique

* Spécification
* Informations contenues dans un fichier WebIDL (en-US)
* Bindings WebIDL
* Article en anglais sur Web IDL sur Wikipédia
P2P
===

P2P (Peer-to-peer ou pair à pair) est une architecture réseau dans laquelle tous les ordinateurs, appelés nœuds (peers), ont autant de privilèges et se partagent la charge de travail. Le P2P diffère d'une architecture client-serveur dans laquelle plusieurs clients (nœuds) se connectent à un serveur centralisé pour utiliser des services.

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

### Connaissances générales

* P2P sur Wikipédia
SCTP
====

**SCTP** (Stream Control Transmission Protocol) est un standard IETF pour un protocole de transport qui permet la transmission fiable et en ordre des messages tout en offrant un contrôle d'encombrement, de multiples autoguidages et d'autres fonctionnalités pour améliorer la fiabilité et la stabilité de la connexion. Il est utilisé pour envoyer des appels téléphoniques traditionnels sur Internet, mais il est également utilisé pour les données WebRTC.

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

### Culture générale

* RFC 4960: Stream Control Transmission Protocol
* SCTP sur Wikipédia
CSP
===

Un CSP (Content Security Policy) est utilisé pour détecter et restreindre certains types d'attaques visant des sites web comme les failles Cross-site scripting et les injections de données.

L'implémentation est basée sur un en-tête HTTP appelé `Content-Security-Policy`.

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

### Culture générale

* Content Security Policy sur Wikipédia
### Connaissances techniques

* Documentation Content Security Policy sur MDN
Éléments de prise en charge des scripts
=======================================

Dans un document HTML, les **éléments de prise en charge des scripts** (*script-supporting elements*)sont les éléments qui ne contribuent pas directement à l'apparence ou à la disposition de la page, mais qui sont soit des scripts, soit des informations qui ne sont utilisées que par les scripts.

Ces éléments peuvent être importants, mais n'ont pas d'impact direct sur l'affichage de la page (bien que les scripts eux-mêmes puissent modifier cet affichage).

Il n'existe que deux éléments HTML qui appartiennent à cette catégorie :

* `<script>`
* `<template>`
Voir aussi
----------

* Les éléments de prise en charge des scripts dans la référence HTML
ICE
===

**ICE** (*Interactive Connectivity Establishment*) est un framework utilisé par WebRTC (parmi d'autres technologies) pour connecter deux pairs ensemble, indépendamment de la topologie réseau (en général pour des conversations audio et/ou vidéo). Ce protocole laisse les deux pairs chercher et établir une connexion avec l'autre même s'ils utilisent tous les deux de la translation d'adresses (NAT) pour partager une adresse IP globale avec d'autres périphériques sur leurs réseaux locaux respectifs.

L'algorithme du framework recherche le chemin avec la plus faible latence pour connecter les deux pairs, en essayant ces possibilités dans cet ordre :

1. Connexion UDP directe (dans ce cas—et uniquement dans ce cas—un serveur STUN sert à trouver l'adresse de réseau du pair opposé
2. Connexion TCP directe, via le port HTTP
3. Connexion TCP directe, via le port HTTPS
4. Connexion indirecte via un serveur TURN/relais (si une connexion directe échoue, e.g. si un des pairs est situé derrière un pare-feu qui empêche la traversée du NAT)
Voir aussi
----------

### Culture générale

* WebRTC, le principal protocole relatif au web qui utilise ICE
* Protocoles WebRTC (en-US)
### Référence technique

* RFC 5245, la spécification IETF pour ICE
* `RTCIceCandidate` (en-US), l'interface représentant un candidat ICE
Syntaxe
=======

La syntaxe définit les séquences et combinaisons de caractères requises pour créer du code correctement structuré. La syntaxe diffère d'un langage à l'autre (e.g., la syntaxe est différente en HTML et en JavaScript). La syntaxe s'applique à la fois aux langages de programmation (commandes données à l'ordinateur) et aux langages de balisage (informations sur la structure de documents).

La syntaxe ne gouverne que la structure et l'odre des instructions ; ces dernières doivent aussi avoir une *signification*, ce qui est le domaine de la sémantique.

La syntaxe du code doit être correcte pour qu'il puisse être compilé, dans le cas contraire, une erreur de syntaxe se produit. Même de petites erreurs, comme une parenthèse manquante, peut faire échouer la compilation du code source.

Les frameworks sont considérés comme ayant une syntaxe "propre" s'ils produisent des résultats simples, lisibles et concis. Si un codebase utilise "beaucoup de syntaxe", il nécessitera davantage de caractères pour arriver aux mêmes fonctionnalités.

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

### Culture générale

* Syntaxe sur Wikipédia
Chiffrement
===========

En cryptographie, le **chiffrement** est la conversion d'un texte brut en un texte codé ou cryptogramme. Ce dernier est destiné à ne pas pouvoir être lu par les lecteurs qui n'y sont pas autorisés.

Le chiffrement est une primitive cryptographique : il transforme un message de texte brut en un cryptogramme via l'utilisation d'un algorithme cryptographique appelé cryptosystème. Avec les cryptosystèmes modernes, le chiffrement est effectué par l'utilisation d'un algorithme spécifique et d'un code secret appelé clé. Comme l'algorithme est souvent public, la clé doit rester secrète si le chiffrement reste sécurisé.

![How encryption works.](/fr/docs/Glossary/Encryption/encryption.png)

Sans connaître le code secret, l'opération inverse, le déchiffrement, se révèle mathématiquement difficile à réaliser. Le degré de difficulté dépend de la sécurité de l'algorithme cryptographique choisi et évolue au fur et à mesure des progrès de la cryptanalyse.

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

* En savoir plus sur les Chiffrement et déchiffrement
Condensé
========

Un **condensé *(digest)*** est une petite valeur générée par une fonction de hachage à partir d'un message complet. Dans l'idéal, un condensé est rapide à calculer, non réversible et imprédictible, et par conséquent indique si quelqu'un a falsifié un message donné.

Un condensé peut être utilisé pour effectuer plusieurs tâches :

* dans des applications non cryptographiques (par exemple, l'index de tables de hachage ou une empreinte servant soit à détecter des données dupliquées, soit à identifier des fichiers de manière unique)
* vérifier l'intégrité d'un message (un message falsifié aura un haché différent)
* enregistrer des mots de passe afin qu'ils ne puissent pas être récupérés, mais seulement vérifiés (pour faire cela de manière sécurisée, il faut aussi saler le mot de passe.)
* générer des nombres pseudo-aléatoires
* générer des clés

Il est primordial de choisir la fonction de hachage appropriée à votre cas concret pour éviter les collisions et la prévisibilité.

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

* Voir fonction de hachage
* Fonction de hachage cryptographique sur Wikipédia
HPKP
====

**HTTP Public Key Pinning** (**HPKP**) est une fonctionnalité de sécurité qui indique à un client Web d'associer une clé publique cryptographique spécifique à un certain serveur Web pour réduire le risque d'attaques MitM avec des certificats fabriqués .

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

* `Public-Key-Pins` (en-US)
* `Public-Key-Pins-Report-Only` (en-US)
* RFC 7469
* Wikipédia : HTTP Public Key Pinning
GIT
===

**Git** est un logiciel libre et distribué de gestion de source code (ou *SCM*, *Source Code Management*). Cela permet de faciliter la collaboration sur une base de code avec des équipes de développement séparées. Ce qui le distingue des précédents *SCM* est sa capacité à faire des opérations basiques (créer une branche, faire un commit etc.) sur votre machine de développement locale sans avoir à changer le dépôt master ou avoir les droits d'écriture dessus.

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

### Connaissances générales

* Site officiel et documentation
* GitHub, un hébergeur de projets basé sur Git