recursal/MDN huggingface dataset:
Objet parent
============

L'objet auquel appartient une propriété ou une méthode donnée.

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

* Discussion sur l'héritage et les prototypes en JavaScript
Synchrone
=========

*Synchrone* fait référence à une communication en temps réel pendant laquelle chaque partie reçoit les messages (et, si nécessaire, les traite et y répond) dès que possible après qu'ils aient été envoyés.

Un exemple humain est le téléphone : au cours d'un appel téléphonique vous avez tendance à répondre à la personne immédiatement.

De nombreuses commandes de programmation sont synchrones, par exemple quand vous tapez un calcul, l'environnement vous retourne le résultat immédiatement, à moins que vous ne spécifiiez expressément de ne pas le faire.

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

### Référence technique

* Asynchronous
* Requêtes synchrones et asynchrones (en-US) avec l'API XMLHttpRequest()
RSS
===

**RSS** (Really Simple Syndication) désigne plusieurs formats de documents XML conçus pour annoncer des mises à jour de sites. Lorsque vous vous inscrivez au flux RSS d'un site web, ce dernier envoie des informations et annonces de mises à jour à votre lecteur RSS dans un document RSS appelé un *flux*, la consultation manuelle de tous vos sites préférés n'est donc plus nécessaire.

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

### Culture générale

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

* La spécification la plus récente
Origine
=======

L'**origine** d'une application web est définie par le schéma (protocole), l'hôte (domaine) et le port de l'URL utilisée pour y accéder. Deux objets ont la même origine seulement quand le schéma, l'hôte et le port correspondent.

Quelques opérations sont limitées au contenu de même origine, et cette restriction peut être levée avec CORS.

Exemples
--------

Les URL qui suivent partagent la même origine car elles ont le même schéma (`http`), nom d'hôte (`example.com`), et que les chemins de fichiers différents n'importent pas :

* `http://example.com/app1/index.html`
* `http://example.com/app2/index.html`

Il s'agit ici de la même origine car le contenu HTTP est délivré, par défaut, via le port 80 :

* `http://Example.com:80`
* `http://example.com`

Ici, il ne s'agit pas de la même origine, car ce sont deux schémas différents :

* `http://example.com/app1`
* `https://example.com/app2`

Ce ne sont pas les mêmes origines pour les exemples qui suivent, car le nom d'hôte est différent :

* `http://example.com`
* `http://www.example.com`
* `http://monapp.example.com`

Les deux exemples qui suivent ne sont pas de la même origine, car les ports sont différents :

* `http://example.com`
* `http://example.com:8080`
Pour en savoir plus
-------------------

Voir Same-origin policy *(politique de même origine)* pour plus d'informations.
TOFU
====

**Trust On First Use** **(TOFU**) (*confiance à la première utilisation*) est un modèle de sécurité dans lequel un client doit créer une relation avec un serveur inconnu. Pour ce faire, les clients rechercheront des identifiants (par exemple des clés publiques) stockés localement. Si un identifiant est trouvé, le client peut établir la connexion. Si aucun identifiant n'est trouvé, le client peut demander à l'utilisateur de déterminer si le client doit approuver l'identifiant.

TOFU est utilisé dans le protocole SSH, dans HTTP Public Key Pinning (HPKP) où les navigateurs accepteront la première clé publique renvoyée par le serveur et dans `Strict-Transport-Security` (en-US) (HSTS) où un navigateur obéira à la règle de redirection.

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

* HTTP Public Key Pinning (HPKP)
* `Public-Key-Pins` (en-US)
* TOFU (en anglais) sur Wikipédia
Variable locale
===============

Une variable dont le nom est associé à sa valeur uniquement dans une portée locale.

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

### Culture générale

* Variable locale sur Wikipédia
WCAG
====

Les *Web Content Accessibility Guidelines* (**WCAG**) sont une recommandation publiée par le groupe Web Accessibility Initiative du W3C. Ils définissent un ensemble de lignes de conduite à suivre pour rendre le contenu accessible principalement aux personnes avec des handicaps, mais aussi aux appareils aux ressources limitées comme les téléphones portables.

WCAG 2.0, qui a replacé WCAG 1.0, a été publié en tant que recommandation W3C le 11 décembre 2008. Elle consiste en 12 directives principales organisées en 4 principes (le contenu doit être perceptible, utilisable, compréhensible et robuste) et chacune de ces directives est accompagnée de critères de succès à évaluer.

WCAG utilise trois niveaux d'accessibilité :

* Priorité 1 : Les développeurs web **doivent** satisfaire ces conditions, sinon il sera impossible à un ou plusieurs groupes d'accéder au contenu du web. Atteindre ce niveau est désigné par A.
* Priorité 2 : Les développeurs web **devraient** satisfaire ces conditions, sinon certains groupes éprouveront des difficultés à accéder au contenu du web. Atteindre ce niveau est désigné par AA ou double A.
* Priorité 3 : Les développeurs web **peuvent** satisfaire ces conditions dans le but de faciliter l'accès au web pour certains groupes. Atteindre ce niveau est désigné par AAA ou triple A.
Voir aussi
----------

### Culture générale

* Accessibilité du Web sur Wikipédia
### Connaissances techniques

* Informations d'accessibilité sur MDN (en-US)
* La recommandation WCAG 2.0 sur le W3C
WebSockets
==========

*WebSocket* est un protocole servant à établir des connexions TCP persistantes entre des serveurs et des clients afin qu'ils puissent échanger des données à tout moment.

Toute application cliente ou serveur peut utiliser WebSocket, mais plus particulièrement les navigateurs et serveurs web. Grâce à WebSocket, les serveurs peuvent passer des données à un client sans qu'il n'y ait de requête cliente préalable, autorisant des mises à jour de contenu dynamiques.

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

### Culture générale

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

* Référence WebSocket sur MDN
### Apprendre

* Écrire des applications clients WebSocket
* Écriture de serveurs WebSocket
WebRTC
======

**WebRTC** (*Web Real-Time Communication*) *(communication en temps réel web)* est une API appelée par les applications web de tchat vidéo, d'appels vocaux et de partage de fichiers P2P.

WebRTC est constitué principalement de ces éléments :

getUserMedia

accorde l'accès à la caméra et / ou au microphone d'un appareil, et peut brancher leurs signaux à une connexion RTC.

RTCPeerConnection

configure les appels vocaux ou tchat vidéo

RTCDataChannels (en-US)

fournit une méthode de définition des itinéraires de données pair-à-pair entre les navigateurs

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

### Culture générale

* WebRTC sur Wikipédia
* Guide WebRTC sur MDN
* Support WebRTC des navigateurs
Détournement de session
=======================

**Le détournement de session** se produit lorsqu'un attaquant prend le contrôle d'une session valide entre deux ordinateurs. L'attaquant vole un identifiant de session valide afin de pénétrer dans le système et de fouiller les données.

Le plus souvent, l'authentification se produit seulement au début d'une session TCP. Dans un détournement de session TCP, un attaquant obtient l'accès en prenant en charge une session TCP entre deux machines en milieu de session.

![](/fr/docs/Glossary/Session_Hijacking/session_hijacking_3.jpg)

### Le piratage de session se produit parce que

* pas de verrouillage de compte pour les ID de session non valides
* faible algorithme de génération d'ID de session
* manipulation insécurisée
* temps d'expiration de session indéfini
* ID de session courte
* transmission en texte clair
### Le processus de piratage de session

1. **Sniffez**, c'est-à-dire effectuez une attaque d'homme-dans-le-milieu (MitM), placez-vous entre la victime et le serveur.
2. **Surveillez** les paquets circulant entre le serveur et l'utilisateur.
3. **Brisez** la connexion de la machine victime.
4. **Prenez le contrôle** de la session.
5. **Injectez** de nouveaux paquets au serveur en utilisant l'ID de session de la victime.
### Protection contre le détournement de session

* créer un canal de communication sécurisé avec SSH (shell sécurisé)
* passer les cookies d'authentification sur une connexion HTTPS
* implémenter la fonctionnalité de déconnexion afin que l'utilisateur puisse terminer la session
* générer l'ID de session après la réussire de la connexion
* transmettre des données chiffrées entre les utilisateurs et le serveur web
* utiliser une chaîne ou un long nombre aléatoire comme clé de session
Voir aussi
----------

### Culture générale

* *Hijacking* sur Wikipédia
Tri par cartes
==============

Le **tri par cartes** est une méthode simple utilisée en architecture informatique. Les gens impliqués dans la conception d'un site (ou d'un autre type de produit) sont invités à formaliser le contenu, les services et les fonctionnalités qui leur semblent essentiels au produit. Ensuite, ces fonctionnalités sont triées par catégories ou groupements. Cette technique peut être utile pour déterminer, par exemple, ce qui devrait aller sur chaque page d'un site. L'origine du nom est simple : souvent, le tri par carte consiste à écrire des éléments à trier sur des cartes et à ensuite trier ces cartes dans différentes piles.

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

### Culture générale

* Le tri par cartes sur Wikipédia
Firefox OS
==========

Firefox OS est un système d'exploitation mobile *open source* qui a été développé par Mozilla et qui a maintenant été arrêté. Voir Firefox OS pour plus de détails.

Firefox OS fut également appelé « Boot2Gecko » avant que le projet ait un nom officiel.
Sémantique
==========

En programmation, la **sémantique** fait référence au sens d'une partie de code — par exemple "quel effet aura l'exécution de cette ligne de JavaScript ?", ou "quel est le rôle ou le but de cet élément HTML" (plutôt que "à quoi ressemble-t-il ?".)

Par exemple, l'élément `<h1>` est un élément sémantique qui donne au texte qu'il contient le rôle (ou le sens) de "titre de premier niveau de votre page."


```html
<h1>Ceci est un titre de premier niveau</h1>
```


Par défaut, il se verra attribué une police de caractères plus grande pour le faire ressembler à un titre (bien que vous puissiez lui appliquer un style pour qu'il ressemble à tout ce que vous voulez), mais, plus important, sa valeur sémantique sera utilisée de différentes façons ; par exemple, les moteurs de recherche considéreront son contenu comme des mots-clés importants qui seront pris en compte pour classer les résultats de recherche (voir SEO), et les lecteurs d'écran peuvent l'utiliser comme un indicateur pour aider les utilisateurs déficients visuels à naviguer sur la page.

Par ailleurs, vous pouvez faire *ressembler* n'importe quel élément à un titre de premier niveau. Considérons le code suivant :


```html
<span style="font-size: 32px; margin: 21px 0;"
 >Est-ce un titre de premier niveau ?</span
>
```


Cela sera affiché comme un titre de premier niveau mais sans en avoir la valeur sémantique, il n'y aura donc aucun des bénéfices supplémentaires tels que ceux décrits ci-dessus. Il vaut donc mieux utiliser l'élément HTML correct pour la tâche recherchée.

Les éléments sémantiques
------------------------

Ce sont quelques-uns des éléments sémantiques (source) .

* `<article>`
* `<aside>`
* `<details>`
* `<figcaption>`
* `<figure>`
* `<footer>`
* `<header>`
* `<main>`
* `<mark>`
* `<nav>`
* `<section>`
* `<summary>`
* `<time>`
Pour approfondir
----------------

### Culture générale

* Référence des éléments HTML sur MDN
* Problèmes résolus par HTML5 sur MDN
* HTML5 Semantic Elements sur w3schools
* Sémantique des langages de programmation sur Wikipédia
Localisation
============

La localisation (l10n) est le processus d'adaptation d'une interface utilisateur de logiciel à une culture spécifique.

Les facteurs communs suivants sont à considérer :

* la langue
* les unités de mesure (par exemple, kilomètres en Europe, miles aux U.S.)
* la direction du texte (par exemple, de gauche à droite pour les langues européennes et de droite à gauche pour l'arabe)
* les lettres capitales en écriture latine (par exemple, des capitales pour les jours de la semaine en anglais, des minuscules en espagnol)
* l'adaptation des locutions (par exemple, "raining cats and dogs" n'a aucun sens si elle est traduite littéralement).
* l'utilisation du registre (par exemple, en japonais, le discours respectueux diffère du discours occasionnel)
* le format des nombres (par exemple, 10 000,00 en allemand et 10,000.00 aux U.S.)
* le format des dates
* les devises monétaires
* les références culturelles
* la taille du papier
* la psychologie des couleurs
* le respect des lois locales
* les vacances locales
* Les noms de personnes
Voir aussi
----------

* Localisation sur Wikipédia
ECMA
====

**Ecma International** (*European Computer Manufacturers Association*) est une organisation à but non lucratif qui développe des standards sur le matériel informatique, les communications, et les langages de programmation.

Sur internet, Ecma est célèbre pour être l'organisation qui maintient la spécification ECMA-262 (alias. ECMAScript) qui est le cœur de la spécification pour le langage JavaScript.

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

* Ecma International sur Wikipédia
* Le site officiel Ecma International
First Meaningful Paint
======================

L'indicateur ***First Meaningful Paint*** (FMP) correspond à la peinture (*paint* en anglais) intervenant après laquelle le plus grand changement de mise en page situé au-dessus de la ligne de flottaison s'est produit et après le chargement des polices. C'est lorsque la réponse à la question « La page est elle utilisable ? » devient « oui », lors de la première finition significative de la peinture.

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

* *First contentful paint*
Fonction de hachage cryptographique
===================================

Une fonction de hachage cryptographique est une primitive cryptographique qui transforme un message de taille arbitraire en un message de taille fixe, appelé un condensé. Les fonctions de hachage cryptographiques sont employées pour l'authentification, les signatures numériques et les codes d'authentification de messages.

Pour être utilisable en cryptographie, une fonction de hachage doit disposer de ces qualités :

* rapide à calculer (parce qu'elles sont fréquemment sollicitées)
* non réversible (chaque condensé peut provenir d'un très grand nombre de messages, et seule la force brute peut générer un message qui conduit à un condensé donné)
* résistant à la falsification (la moindre modification du message aboutit à un condensé différent)
* résistant aux collisions (il devrait être impossible de trouver deux messages différents qui produisent le même condensé)

Les fonctions de hachage cryptographiques comme MD5 et SHA-1 sont considérées cassées car des attaques permettant de réduire significativement leur résistance aux collisions ont été trouvées.

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

* Fonction de hachage cryptographique sur Wikipédia
Conversion de type
==================

La conversion de type (ou transtypage) est le transfert d'une donnée d'un type de donnée vers un autre. Une *conversion implicite* se produit quand le compilateur affecte les types de donnée automatiquement, mais le code source peut aussi demander à ce qu'une conversion ait lieu de manière *explicite*. Exemples simples : étant donnée l'instruction `5+2.0`, l'entier `5` est converti implicitement en nombre à virgule flottante, mais avec l'instruction `Number("0x11")`, la chaîne "0x11" est explicitement convertie en valeur numérique 17.

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

### Culture générale

* Conversion de type sur Wikipédia
Nœud
====

Le terme **nœud** peut avoir plusieurs significations selon le contexte. Il peut correspondre à :

Nœud (DOM)
Dans le contexte du DOM, un **nœud** est un point unique dans l'arbre des nœuds du DOM. Parmi les différentes choses qui sont des nœuds, on trouve le document lui-même, les éléments, le texte et les commentaires.
Nœud (réseau)
Dans un réseau, un **nœud** est un point unique du réseau. Dans les réseaux physiques, un nœud est en général un appareil, comme un ordinateur ou un routeur.

Ce mot est aussi employé à propos de Node.js
TCP slow start
==============

Le démarrage lent, ou *TCP slow start*, permet d'accumulez la vitesse de transmission des capacités du réseau sans savoir initialement quelles sont ces capacités et sans créer de congestion. TCP slow start est un algorithme utilisé pour détecter la bande passante disponible pour la transmission par paquets. Il empêche l'apparition d'une congestion du réseau dont les capacités sont initialement inconnues.

Pour implémenter un démarrage lent de TCP, la fenêtre d'encombrement (*cwnd*) fixe une limite supérieure à la quantité de données qu'une source peut transmettre sur le réseau avant de recevoir un accusé de réception (ACK). Le seuil de démarrage lent (*ssthresh*) détermine l'activation / désactivation du démarrage lent. Quand une nouvelle connexion est établie, *cwnd* est initialisé à un paquet de données ou d'accusé de réception TCP et attend un accusé de réception ou ACK. Lorsque cet ACK est reçu, la fenêtre d'encombrement est incrémentée jusqu'à ce que la valeur de *cwnd* soit inférieure à *ssthresh*. Le démarrage lent se termine également en cas de congestion.

Contrôle congestion
-------------------

Lorsque le serveur envoie des données dans des paquets TCP, le client de l'utilisateur confirme la livraison en renvoyant des accusés de réception, ou ACK. La connexion a une capacité limitée en fonction des conditions matérielles et du réseau. Si le serveur envoie trop de paquets trop rapidement, ils seront supprimés. Cela veut dire, il n'y aura pas de reconnaissance. Le serveur l'enregistre comme ACK manquant. Les algorithmes de contrôle d'encombrement utilisent ce flux de paquets envoyés et d'accusés de réception pour déterminer un débit d'envoi.

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

* Remplir la page: comment fonctionnent les navigateurs
* http overview
Netscape Navigator
==================

Netscape Navigator, ou Netscape, était le principal navigateur des années 90. Il était basé sur Mosaic et l'équipe de Netscape était dirigée par Marc Andreessen, un programmeur qui a également écrit du code pour Mosaic.

Netscape a contribué à rendre l'expérience Web graphique plutôt que texte uniquement. Beaucoup de fonctionnalités de navigation sont devenues des standards après avoir été introduites par Netscape. Le navigateur pouvait afficher une page web pendant son chargement, utiliser JavaScript pour les formulaires et rendre du contenu interactif, et enregistrer des informations de session dans des cookies. Malgré ses avantages techniques et sa prédominance initiale, Internet Explorer l'a rapidement dépassé en terme de parts de marché vers la fin des années 90.

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

### Culture générale

* Netscape Navigator sur Wikipédia
Copyleft
========

Copyleft est un terme, faisant généralement référence à une licence, utilisé pour indiquer que cette dernière impose la redistribution dudit travail sous la même licence que l'original. Des exemples de licences copyleft sont la GNU GPL (pour le logiciel) et les licences Creative Commons SA (Share Alike) (pour les œuvres artisitiques).

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

### Culture générale

* Copyleft sur Wikipédia
ALPN
====

**Application-Layer Protocol Negotiation** (**ALPN**) est une extension TLS qui indique quel protocole de couche d'application négocie la connexion chiffrée sans nécessiter d'aller-retour supplémentaires.

| Protocole | Séquence d'identification |
| --- | --- |
| HTTP/1.1 | `0x68 0x74 0x74 0x70 0x2F 0x31 0x2E 0x31` ("http/1.1") |
| HTTP/2 | `0x68 0x32` ("h2") |
| HTTP/2 over cleartext TCP | `0x68 0x32 0x63` ("h2c") |

Spécifications
--------------

| Spécification | Statut | Commentaire |
| --- | --- | --- |
| RFC 7301 | IETF RFC | Définition initiale. |

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

* Identifiants ALPN enregistrés par l'IANA
VoIP
====

La VoIP (Voice over Internet Protocol) est une technologie utilisée pour transmettre des messages vocaux via des réseaux IP (Internet Protocol). Parmi les logiciels de VoIP courants, on trouve Skype, Msn Messenger, Yahoo et beaucoup d'autres. Tout ce qui est transféré en VoIP est numérique. Cette technologie est aussi connue sous les noms de téléphonie IP ou téléphonie haut débit. La principale raison de l'utiliser est son coût.

La VoIP vous permet d'appeler directement depuis un ordinateur, un téléphone spécial VoIP ou un téléphone traditionnel connecté à un adaptateur spécial. La VoIP nécessite une connexion internet haut débit. En général, les appels téléphoniques via Internet ne génèrent pas de charges en sus de ce que l'utilisateur paye pour son accès Internet, de la même manière que l'utilisateur ne paye pas pour chaque courriel qu'il envoie par Internet.

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

### Culture générale

* VoIP sur Wikipédia
En-tête général
===============

Un **en-tête général** est un en-tête HTTP (en-US) qui peut être utilisé à la fois pour, une requête ou une réponse, mais ne s'applique au contenu lui-même. Suivant le contexte dans lequel ils sont utilisés, les en-têtes généraux sont à la fois des en-tête de réponse ou des en-têtes de requête. Toutefois, ils ne sont pas des en-têtes d'entité.

Les en-têtes généraux les plus fréquents sont la `Date`, `Cache-Control` ou `Connection`.
Noms réservés
=============

Les noms réservés sont courramment utilisés en cryptographie pour indiquer les participants à une conversation, sans recourir à une terminologie comme "Partie A", "indiscret" et "attaquant malveillant". Les noms les plus courants sont :

* *Alice* et *Bob*, deux parties qui veulent s'envoyer des messages réciproquement, parfois rejoints par *Carol*, un troisième participant
* *Eve*, un attaquant passif qui écoute la conversation d'Alice et Bob
* *Mallory*, un attaquant actif ("homme du milieu") qui est capable de modifier leur conversation et relire les anciens messages
NAT
===

**NAT** (Network Address Translation) est une technique pour permettre à plusieurs ordinateurs de partager une adresse IP. Le NAT attribue des adresses uniques aux ordinateurs du réseau local et ajuste le trafic réseau entrant/sortant pour envoyer les données au bon endroit.

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

### Culture générale

* Introduction aux protocoles WebRTC (en-US) sur MDN
* NAT sur Wikipédia
Portée
======

Le contexte d'exécution courant. Le contexte dans lequel les valeurs et **expressions** sont "visibles," ou peuvent être référencées. Si une **variable** ou autre expression n'est pas "dans la portée actuelle", alors son utilisation ne sera pas possible. Les portées peuvent aussi être empilées hiérarchiquement de manière à ce que les portées enfants puissent accéder aux portées parentes, mais pas l'inverse.

Une **fonction** sert de **fermeture** en JavaScript, et crée ainsi une portée, pour cette raison, par exemple, une variable définie exclusivement à l'intérieur de la fonction ne sera pas accessible en dehors de celle-ci ni depuis d'autres fonctions.

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

### Culture générale

* Portée sur Wikipédia
SSL
===

SSL (Secure Sockets Layer) est un protocole standard qui garantit que la communication entre deux applications informatiques est privée et sécurisée (ne peut être ni lue ni modifiée par des observateurs extérieurs). C'est la base du protocole TLS.

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

### Culture générale

* *Transport Layer Security* sur Wikipédia
### Voir aussi

* SSL functions (en-US)
* HTTPS