IIFE - Glossário do MDN Web Docs: Definições de termos relacionados à Web

IIFE
====

**IIFE** (Immediately Invoked Function Expression) é uma função em JavaScript que é executada assim que definida.

É um Design Pattern também conhecido como Self-Executing Anonymous Function e contém duas partes principais. A primeira é a função anônima cujo escopo léxico é encapsulado entre parênteses. Isso previne o acesso externo às variáveis declaradas na IIFE, bem como evita que estas variáveis locais poluam o escopo global.

A segunda parte corresponde à criação da expressão `()`, por meio da qual o interpretador JavaScript avaliará e executará a função.

Exemplos
--------

A função se torna uma expressão que é imediatamente executada. A variável definida dentro da expressão não pode ser acessada fora de seu escopo.

```js
(function () {
  var nome = "Felipe";
})();
// A variável nome não é acessível fora do escopo da expressão
nome; // gerará o erro "Uncaught ReferenceError: nome is not defined"
```

Atribuir uma IIFE a uma variável não armazenará a função em si, mas o **resultado da função.**

```js
var result = (function () {
  var nome = "Felipe";
  return nome;
})();
// Imediatamente gera a saída:
result; // "Felipe"
```

Aprenda Mais
------------

### Aprenda mais sobre IFFE

* Ben Alman's blog post defining IIFEs
* Quick example (at the end of the "Functions" section, right before "Custom objects")
### Conhecimentos Gerais

* IIFE on Wikipedia


Chrome - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Chrome
======

Em um navegador, o chrome é qualquer aspecto visível do navegador aparte das páginas web (ex., barra de ferramentas, menus, abas). Não deve ser confundido com o Google Chrome (en-US) navegador.

Aprenda mais
------------

* Browser and GUI Chrome


URI - Glossário do MDN Web Docs: Definições de termos relacionados à Web

URI
===

A **URI** (*Uniform Resource Identifier*, ou *Identificador Uniforme de Recursos*) é uma string (sequência de caracteres) que se refere a um recurso. A mais comum é a URL, que identifica o recurso localizando-o na Web. URNs (en-US), em contraste, refere-se a um recurso pelo nome, em dado namespace. Ex: o ISBN de um livro.

Aprenda mais
------------

### Conhecimento geral

* URI na Wikipedia
* RFC 3986 on URI
* data URIs (en-US)
* www vs non-www (en-US)


Abstração - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Abstração
=========

Abstração em programação de computadores é uma forma de reduzir a complexidade e tornar o projeto e a implementação mais eficientes em sistemas complexos de software. Ela esconde a complexidade técnica de um sistema por trás de uma APIs mais simples.

Saiba mais
----------

### Conhecimentos gerais

* Abstração na Wikipédia


Booleano - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Booleano
========

Um **booleano**, em ciência da computação, é um tipo de dado lógico que pode ter apenas um de dois valores possíveis: `verdadeiro` ou `falso`. Por exemplo, em JavaScript, condicionais booleanas são usadas para decidir quais trechos do código serão executados ou repetidas.
```

if (condicao booleana) {
   // codigo a executar se o booleano for TRUE
}

if (condicao booleana) {
  console.log("booleano é verdadeiro");
} else {
  console.log("booleano é falso");
}

/* JavaScript for loop */
for (variavel de controle; condicao booleana; contador) {
  // codigo a se repetir se o booleano for TRUE
}

for (var i=0; i < 4; i++) {
  console.log("codigo a executar se a condicao for verdadeira, ou seja até 'i' atingir o valor de 4 ");
}
```

Veja mais
---------

### Referências externas

* Boolean on Wikipedia (em inglês)
* Booleano na Wikipedia
### Referência

* O objeto global JavaScript: `Boolean`


Elementos block-level - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Elementos block-level
=====================

Elementos HTML **(Linguagem de marcação de hipertexto)** historicamente foram categorizados como "nível de bloco" ou elementos "em linha" (en-US). Um elemento em nível de bloco ocupa todo o espaço de seu elemento pai (container), criando assim um "bloco". Este artigo ajuda a explicar o que isso significa.

Navegadores normalmente mostram o elemento em nível de bloco com uma nova linha antes e depois do elemento. O exemplo a seguir demonstra a influência desse elemento em nível de bloco:

Elementos em nível de bloco
---------------------------

### HTML

```html
<p>
  Este parágrafo é um elemento block-level; seu plano de fundo foi colorido para
  exibir o elemento pai do parágrafo.
</p>
```

### CSS

```css
p {
  background-color: #8abb55;
}
```

Utilização
----------

* Elementos nível de bloco podem aparecer apenas dentro do elemento `<body>`
Nível-de-bloco vs. em-linha
---------------------------

Existem algumas diferenças importantes entre os elementos no nível do bloco e os elementos em linha:

Modelo de conteúdo

Geralmente, os elementos no nível de bloco podem conter elementos em linha e, às vezes, outros elementos no nível de bloco. Inerente a essa distinção estrutural está a idéia de que elementos de bloco criam estruturas "maiores" que elementos em linha.

Formatação padrão

Por padrão, os elementos no nível de bloco começam em novas linhas, mas, os elementos em linha, podem iniciar em qualquer lugar.

A distinção entre elementos em nível de bloco e elementos em linha foi usada nas especificações HTML até 4.01. No HTML5, essa distinção binária é substituída por um conjunto mais complexo de categorias de conteúdo (en-US). Enquanto a categoria "em linha" corresponde aproximadamente à categoria de conteúdo de frases (en-US), a categoria "nível de bloco" não corresponde diretamente a nenhuma categoria de conteúdo HTML5. Mas, os elementos "nível de bloco" e "embutido" combinados, correspondem ao conteúdo de fluxo (en-US), em HTML5. Existem também categorias adicionais, por exemplo conteúdo interativo.

Elementos
---------

A seguir, é apresentada uma lista completa de todos os elementos no nível de bloco HTML (embora "nível de bloco" não esteja tecnicamente definido para elementos novos no HTML5).

`<address>`

Informação de contato.

`<article>`

Conteúdo do artigo.

`<aside>`

Conteúdo lateral.

`<blockquote>`

Citação longa ("bloco").

`<details>`

Widget de divulgação.

`<dialog>`

Caixa de diálogo.

`<dd>`

Descreve um termo em uma lista de descrição.

`<div>`

Divisão de conteúdo.

`<dl>`

Lista de descrição.

`<fieldset>`

Rótulo de conjunto de campos.

`<figcaption>`

Legenda da figura.

`<figure>`

Groups media content with a caption (see `<figcaption>`).

`<footer>`

Section or page footer.

`<form>` (en-US)

Input form.

`<h1>` (en-US), `<h2>` (en-US), `<h3>` (en-US), `<h4>` (en-US), `<h5>` (en-US), `<h6>` (en-US)

Heading levels 1-6.

`<header>`

Section or page header.

`<hgroup>`

Groups header information.

`<hr>`

Horizontal rule (dividing line).

`<li>`

List item.

`<main>`

Contains the central content unique to this document.

`<nav>`

Contains navigation links.

`<ol>`

Ordered list.

`<p>`

Paragraph.

`<pre>`

Preformatted text.

`<section>`

Section of a web page.

`<table>`

Table.

`<tfoot>`

Table footer.

`<ul>`

Unordered list.

`<video>`

Video player.

### Veja também

* Elementos Emlinha


marcação - Glossário do MDN Web Docs: Definições de termos relacionados à Web

marcação
========

 Uma linguagem de marcação é aquela projetada para definir e apresentar textos.
 HTML (Linguagem de Marcação de Hipertexto), é um exemplo de linguagem
 de marcação.

 Em um arquivo de texto, como um arquivo HTML, os elementos são *marcados* utilizando tags, que explica o
 objetivo dessa parte do conteúdo.

Tipos de linguagem de marcação
------------------------------

**Marcação de Apresentação** (em inglês: *Presentational Markup*):

 Tradicionalmente utilizado pelos pelos processadores de texto, são marcações incorporadas no texto que produzem o efeito
 WYSIWYG ("O que você vê é o que você obtém"). Sem a necessidade de manipulação direta de código,
 geralmente essas marcações são feitas para serem ocultas dos usuários humanos, autores ou editores. De maneira mais apropriada, esses sistemas usam a
 marcação procedimental e/ou descritiva "por debaixo dos panos", mas as convertem para apresentar pro usuário de maneira renderizada.

**Marcação Procedimental** (em inglês: *Procedural Markup*):

 Fornece instruções para os programas processarem o texto. Exemplos conhecidos incluem troff, TeX e PostScript. Espera-se que o processador execute o texto
 do começo ao fim, seguindo as instruções encontradas. O texto com essa marcação geralmente é editado com a marcação visível e manipulada diretamente pelo
 autor. Os sistemas procedimentais mais populares geralmente incluem construções de programação, e macros ou sub-rotinas que são comumente definidas para que
 conjuntos complexos de instruções possam ser chamados por um nome simples (e talvez alguns parâmetros). Isso é muito mais rápido, menos propenso a erros e
 fácil de manutenção do que repor as mesmas instruções ou instruções semelhantes em muitos lugares.

**Marcação Descritiva** (em inglês: *Descriptive Markup*):

 Usada especificamente para rotular partes do documento como elas são, e não como devem ser processadas. Sistemas conhecidos que fornecem muitos desses
 rótulos incluem LaTeX, HTML e XML. O objetivo é dissociar a estrutura do documento de qualquer tratamento ou representação particular. Essa marcação é
 frequentemente descrita como "semântica". Um exemplo de uma marcação descritiva seria a tag
 `<cite>` do HTML, usada para rotular uma citação. Essa marcação incentiva os autores a
 escrever de uma maneira que descreva o material conceitualmente, em vez de apenas visualmente.

 Há um borrão considerável das linhas entre os tipos de marcação. Nos sistemas modernos de processamento de texto, a marcação de apresentação é geralmente
 salva em sistemas orientados a marcação descritiva, como XML, e depois processada procedimentalmente por outras sistemas. O TeX, linguagem de marcação
 procedimental, pode ser usada para criar sistemas de marcação com natureza mais descritiva, como o LaTeX.


REST - Glossário do MDN Web Docs: Definições de termos relacionados à Web

REST
====

**REST** (Representational State Transfer) refere-se a um grupo de restrições de design dentro da arquitetura de software que geram sistemas distribuídos eficientes, confiáveis e escaláveis. Um sistema é denominado RESTful quando adere a todas essas restrições.

A ideia básica do REST é que um recurso, por exemplo um documento, seja transferido com seu estado bem definido, padronização de operações e formatos, ou serviços que se autodenominem RESTful, quando modificam diretamente o tipo de documento, ao invés de desencadear ações em algum lugar.

Como o HTTP, protocolo padrão por trás da "World Wide Web", a "Web" também transfere documentos e links de hipertexto. APIs HTTP simples são às vezes chamadas de APIs RESTful, serviços RESTful ou simplesmente serviços REST, embora não adotem todas as restrições REST necessariamente. Os iniciantes podem presumir que uma API REST significa um serviço HTTP que pode ser chamado usando bibliotecas e ferramentas padrões da web.

### Saiba mais

* restapitutorial.com
* restcookbook.com
### Conhecimento geral

* REST na Wikipédia
* REST Architecture


undefined - Glossário do MDN Web Docs: Definições de termos relacionados à Web

undefined
=========

Um valor **primitive** automaticamente atribuido para **variaveis** que foram recentemente declaradas ou para **arguments formais** para qual não existem **argumentos atualmente**.

Aprenda mais
------------

### Conhecimentos gerais

* Undefined value no Wikipedia
### Referência Técnica

* JavaScript data types and data structures


Hoisting - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Hoisting
========

Hoisting (içamento, em português) é um termo que você *não* encontrará usado em nenhuma prosa de especificação normativa antes da especificação de idioma do ECMAScript® 2015. Hoisting foi pensado como uma maneira geral de pensar sobre como os contextos de execução (especificamente as fases de criação e execução) funcionam em JavaScript. No entanto, o conceito pode ser um pouco confuso a princípio.

Conceitualmente, por exemplo, uma definição estrita de elevação sugere que as declarações de variáveis e funções são fisicamente movidas para o topo do seu código, mas isso não é realmente o que acontece. Em vez disso, as declarações de variável e função são colocadas na memória durante a fase de *compilação*, mas permanecem exatamente onde você as digitou no seu código.

Aprenda mais
------------

### Exemplo técnico

Variáveis:

Uma das vantagens do JavaScript em colocar declarações de função na memória antes de executar qualquer segmento de código é que ele permite que você use uma função antes de declara-la em seu código. Por exemplo:

```js
function catName(name) {
  console.log("O nome do meu gato é " + name);
}

catName("Tigger");

/\*
O resultado do código acima é: "O nome do meu gato é Tigger"
\*/
```

O trecho de código acima é como você escreveria o código para que ele funcionasse. Agora, vamos ver o que acontece quando chamamos a função antes de escrevê-la:

```js
catName("Chloe");

function catName(name) {
  console.log("O nome do meu gato é " + name);
}
/\*
O resultado do código acima é: "O nome do meu gato é Chloe"
\*/
```

Mesmo que chamemos a função em nosso código primeiro, antes que a função seja escrita, o código ainda funciona. Isto ocorre por conta de como a execução de contexto funciona em JavaScript.

Hoisting funciona bem com outros tipos de dados e variáveis. As variáveis podem ser inicializadas e usadas antes de serem declaradas.

### Apenas declarações são hoisted(içadas, em português)

O JavaScript apenas eleva (hoists) as declarações, não as inicializações. Se uma variável for declarada e inicializada após usá-la, o valor será undefined. Por exemplo:

```js
console.log(num); // Retorna undefined
var num;
num = 6;
```

Se você declarar a variável depois que ela for usada, mas inicializá-la antecipadamente, ela retornará o valor:

```js
num = 6;
console.log(num); // retorna 6
var num;
```

Abaixo estão mais exemplos demonstrando a elevação (hoisting).

```js
//Exemplo 1 - Não eleva (hoist)
var x = 1; // Inicializa x
console.log(x + " " + y); // '1 undefined'
var y = 2; // Initialize y
//Isso não funcionará, pois o JavaScript apenas eleva declarações

//Example 2 - Hoists
var num1 = 3; //Declara e inicializa num1
num2 = 4; //Inicializa num2
console.log(num1 + " " + num2); //'3 4'
var num2; //Declara num2 para hoisting

//Example 3 - Hoists
a = "Cran"; //Inicializa a
b = "berry"; //Inicializa b
console.log(a + "" + b); // 'Cranberry'
var a, b; //Declara ambos a & b para hoisting
```

### Referência técnica

* var statement — MDN
* function statement — MDN


Selector (CSS) - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Selector (CSS)
==============

O **seletor CSS** é parte da regra do CSS que lhe permite selecionar qual elemento(s) vai receber o estilo pela regra.

Exemplos
--------

### HTML

```html
<div>Eu estou dentro do elemento.</div>
<p>Eu estou dentro de um elemento de parágrafo.</p>
```

### CSS

```css
div {
  color: green;
}

p {
  color: red;
}
```

Nessa primeira regra do CSS, eu estou selecionando o elemento da div estilizando-a colorindo o texto para verde. Na segunda regra do CSS, eu estou selecionando o elemento "p" e estilizando-a colorindo o texto para vermelho. Aqui estão os resultados:

![CSS selector coding results](/pt-BR/docs/Glossary/CSS_Selector/cssselectormdnglossary.jpg)

Aprenda mais
------------

### Conhecimento geral

* Seletores básicos
    + Tipos de seletores `elementname`
    + Classes seletoras `.classname`
    + ID seletores `#idname`
    + Seletores universais `* ns|* *|*`
    + Seletores de atributos `[attr=value]`
    + `Seletores de estado a:active, a:visited`
* Combinadores
    + Seletores de irmão adjacentes (en-US) `A + B`
    + Seletores de irmãos gerais `A ~ B`
    + Seletores filhos (en-US) `A > B`
    + Seletores descendentes (en-US) `A B`
* Pseudo-elementos
* Pseudo-classes
### Referência técnica

Selectors Level 3


URL - Glossário do MDN Web Docs: Definições de termos relacionados à Web

URL
===

*Uniform Resource Locator* (**URL**) é uma sequência de texto que especifica onde um recurso pode ser encontrado na Internet.

No contexto de HTTP, URLs são chamadas de "Endereços web" ou "link". Seu navegador exibe as URLs na barra de endereços, por exemplo `https://developer.mozilla.org`

URLs também podem ser usadas para transferir arquivos por (FTP (en-US)) , emails (SMTP (en-US)), e outras aplicações.

Aprenda mais
------------

### Conhecimento Geral

* URL na Wikipedia
### Saiba mais

* Entendendo URLs e sua estrutura


Endianness - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Endianness
==========

"Endian" and "endianness" (ou "ordem-de-bytes") descrevem como os computadores organizam os bytes que compõem os números.

Cada local de armazenamento de memória possui um indice ou endereço. Cada byte pode ser armazenado em um numero de 8-bits (ou seja, entre `0x00` e `0xff`), então você deve reservar mais que um byte para armazenar um numero maior. De longe, o mais comum na ordenação de múltiplos bytes em um único número é o **little-endian,** que é usado em todos os processadores Intel. Little-endian significa armazenar bytes na ordem do menor para o mais significativo (onde o byte menos significativo ocupa o primeiro, ou menor, endereço), comparável a maneira comum de escrever datas na Europa (por exemplo, 31 Dezembro de 2050).

Naturalmente, **big-endian** é a ordem oposta, comparável a uma data ISO (2050-12-31). Big-endian é frequentemente chamada de "ordem de bytes de rede", por que os padrões da internet geralmente exigem que os dados sejam armazenados em big-endian, começando pelo nivel padrão do socket UNIX e indo a todas as estruturas padronizadas de dados binários da Web. Além disso, os computadores Mac mais antigos, que usam a série 68000 e microprocessadores PowerPC, usavam o big-endian.

Exemplos com o numero `0x12345678` (ou seja, 305 419 896 em decimal):

* *little-endian:* `0x78 0x56 0x34 0x12`
* *big-endian:* 0x12 0x34 0x56 0x78
* *mixed-endian* (histórico e muito raro): 0x34 0x12 0x78 0x56
Veja também
-----------

* `ArrayBuffer`
* `DataView`
* Typed Arrays
* Endianness na Wikipedia


Navegador - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Navegador
=========

Um navegador *Web* é um programa que obtém e exibe páginas da Web (en-US), e permite que os usuários acessem outras páginas através de hyperlinks (en-US).

Saiba mais
----------

### Conhecimento geral

* Navegador web na Wikipedia
* The evolution of the web
### Baixar um navegador

* Mozilla Firefox
* Google Chrome
* Microsoft Internet Explorer
* Opera Browser


Pixel CSS - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Pixel CSS
=========

O **Pixel CSS** - denotado no CSS pelo sufixo px - é uma unidade de comprimento que corresponde aproximadamente a largura ou altura de um ponto único que pode ser confortavelmente visto pelos olhos humanos sem esforço, mas é o menor possível. Por definição, esse é o tamanho físico de um único píxel em uma densidade de 96 DPI, situado a um braço de distância dos olhos do observador.

Essa definição, é claro, se demonstra ser muito vaga, e termos como "confortavelmente visto" e "braço de distância" são imprecisas, variando de pessoa para pessoa. Por exemplo, quando um usuário se senta em sua mesa, defronte a sua área de trabalho, o monitor geralmente estará longe dos seus olhos enquanto ele estiver usando o celular.

Assim sendo, geralmente basta dizer que quando a unidade de px é usada, o objetivo é tentar manter a distancia de 96px equivalentes a 1 polegada na tela, independentemente da densidade da tela. Em outras palavras, se o usuário está em celular com uma densidade de pixel de 266 DPI, e há um elemento colocado na tela com uma largura de 96px, então este elemento ocupará uma largura de 266px nos pixels do dispositivo.

Saiba mais
----------

### Referência técnica

* CSS Values and Units Module, section 5.2: Absolute Lengths
### Aprenda sobre

* CSS Length Explained on the MDN Hacks Blog


Flexbox - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Flexbox
=======

Flexbox é o nome normalmente usado para o Módulo CSS Flexible Box Layout, um modelo de layout para mostrar itens numa única dimensão — como linha ou como coluna. Inserir uma caixa dentro da outra (p. ex. linha numa coluna, ou coluna numa linha) permite a criação de layouts em duas dimensões.

Na especificação, Flexbox é descrito como um modelo de layout usado na criação de interfaces. A principal característica do Flexbox é o fato que itens em um layout podem crescer ou encolher. Espaços podem ser atribuídos aos próprios itens, distribuídos entre eles, ou posicionados ao redor dos mesmos.

Flexbox também permite o alinhamento de itens tanto no Eixo Principal (en-US) quanto no Eixo Transversal (en-US), provendo um alto nível de controle sobre o tamanho e alinhamento de grupos de itens.

Ver também
----------

### Referência de propriedades

* `align-content`
* `align-items`
* `align-self`
* `flex`
* `flex-basis` (en-US)
* `flex-direction`
* `flex-flow`
* `flex-grow` (en-US)
* `flex-shrink` (en-US)
* `flex-wrap`
* `justify-content` (en-US)
* `order` (en-US)
### Leitura adicional

* *CSS Flexible Box Layout Module Level 1 Specification*
* Guia CSS Flexbox: *`Conceitos básicos de flexbox`*
* Guia CSS Flexbox: *`Relação entre flexbox e outros métodos de layout` (en-US)*
* Guia CSS Flexbox: *`Alinhando itens em um container Flex`*
* Guia CSS Flexbox: *`Ordenando itens flex` (en-US)*
* Guia CSS Flexbox: *`Controlando proporções de itens flex ao longo do eixo principal` (en-US)*
* Guia CSS Flexbox: *`Dominando o uso da propriedade wrap` (en-US)*
* Guia CSS Flexbox: *`Casos típicos de uso do Flexbox` (en-US)*


Escopo - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Escopo
======

É o contexto atual de execução, em que valores e expressões são "visíveis" ou podem ser referenciadas. Se uma variável ou outra expressão não estiver "no escopo atual", então não está disponível para uso. Os escopos também podem ser em camadas em uma hierarquia, de modo que os escopos filhos tenham acesso aos escopos pais, mas não vice-versa.

Uma function serve como um procedimento em JavaScript, e portanto, cria um escopo, de modo que (por exemplo) uma variável definida exclusivamente dentro da função não pode ser acessada de fora da função ou dentro de outras funções.

Aprender mais
-------------

### Conhecimento geral

* Escopo (computação) em Wikipedia


Síncrono - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Síncrono
========

**Síncrono** refere-se a comunicação em tempo real onde cada parte recebe ( e se necessário, processa e responde) mensagens instantaneamente (ou o mais próximo possível do instantâneo).

Um exemplo humano é o telefone — durante uma chamada telefônica você costuma responder para outra pessoa imediatamente.

Muitos comandos de programação são também síncronos — por exemplo quando você digita um cálculo, o ambiente irá retornar o resultado para você instantaneamente, a menos que você programe para não fazer.

Saiba mais
----------

### Technical reference

* Assíncrono
* Synchronous and asynchronous requests using the XMLHttpRequest() API


Gecko - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Gecko
=====

**Gecko** é um motor de layout desenvolvido pela Mozilla Project e utilizado em vários apps/dispositivos, incluindo Firefox e Firefox OS (en-US).

Web browsers precisam de um software chamado de motor de layout para interpretar HTML, CSS, JavaScript, e conteúdos embutidos (como imagens) e desenhar tudo para a sua tela. Apesar disso, Gecko garante que APIs associadas funcionem bem em qualquer sistema operacional que o Gecko suporte, e que APIs apropriadas sejam expotas somente aos alvos relevantes. Isso significa que o Gecko inclui, além de outras coisas, uma pilha de conexão de rede, pilha gráfica, motor de layout, uma máquina virtual de JavaScript e portando camadas.

Como todos os aplicativos do Firefox OS são Web apps, o Firefox OS usa o Gecko como seu aplicativo de execução também.

Aprenda mais
------------

### Conhecimento geral

* Gecko no Wikipedia
### Referência técnica

* A documentação do Gecko na MDN


Acessibilidade - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Acessibilidade
==============

*Acessibilidade na Web (Web Accessibility)* (**A11Y**) refere-se às melhores práticas para manter um site útil, apesar das restrições físicas e técnicas. A acessibilidade da Web é formalmente definida e discutida no W3C através de Web Accessibility Initiative (en-US) (WAI).

Leia Mais
---------

### Conhecimento Geral

* Accessibility resources at MDN
* Web accessibility na Wikipedia
### Aprenda sobre acessibilidade na web

* Web Accessibility In Mind
### Referências Técnicas

* The ARIA documentation on MDN
* The Web Accessibility Initiative homepage
* The WAI-ARIA recommendation


TCP - Glossário do MDN Web Docs: Definições de termos relacionados à Web

TCP
===

TCP (*Transmission Control Protocol*, em português, Protocolo de Controle de Transmissão) é um importante protocolo de rede que permite dois *hosts* se conectem e troquem dados. TCP garante a entrega de dados e pacotes na mesma ordem que foram enviados. Vint Cerf e Bob Kahn, que na época eram cientistas da DARPA (*Defense Advanced Research Projects Agency*, em português, Agência de Pesquisas em Projetos Avançados de Defesa), projetaram TCP na década de 1970.

Saiba Mais
----------

### Conhecimento Geral

* Transmission Control Protocol na Wikipedia


Recursão - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Recursão
========

Um ato de uma função invocando a si mesma. A recursão é usada para resolver problemas que contêm subproblemas menores. Uma função recursiva pode receber dois inputs (entradas): um caso base (termina a recursão) ou um caso recursivo (continua a recursão).

Leia mais
---------

### Conhecimento Geral

* Recursividade (ciência da computação) no Wikipédia
* More details about recursion in JavaScript


Tópico de Alinhamento - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Tópico de Alinhamento
=====================

No Alinhamento de Box do CSS (en-US), o **tópico (assunto) de alinhamento** é a coisa (ou coisas) que está sendo alinhada pelas propriedades.

Para o `justify-self` (en-US) e `align-self`, o tópico de alinhamento é o box de margem do box em que a propriedade está definida, usando o modo de escrita desse box.

Para o `justify-content` (en-US) e `align-content`, o modo de escrita do box também é usado. A definição do tópico de alinhamento depende do modo de layout que está sendo usado.

Contêineres de bloco (incluindo células de tabela)

Todo o conteúdo do bloco como uma única unidade.

Contêineres de colunas múltiplas (multicol)

As caixas de colunas, com qualquer espaçamento inserido entre as caixas de colunas adicionado às lacunas de coluna relevantes.

Contêineres flexíveis

 Para `justify-content` (en-US), os items flexíveis em cada linha flexível.
 Para `align-content`, as linhas flexíveis. Perceba que, isso só tem efeito em contêineres flexíveis de múltiplas linhas.

Contêineres grid

As trilhas do grid nos eixos apropriados, com qualquer espaçamento inserido entre trilhas adicionado à gutters relevantes. Gutters colapsados são tratados como uma oportunidade única para inserção no espaço.

Saiba mais
----------

* Alinhamento de Box do CSS (en-US)


Key - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Key
===

Uma key é uma parte de informação utilizada por um cipher (en-US) para encryption (en-US) e/ou decryption (en-US).Mensagens criptografadas devem permanecer seguras mesmo se tudo envolvendo o cryptosystem, com exceção da key, for de caráter público.

Em symmetric-key cryptography (en-US), a mesma chave é utilizada para criptografar e descriptografar. Em public-key cryptography (en-US), existem keys relacionadas conhecidas como keys públicas e keys privadas. A key pública é disponibilizada gratuitamente, enquanto, a key privada é mantida "em segredo". A key pública é capaz de criptografar mensagens as quais apenas a key privada correspondente é capaz de descriptografar, e vice-versa.

Aprenda mais
------------

* Kerckhoffs's principle na Wikipedia
### Dicionário

"Key": "Chave"


Localização - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Localização
===========

Localização (L10n) é o processo de tradução de interfaces de software a partir de uma língua para outra e adaptá-lo para atender a uma cultura estrangeira. Esses recursos são para qualquer pessoa com interesse nos aspectos técnicos envolvidos na localização. Eles são para os desenvolvedores e todos os colaboradores.

Documentação
------------

Localização Guia Rápido

First read for volunteers wanting to start localizing.

XUL Tutorial:Localization

XUL Tutorial section on localizing XUL applications.

Writing localizable code

Best practices and guidelines for programmers to play nicely with localization.

Localizing Help files

How to separate content from HTML to make these files more easy to localize.

Custom dialog size

How to adjust window sizes to fit specific localizations.

Localizing extension descriptions

To localize the description of an extension (the string that shows up under extension's name in the Extensions window), you need to use a special preference key to override the description specified in your install.rdf file. This article contains instructions on how to modify this preference key.

Frequently Asked Localization Questions

Frequently asked questions about localization.

Related Topics
--------------

* Extensions,
* XUL


Doctype - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Doctype
=======

No HTML, o doctype é a introdução "`<!DOCTYPE html>`" encontrada no topo de todos os documentos. Seu único propósito é evitar que o browser mude para os chamados "quirks mode" quando renderizar um documento; isto é, o "`<!DOCTYPE html>`" doctype garante que o browser faça um esforço na tentativa de seguir as especificações relevantes, em vez de usar um modo de renderização diferente e que seja incompatível com algumas especificações.

Saiba mais
----------

### Conhecimento Geral

* Definição do DOCTYPE nas especificações do HTML
* Quirks Mode and Standards Mode
### Referência técnica

* Document.doctype, um método JavaScript que retorna o doctype


Cabeçalho de Requisição - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Cabeçalho de Requisição
=======================

Um **cabeçalho de requisição** é um cabeçalho HTTP (en-US) que pode ser utilizado em uma requisição HTTP, e não é relacionado ao conteúdo da mensagem. Cabeçalhos de requisição, como `Accept`, `Accept-*`, ou ainda `If-*` permitem realizar requisições condicionais; outros como `Cookie`, `User-Agent` ou `Referer` deixa o contexto mais preciso para que o servidor possa adaptar melhor a resposta.

Nem todos os cabeçalhos exibidos em uma requisição são *cabeçalhos de requisição.* Por exemplo, o `Content-Length` exibido em uma requisição `POST` é na realidade uma entity header, que referencia o tamanho do corpo da mensagem de requisição. Porém, esses *cabeçalhos de entidade* muitas vezes são chamados de *cabeçalhos de requisição*.

Adicionalmente, o sistema CORS define um subconjunto de cabeçalhos de requisição como simple headers (en-US), cabeçalhos de requisição que sempre são considerados como autorizados e não são explicitamente listados em respostas de requisições preflight.

Um certo número de cabeçalhos de requisição após uma requisição `GET`:
```

GET /home.html HTTP/1.1
Host: developer.mozilla.org
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://developer.mozilla.org/testpage.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1
If-Modified-Since: Mon, 18 Jul 2016 02:36:04 GMT
If-None-Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a"
Cache-Control: max-age=0
```

Estritamente, o cabeçalho `Content-Length` neste exemplo não é um cabeçalho de requisição como os outros, mas sim uma entity header:
```

POST /myform.html HTTP/1.1
Host: developer.mozilla.org
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Content-Length: 128
```

Learn more
----------

### Technical knowledge

* List of all HTTP headers


Argumento - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Argumento
=========

Um **argumento** é um valor (primitivo ou um objeto) passado como um input (entrada) para uma função.

Leia mais
---------

### Conhecimento Geral

* Diferenças de Parâmetro e Argumento no Wikipédia
### Referencia Técnica

* Os `arguments` de objeto no JavaScript


Valor - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Valor
=====

No contexto de dados ou um objeto wrapper em torno desses dados, o valor é um valor primitivo que contém o wrapper do objeto. No contexto de uma variável ou propriedade, o valor pode ser primitivo ou refêrencia de um objeto (en-US).

Aprender mais
-------------

### Conhecimento geral

* Primitive wrapper class on Wikipedia


HTML - Glossário do MDN Web Docs: Definições de termos relacionados à Web

HTML
====

HTML (HyperText Markup Language) é uma linguagem descritiva que especifica a estrutura de uma página web.

Breve história
--------------

Em 1990, Tim Berners-Lee definiu o conceito de hipertexto como parte de sua visão da Web (en-US) , a qual Berners-Lee formalizou no ano seguinte através de uma marcação baseada em SGML. O IETF (en-US) começou a especificar formalmente o HTML em 1993, e depois de vários rascunhos, lançou a versão 2.0 em 1995. Em 1994 Berners-Lee fundou a W3C para desenvolver a Web. Em 1996, a W3C assumiu o HTML e publicou a recomendação HTML 3.2 um ano depois. A recomendação HTML 4.0 foi lançada em 1999 e se tornou um padrão ISO em 2000.

Nesse momento, a W3C quase abandonou o HTML em favor do XHTML, levando a fundação de um grupo independente chamado de WHATWG em 2004. Graças ao WHATWG, o trabalho em HTML5 (en-US) continuou: as duas organizações lançaram o primeiro rascunho em 2008 e o padrão final em 2014.

Conceito e sintaxe
------------------

Um documento HTML é um documento de texto simples estruturado com elementos. Elementos são acompanhados de abertura e fechamento de tags. Cada tag começa e termina com colchetes angulares (<>). Existem algumas tags vazias ou sem conteúdo que não podem incluir qualquer texto, como por exemplo a tag `<img>`.

Você pode estender tags HTML com atributos, os quais fornecem informações adicionais que afetam como o navegador interpreta o elemento:

![Detalhes da estrutura de um elemento HTML](/pt-BR/docs/Glossary/HTML/mdn_anatomia_de_um_elemento_html.png)

Um arquivo HTML normalmente é salvo com uma extensão .htm ou .html, é disponibilizado por um servidor web, e pode ser renderizado por qualquer navegador.

Leia mais
---------

### Conhecimento Geral

* HTML na Wikipedia
### Aprendendo HTML

* Nosso tutorial de HTML
* O curso web no codeacademy.com
### Referência Técnica

* A documentação HTML no MDN
* A especificação HTML (W3C)


Requisição Preflight - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Requisição Preflight
====================

Uma requisição *preflight* de CORS é uma requisição de CORS que verifica se o protocolo CORS é entendido e se o servidor aguarda o método e cabeçalhos('headers') especificados.

É uma requisição `OPTIONS`, que usa três cabeçalhos de solicitação HTTP: `Access-Control-Request-Method`, `Access-Control-Request-Headers`, e o cabeçalho `Origin`.

Uma requisição *preflight* é emitida automaticamente por um navegador, quando necessário. Geralmente, os desenvolvedores front-end não precisam criar essas solicitações. Ela acontece quando a requisição é qualificada "para ser preflighted" e omitida para requisições simples.

Por exemplo, o cliente pode perguntar ao servidor se este permitiria uma requisição `DELETE`, antes de enviá-la, usando uma requisição *preflight*:
```

OPTIONS /resource/foo
Access-Control-Request-Method: DELETE
Access-Control-Request-Headers: origin, x-requested-with
Origin: https://foo.bar.org
```

Se o servidor permitir, ele responderá à requisição *preflight*: com um cabeçalho de resposta `Access-Control-Allow-Methods`, que lista DELETE:
```

HTTP/1.1 204 No Content
Connection: keep-alive
Access-Control-Allow-Origin: https://foo.bar.org
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
```

A resposta da requisição *preflight* pode ser opcionalmente cacheada para requisições realizadas na mesma url usando o cabeçalho Access-Control-Max-Age como no exemplo acima.

Veja também
-----------

* CORS
* `OPTIONS`


Caractere - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Caractere
=========

Um *caractere* é um símbolo (letras, números, pontuação) ou de controle não imprimível (por exemplo, carriage return ou hífen). UTF-8 é o conjunto de caracteres mais comum e inclui os grafemas dos idiomas humanos mais populares.

Saiba Mais
----------

### Conhecimento Geral

* Caractere no Wikipedia
* Codificação de caracteres no Wikipedia
* ASCII on Wikipedia
* UTF-8 on Wikipedia
* Unicode on Wikipedia


Modelo de Objeto CSS (CSSOM) - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Modelo de Objeto CSS (CSSOM)
============================

O **Modelo de Objeto CSS (CSSOM)** é um mapeamento de todos os seletores CSS e propriedades relevantes para cada seletor no formato de árvore, com um nó raiz, irmão, descendente, filho e outro relacionamento. O CSSOM é muito similar ao Modelo de Objeto de Documento (DOM). Ambos são parte do caminho de renderização crítica, o qual é uma série de etapas que devem acontecer para renderizar o site corretamente.

O CSSOM, junto ao DOM, para construir a árvore de renderização, que por sua vez é usada pelo navegador para apresentar e estilizar a página.

### CSSOM API

O Modelo de Objeto CSS é também um conjunto de APIs que permitem manipulação de CSS a partir do JavaScript. É semelhante ao DOM, mas para o CSS invés de HTML. Permite os seus usuários lerem e modificar o CSS dinamicamente.

Saiba mais
----------

* Preenchendo a página: como os navegadores funcionam (en-US)


Programação de Computadores - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Programação de Computadores
===========================

Programação é o processo que formula a solução de um problema computacional ou automatiza uma tarefa repetitiva na forma de uma série de instruções sequenciais em um programa executável.

Saiba mais
----------

### Conhecimentos gerais

* Programação de computadores na Wikipédia


Prefixos vendor - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Prefixos vendor
===============

Os *fabricantes de browsers*, por vezes, adicionam prefixos às propriedades experimentais ou fora dos padrões CSS, de modo que os desenvolvedores podem experimentá-las, enquanto —em teoria— as mudanças no comportamento dos navegadores não quebrarão o código durante o processo de padonização. Os desenvolvedores devem esperar para incluir a propriedade *não pré-fixada* até que o comportamento do navegador seja padronizado.

**Nota:** Os *fabricantes de browsers* estão trabalhando para parar de usar prefixos de fornecedores para recursos experimentais. Os desenvolvedores da Web têm vindo a usá-los em sites de produção, apesar de sua natureza experimental. Isso tornou mais difícil para os fornecedores de navegadores garantir a compatibilidade e trabalhar com novos recursos; também foi prejudicial aos navegadores menores que acabam forçados a adicionar prefixos de outros navegadores para carregar sites populares.

Ultimamente, a tendência é adicionar recursos experimentais por trás das bandeiras controladas pelo usuário e trabalhar com especificações menores que alcancem a estabilidade muito mais rápido.

Normalmente, os vendors usam esses prefixos:

* `-webkit- (`Chrome, Safari, versões mais recentes do Opera.)
* `-moz-` (Firefox)
* `-o-` (Versões antigas do Opera)
* `-ms-` (Internet Explorer)

Os vendedores também usam prefixos em APIs. Em interfaces, eles normalmente usam:

* `Webkit (`Chrome, Safari, versões mais recentes do Opera.)
* `Moz` (Firefox)
* `O` (Versões antigas do Opera)
* `MS` (Internet Explorer)

Em propriedades e métodos, eles normalmente usam:

* `webkit (`Chrome, Safari, versões mais recentes do Opera.)
* `moz` (Firefox)
* `o` (Versões antigas do Opera)
* `ms` (Internet Explorer)
Aprender mais
-------------

### Conhecimento geral

* Vendor prefix no Wikipedia


Grid Areas - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Grid Areas
==========

Um **grid area** é um ou mais grid cells (en-US) que compõem uma área retangular do grid. As Grid Areas quando se coloca um item usando line-based placement (en-US) (posicionamento baseado em colunas e linha)ou quando define áreas usando named grid areas (en-US)(substituindo o nome).

![Image showing a highlighted grid area](/pt-BR/docs/Glossary/Grid_Areas/1_grid_area.png)

Áreas do Grid devem ser de natureza regutangular; não é possível criar por exemplo uma área de grid em forma de T ou L .

No exemplo abaixo temos um grid contêiner com dois items de grid, nomeamos esses com a propriedade `grid-area` (en-US) e em seguida colocamos eles no grid usando `grid-template-areas` (en-US). Isso cria duas áreas de grid, uma cobrindo 4 áreas do grid e a outra duas áreas do grid.
```

\* {
  box-sizing: border-box;
}

.wrapper {
  border: 2px solid #f76707;
  border-radius: 5px;
  background-color: #fff4e6;
}

.wrapper > div {
  border: 2px solid #ffa94d;
  border-radius: 5px;
  background-color: #ffd8a8;
  padding: 1em;
  color: #d9480f;
}
```

```css
.wrapper {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 100px 100px;
  grid-template-areas:
    "a a b"
    "a a b";
}
.item1 {
  grid-area: a;
}
.item2 {
  grid-area: b;
}
```

```html
<div class="wrapper">
  <div class="item1">Item</div>
  <div class="item2">Item</div>
</div>
```

Saiba Mais
----------

### Property reference

* `grid-template-columns`
* `grid-template-rows`
* `grid-auto-rows` (en-US)
* `grid-auto-columns` (en-US)
* `grid-template-areas` (en-US)
* `grid-area` (en-US)
### Further reading

* CSS Grid Layout Guide: *Basic concepts of grid layout*
* CSS Grid Layout Guide: *Grid template areas (en-US)*
* Definition of Grid Areas in the CSS Grid Layout specification


CSS - Glossário do MDN Web Docs: Definições de termos relacionados à Web

CSS
===

**CSS** (Cascading Style Sheets) é uma linguagem declarativa que controla a apresentação visual de páginas web em um navegador. O navegador aplica as declarações de estilo CSS aos elementos selecionados para exibi-los apropriadamente. Uma declaração de estilo contem as propriedades e seus valores, que determinam a aparência de uma página web.

CSS é uma das três principais tecnologias Web, junto com HTML e JavaScript. CSS normalmente estiliza Elementos HTML, mas também pode ser usada com outras linguagens de marcação como SVG ou XML.

Uma regra CSS é um conjunto de propriedades (en-US) associados a um seletor. Aqui está um exemplo que faz com que todos os parágrafos HTML fiquem amarelos num fundo preto:

```css
/\* O seletor "p" indica que todos os paragrafos no documento serão afetados por essa regra \*/
p {
  /\* A propriedade "color" define a cor do texto, neste caso amarelo. \*/
  color: yellow;

  /\* A propriedade "background-color" define a cor ao fundo, neste caso preto. \*/
  background-color: black;
}
```

"Cascading" ("em cascata") se refere às regras que decidem como seletores são priorizados ao mudar a aparência de uma página. Isso é uma característica muito importante, já que um website complexo pode ter milhares de regras CSS.

Aprenda mais
------------

### Conhecimento geral

* Aprenda CSS
* Cascading Style Sheets na Wikipedia
### Referências técnicas

* A documentação sobre CSS na MDN
* O trabalho atual do CSS Working Group (Em inglês)
### Aprenda CSS

* Curso de web no Codecademy.com (Em inglês)
* ~~Three Types of CSS~~ (Em inglês)


Number - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Number
======

No JavaScript, **Number** é um tipo de dado numérico no double-precision 64-bit floating point format (IEEE 754). Em outras linguagens de programação diferentes tipos numéricos podem existir, por exemplo: Integers (Inteiros), Floats (Pontos Flutuantes), Doubles (Dobros), ou Bignums.

Leia mais
---------

### Conhecimento Geral

* Inteiro\_(ciência\_da\_computação) no Wikipédia
* Bignum no Wikipédia
* Ponto\_flutuante no Wikipédia
### Technical reference

* The JavaScript data structure: Number
* The JavaScript global object `Number`


IPv6 - Glossário do MDN Web Docs: Definições de termos relacionados à Web

IPv6
====

**IPv6** é a versão mais atual do protocolo de comunicação subjacente da Internet. Lentamente o IPv6 está substituindo o IPv4, dentre outras razões porque o IPv6 permite vários endereços IPs diferentes.

Saiba mais
----------

### Conhecimento geral

* IPv6 na Wikipedia


Domínio - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Domínio
=======

Um domínio é uma autoridade na internet que controla seus próprios recursos. Seu "nome de domínio" é uma forma de endereçar essa autoridade como parte da hierarquia de uma URL — normalmente a parte mais memorável dela, por exemplo por ser uma marca.

Um nome de domínio totalmente qualificado (FQDN — sigla em inglês) contém todas as partes necessárias para pesquisar essa autoridade pelo seu nome, sem ambiguidade, usando o sistema DNS (en-US) da internet.

Por exemplo, em "developer.mozilla.org":

1. "org" é chamado de domínio de alto nível. Eles são registrados como um padrão da internet pela IANA - autoridade de atribuição de números da internet. Aqui "org" significa "organização" que está definido num *registro de domínio* de alto nível.
2. "mozilla" é o domínio. Se você quiser ter um domínio, você precisa registrá-lo com algum dos muitos registrars - registradores que são quem tem permissão para fazer isso num registro de domínio de alto nível.
3. "developer" é um "sub-domínio", algo que você como dono de um domínio pode definir sozinho. Muitos donos de domínio escolhem ter um subdomínio "www" apontando para o recurso World\_Wide\_Web (en-US), mas isso não é obrigatório (e tem caído em desuso).
Saiba mais
----------

* Nome de domínio na Wikipedia


caret - Glossário do MDN Web Docs: Definições de termos relacionados à Web

caret
=====

Um **caret** (às vezes chamado de "cursor de texto") é um indicador exibido na tela para indicar onde a entrada de texto será inserida. A maioria das interfaces de usuário representam o caret usando uma linha vertical fina ou uma caixa do tamanho de um caractere que pisca, mas isso pode variar. Este ponto do texto é chamado de **ponto de inserção.** A palavra "*careta*" diferencia o ponto de inserção de texto do cursor do mouse.

Na web, um caret é usado para representar o ponto de inserção em `<input>` e `<textarea>` elementos, bem como quaisquer elementos cujo atributo `contenteditable` está definido, permitindo assim que o conteúdo do elemento seja editado pelo usuário.

Saiba Mais
----------

### Conhecimento geral

* Caret navigation no Wikipedia
### CSS relacionado com o caret

Você pode definir a cor do caret para o conteúdo editável de um determinado elemento definindo a propriedade CSS `caret-color` (en-US) para o valor apropriado `<color>`

### Elementos HTML que podem apresentar um caret

Esses elementos fornecem campos de entrada de texto ou caixas e, portanto, fazem uso do caret.

* `<input type="text">` (en-US)
* `<input type="password">`
* `<input type="search">` (en-US)
* `<input type="date">`, `<input type="time">`, `<input type="datetime">` (en-US) e `<input type="datetime-local">` (en-US)
* `<input type="number">` (en-US), `<input type="range">`
* `<input type="email">` (en-US), `<input type="tel">` (en-US) e `<input type="url">` (en-US)
* `<textarea>`
* Qualquer elemento com seu conjunto de atributo `contenteditable`.


Bandwidth - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Bandwidth
=========

Largura de banda é a medida de quanta informação pode trafegar através de uma conexão de dados, em um determinado espaço de tempo. É geralmente medida em multiplos de bits por segundo (bps), por exemplo megabits por segundo (Mbps) ou gigabits por segundo (Gbps).

Learn more
----------

* Bandwidth on Wikipedia


accent - Glossário do MDN Web Docs: Definições de termos relacionados à Web

accent
======

Um **accent** é uma cor tipicamente brilhante que contrasta com as cores de fundo e de primeiro plano mais utilitárias dentro de um esquema de cores. Estes estão presentes no estilo visual de muitas plataformas (embora não todas).

Na web, um acento às vezes é usado em elementos `<input>` para a parte ativa do controle, por exemplo, o plano de fundo de uma caixa de seleção marcada.

Veja tmbém
----------

### CSS relacionado ao **accent**

Você pode definir a cor do `accent` para um determinado elemento definindo a propriedade CSS `accent-color` (en-US) do elemento para o valor `<color>` apropriado.


Operador - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Operador
========

**Sintaxe** reservada que consiste em pontuação ou caracteres alfanuméricos que executam a funcionalidade incorporada. Por exemplo, em JavaScript, o operador de adição ("+") soma números juntos e concatena strings, enquanto o operador "não" ("!") nega uma expressão — por exemplo, fazendo uma declaração `verdadeira` retornar `falso`.

Aprenda mais
------------

### Conhecimento geral

* Operadores (programação de computadores) na Wikipedia (em inglês)
### Referência técnica

* Operadores JavaScript


ECMA - Glossário do MDN Web Docs: Definições de termos relacionados à Web

ECMA
====

**Ecma International** (oficialmente *Associação Européia dos Fabricantes de Computadores*) é uma organização sem fins lucrativos que desenvolve os padrões para hardware de computadores, comunicações e linguagens de programação.

Na web ela é famosa por ser a organização que mantém a especificação ECMA-262 (também conhecida por ECMAScript (en-US)), que é a especificação núcleo para a linguagem JavaScript.

Aprenda mais
------------

* Ecma International na Wikipedia
* Site do Ecma International


Servidor - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Servidor
========

Um servidor hardware é um computador compartilhado em uma rede que provê serviços a clientes. Um servidor software é um programa que provê serviços a programas clientes.

Os serviços são providos normalmente pela rede local ou por redes remotas. Programas cliente e servidor tradicionalmente se conectam enviando mensagens por meio de um protocolo.

Os servidores mais comuns numa rede local são os de arquivos, nomes, emails, impressoras e fax. Outro exemplo comum de servidor é o de páginas da web conectado à Internet. Os minicomputadores, mainframes e super computadores nas centrais de dados também são servidores.

Aprenda mais
------------

### Conhecimentos Gerais

* Introdução aos servidores
* Servidor na Wikipedia


ARIA - Glossário do MDN Web Docs: Definições de termos relacionados à Web

ARIA
====

**ARIA** (*Accessible Rich Internet Applications*) é uma especificação do W3C para adicionar semântica e outros metadados ao HTML para atender aos usuários de tecnologia assistiva.

Por exemplo, você pode adicionar o atributo `role="alert"` para um `<p>` tag para notificar um usuário com deficiência visual que a informação é importante e sensível ao tempo (que você poderia transmitir através da cor do texto).

Veja também
-----------

* ARIA


Teste de Fuzzing - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Teste de Fuzzing
================

O **Fuzzing** é uma técnica para testar o software usando ferramentas automáticas para fornecer entradas inválidas ou inesperadas para um programa ou função em um programa, logo verificando os resultados para ver se o programa falha ou age de forma inapropriada. Essa é uma forma importante para garantir que o software está estável, confiável e seguro, e nós usamos muito o fuzzing no Mozilla.

* Postagens do blog do Jesse sobre fuzzing
* Wikipedia: Fuzz testing
* fuzzdb


Pré-processador CSS - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Pré-processador CSS
===================

Um **pré-processador CSS** é um programa que permite você gerar CSS a partir de uma sintaxe (en-US) única desse pré-processador. Existem muitos pré-processadores CSS para escolha, no entanto, a maioria deles irá adicionar algumas funcionalidades extras que não existem no CSS puro, como um mixin, seletores aninhados, herança de seletores, e assim por diante. Essas funcionalidades fazem a estrutura do CSS mais legível e fácil de manter.

Para usar um pré-processador, você deve instalar um compilador CSS no seu servidor web; Ou usar o pré-processador CSS para compilar no ambiente de desenvolvimento, e então fazer upload do arquivo CSS compilado para o servidor web.

1. Alguns dos pré-processadores CSS mais populares:
    1. Sass
    2. LESS
    3. Stylus
    4. PostCSS
2. MDN Web Docs Glossário
    1. CSS


Algoritmo - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Algoritmo
=========

Um algoritmo é uma série de instruções independentes que executam uma função.


TLS - Glossário do MDN Web Docs: Definições de termos relacionados à Web

TLS
===

Transport Layer Security (TLS), previamente conhecido como Secure Sockets Layer (SSL), é um protocolo usado por aplicativos para se comunicar de forma segura em toda a rede, evitando adulteração e espionagem no email, navegador, mensagens e outros protocolos.

Todos os navegadores atuais suportam o protocolo TLS, exigindo que o servidor forneça um certificado digital (en-US) válido que confirme sua identidade para estabelecer uma conexão segura. É possível para ambos, o cliente e o servidor, se autentiquem mutuamente, se ambas partes providenciar seus próprios certificados digitais individuais.

### Conhecimento geral

* Transport Layer Security (en-US)
* OWASP: Transport Layer Protection Cheat Sheet
* Transport Layer Security na Wikipedia
### Especificações

* RFC 5246 (The Transport Layer Security Protocol, Version 1.2)


Prototype - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Prototype
=========

A prototype é um modelo que exibe a aparência e o comportamento de um aplicativo ou produto no início do ciclo de vida do desenvolvimento.

See Inheritance and the prototype chain

Saiba mais
----------

### Conhecimento geral

* Software Prototyping on Wikipedia


Função - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Função
======

Uma **função** **(function)** é um fragmento de código que pode ser invocado por outro código, por si mesmo ou uma variável que se refere à função. Quando uma função é invocada, o argumento é passado para a função como input (entrada) e a função pode opcionalmente retornar um output (saída). Uma função em JavaScript também é um objeto.

O nome da função é um identificador declarado como parte de uma declaração de função ou expressão de função. O nome da função escopo depende se o nome da função é uma declaração ou expressão.

### Diferentes tipos de funções

Uma **função anônima** é uma função sem o nome da função:

```js
function () {};
// or using the ECMAScript 2015 arrow notation
() => {};
```

Uma **função nomeada** é uma função com o nome da função:

```js
function foo() {}
// or using the ECMAScript 2015 arrow notation
const foo = () => {};
```

Uma **função interna** é uma função dentro de outra função (`square` nesse caso). Uma **função externa** é uma função contendo uma função (`addSquares` nesse caso):

```js
function addSquares(a, b) {
  function square(x) {
    return x \* x;
  }
  return square(a) + square(b);
}
//Using ECMAScript 2015 arrow notation
const addSquares = (a, b) => {
  const square = (x) => x \* x;
  return square(a) + square(b);
};
```

Uma **função recursiva** é uma função que invoca a si mesma. Veja recursão.

```js
function loop(x) {
  if (x >= 10) return;
  loop(x + 1);
}
//Using ECMAScript 2015 arrow notation
const loop = (x) => {
  if (x >= 10) return;
  loop(x + 1);
};
```

Uma **Expressão de Função Invocada Imediatamente** (IIFE em Inglês) é uma função que é invocada diretamente após a função ser carregada no compilador do navegador. A maneira de identificar um IIFE é localizar os parênteses extra esquerdo e direito no final da declaração da função.

```js
// Error (https://en.wikipedia.org/wiki/Immediately-invoked\_function\_expression)
/\*
function foo() {
 console.log('Hello Foo');
}();
\*/

(function foo() {
  console.log("Hello Foo");
})();

(function food() {
  console.log("Hello Food");
})();
```

Se gostaria de saber mais sobre o IIFE, confira a seguinte página no Wikipédia : Immediately Invoked Function Expression

Leia mais
---------

### Referência técnica

* Funções
* Funções Arrow


IndexedDB - Glossário do MDN Web Docs: Definições de termos relacionados à Web

IndexedDB
=========

IndexedDB é uma API de web para armazenar volumosas estruturas de dados dentro dos navegadores e indexá-los para buscas de alta performance. Sendo um RDBMS baseado em SQL (en-US), IndexedDB é um sistema de banco de dados transacionais. Porém ele usa objetos JavaScript ao invés de tabelas em colunas fixas para armazenar os dados.

Aprenda mais
------------

* The IndexedDB API no MDN
* A especificação W3C para o IndexedDB


Propriedade - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Propriedade
===========

O termo **propriedade** **(property)** pode ter diversos siginificados depenedendo do contexto. Ele pode se referir a:

Propriedade (CSS)
Uma **propriedade CSS** é uma característica (como a cor) cujo valor define o aspecto de como o navegador deve exibir o elemento.
Propriedade (JavaScript)
Uma **propriedade Javascript** é uma característica de um objeto, frequentemente descrita como atributos associados à uma estrutura de dados.


Cabeçalho Genérico - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Cabeçalho Genérico
==================

Um **cabeçalho genérico** é um  cabeçalho HTTP (en-US) que pode ser de mensagens de solicitação e resposta, mas isso não é aplicado ao seu conteúdo. De acordo com o contexto em que são usados, podem ser cabeçalho de resposta (en-US) ou de Requisição. Entranto, não são cabeçalhos de entidade.

O uso mais comum para cabeçalho genérico é `Date`, `Cache-Control` or `Connection`.


Proxy server - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Proxy server
============

Um **servidor proxy** é um computador ou programa intermediário usado ao navegar em conexões de internet diferentes. Eles facilitam o acesso ao conteúdo na rede mundial de computadores. Um proxy intercepta pedidos e exibe respostas; pode encaminhar os pedidos, ou não (por exemplo no caso de uma cache), e pode modificá-los (por exemplo alterando cabeçalhos, no limite entre duas redes)

Um proxy pode estar no computador local do usuário, ou em qualquer lugar entre o computador do usuário e um servidor de destino na internet. Em geral, existem dois tipos principais de servidores proxy:

* Um **proxy de encaminhamento** que lida com pedidos de e para qualquer lugar na internet.
* Um **proxy reverso** que recebe pedidos da Internet e os encaminha para servidores numa rede interna.
Aprenda Mais
------------

* Servidores proxy e túneis (en-US)
* Proxy em Wikipedia


Mutável - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Mutável
=======

*Mutável* é o tipo da variável que pode ser alterada. Em JavaScript, somente objetos e arrays são mutáveis, valores primitivos não.

(Você *pode* fazer o nome da variável apontar para um novo valor, mas o valor anterior continua na memória. Logo, a necessidade da coleta de lixo, "garbage collection")

Um **objeto mutável** é um objeto cujo estado pode ser modificado após sua criação.

**Imutáveis** são os objetos cujo o estado **não** podem ser mudados uma vez criados.

**Strings e Numbers são imutáveis**. Vamos entender isso com um exemplo:
```

var stringImutavel = 'Hello';

// No código acima, um novo objeto com o valor string é criado.

stringImutavel = stringImutavel + 'World';

// Agora nós estamos anexando 'World' ao valor existente.
```

Ao anexar a 'stringImutavel' com um valor de string, os seguintes eventos ocorrem:

1. O valor existente de 'stringImutavel' é recuperado.
2. 'World' é anexado ao valor existente de 'stringImutavel'.
3. O valor resultante é então alocado para um novo bloco na memória.
4. O objeto 'stringImutavel' agora aponta para um novo espaço de memória criado.
5. O espaço de memória criado anteriormente está habilitado para a coleta de lixo.
Aprenda mais
------------

### Conhecimentos gerais

* Objeto Mutavel


OOP - Glossário do MDN Web Docs: Definições de termos relacionados à Web

OOP
===

**OOP** (Object-Oriented Programming) é uma abordagem na programação em qual os dados são encapsulados em **objects** e o proprio objeto é operado, em vez de suas partes componentes.

JavaScript é altamente orientado à objeto. Isto segue um modelo baseado em **prototypes** (as opposed to class-based).

Aprenda mais
------------

### Conhecimento geral

* Object-oriented programming no Wikipedia
* Introduction to object-oriented JavaScript (en-US)


Semântica - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Semântica
=========

Na programação, a **Semântica** se refere ao *significado* de um trecho de código — por exemplo, "que efeito tem a execução dessa linha de JavaScript?", Ou "que finalidade ou função esse elemento HTML tem" (em vez de "como ele se parece?").

Semântica em JavaScript
-----------------------

Em JavaScript, considere uma função que aceita um parâmetro de string e retorne um elemento `<li>` com essa string como seu `textContent`. Você precisaria examinar o código para entender o que a função fazia se fosse chamada `build('Peach')`, ou `createLiWithContent('Peach')`?

Semântica em CSS
----------------

No CSS, considere criar uma lista com elementos `li` representando diferentes tipos de frutas. Você saberia qual parte do DOM está sendo selecionada com `div > ul > li`, ou `.fruits__item`?

Semântica em HTML
-----------------

Em HTML, por exemplo, o `<h1>` (en-US) é um elemento semântico, que fornece o texto que envolve a representação (ou o significado) de "um cabeçalho de nível superior em sua página".

```html
<h1>This is a top level heading</h1>
```

Por padrão, a maioria das folhas de estilo do agente do usuário (en-US) do navegador, estilizará um `<h1>` (en-US) com um tamanho de fonte grande para parecer um título (embora você possa estilizá-lo como quiser).

Por outro lado, você pode fazer qualquer elemento parecer um cabeçalho de nível superior. Considere o seguinte:

```html
<span style="font-size: 32px; margin: 21px 0;"
 >Is this a top level heading?</span
>
```

Isso fará com que pareça um cabeçalho de nível superior, mas não tem valor semântico. Portanto, não obterá nenhum benefício extra, conforme descrito acima. Assim, é uma boa idéia usar o elemento HTML certo, para o trabalho certo.

O HTML deve ser codificado para representar a data que será preenchida e não com base em seu estilo de apresentação padrão. A apresentação (como deve ser) é de responsabilidade exclusiva do CSS.

Alguns dos benefícios de se escrever a marcação semântica:

* Os mecanismos de pesquisa considerarão seu conteúdo como palavras-chave importantes para influenciar os rankings de pesquisa da página (see SEO)
* Os leitores de tela podem usá-lo como uma placa de sinalização para ajudar usuários com deficiência visual a navegar em uma página
* Encontrar blocos de código importantes é significativamente mais fácil do que procurar `div`s sem fim, com ou sem classes de semântica ou de nome espaçado.
* Sugira ao desenvolvedor o tipo de dados que serão preenchidos
* A nomeação semântica reflete a nomeação adequada do elemento/componente personalizado

Ao abordar qual marcação usar, pergunte a si mesmo: "Quais elementos melhor descrevem/representam os dados que vou preencher?" Por exemplo, é uma lista de dados? ordenado, não ordenado? é um artigo com seções e uma parte de informações relacionadas? lista as definições? é uma figura ou imagem que precisa de legenda? deve ter um cabeçalho e rodapé, além do cabeçalho e rodapé em todo o site? etc.

Elementos semânticos
--------------------

Estes são alguns dos aproximadamente 100 elementos semânticos disponíveis:

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

* HTML element reference on MDN
* Using HTML sections and outlines (en-US) on MDN
* The meaning of semantics in computer science on Wikipedia
* MDN Web Docs Glossary
    + SEO
* Some of semantic elements in HTML
    + `<article>`
    + `<aside>`
    + `<details>`
    + `<figcaption>`
    + `<figure>`
    + `<footer>`
    + `<header>`
    + `<main>`
    + `<mark>`
    + `<nav>`
    + `<section>`
    + `<summary>`
    + `<time>`


WebSockets - Glossário do MDN Web Docs: Definições de termos relacionados à Web

WebSockets
==========

WebSocket é um protocolo que permite persistir conexões TCP entre o servidor e o cliente de modo que se possa trocar dados a qualquer momento.

Qualquer aplicação de servidor ou cliente pode usar WebSocket, mas principalmente navegadores web e web servers. Através do WebSocket, servidores podem passar dados a um cliente sem um pedido prévio desse cliente, permitindo atualizações dinâmicas de conteúdo.

Learn more
----------

### General knowledge

* Websocket on Wikipedia
### Technical reference

* WebSocket reference on MDN
### Learn about it

* Writing WebSocket client applications (en-US)
* Writing WebSocket servers


Navegador Opera - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Navegador Opera
===============

**Opera** é o quinto navegador web mais usado, publicamente lançado em 1996 e inicialmente executando somente em Windows. Opera usa Blink (en-US) como seu mecanismo de layout desde 2013 (antes disso, Presto (en-US)). Opera também existe nas versões móveis e tablets.

Saiba mais
----------

### Conhecimento geral

* Opera na Wikipedia
* Opera browser web site


Polyfill - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Polyfill
========

Um polyfill é um pedaço de código (geralmente JavaScript na Web) usado para fornecer funcionalidades modernas em navegadores mais antigos que não o suportam nativamente.

Por exemplo, um polyfill pode ser usado para imitar a funcionalidade de um elemento HTML Canvas no Microsoft Internet Explorer 7, usando um plugin Silverlight, ou imitar o suporte para unidades rem CSS, ou `text-shadow`, ou o que você quiser.

Aprenda mais
------------

### Conhecimento geral

* O que é polyfill? (artigo em inglês de Remy Sharp, criador do termo)


API - Glossário do MDN Web Docs: Definições de termos relacionados à Web

API
===

Uma API (*Application Programming Interface*) é um conjunto de características e regras existentes em uma aplicação que possibilitam interações com essa através de um software - ao contrário de uma interface de usuário humana. A API pode ser entendida como um simples contrato entre a aplicação que a fornece e outros itens, como outros componentes do software, ou software de terceiros.

No desenvolvimento Web, uma API é geralmente um conjunto de methods (en-US) padronizados, properties, eventos, e URLs que um desenvolvedor pode usar em seus aplicativos para interagir com componentes do navegador da Web de um usuário ou outro software / hardware no computador do usuário ou sites e serviços de terceiros.

Exemplos
--------

* A API getUserMedia (en-US) pode ser usada para capturar áudio e vídeo da webcam de um usuário, que pode ser usada de qualquer maneira que o desenvolvedor goste, por exemplo, gravar vídeo e áudio, transmiti-lo para outro usuário em uma chamada em conferência ou capturar imagens do vídeo.
* A API de geolocalização pode ser usada para recuperar informações de localização de qualquer serviço que o usuário tenha disponível em seu dispositivo (por exemplo, GPS), que pode ser usado em conjunto com as APIs do Google Maps para, por exemplo, traçar a localização do usuário em um mapa personalizado e mostrar a ele que atrações turísticas estão em sua área.
* As APIs do Twitter podem ser usadas para recuperar dados de contas de twitter de um usuário, para por exemplo, exibir seus últimos tweets em uma página da web.
* A API de animações da Web (en-US) pode ser usada para animar partes de uma página da web - por exemplo, para fazer imagens se movimentarem ou girarem.
Aprenda mais
------------

Conhecimento geral
------------------

* API no Wikipedia
### Referência técnica

* Web API reference


Call stack (Pilha de chamadas) - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Call stack (Pilha de chamadas)
==============================

A pilha de chamadas **(call stack)** é um mecanismo do interpretador de uma linguagem que organiza o funcionamento do script quando são chamadas muitas funções, qual função está sendo executada no momento, e quais serão chamadas dentro de alguma função, etc.

* Quando o script chama a função, ela é adicionada à pilha de chamadas, e então é iniciado o carregamento da função.
* Qualquer função chamada por essa função será adicionada à pilha de chamadas uma acima da outra.
* Quando a função termina a execução, o interpretador retira a função da pilha e continua a execução do programa de onde parou.
* Caso a pilha ocupar mais espaço do que foi separado a ela, será exibido um erro "stack overflow" (estouro de pilha).
Exemplo
-------

```js
function saudacao() {
  // [1] Algum código aqui
  digaOi();
  // [2] Algum código aqui
}
function digaOi() {
  return "Olá!";
}

// Chamando a função `saudacao`
saudacao();

// [3] Algum código aqui
```

O código acima será executado desta forma pelo interpretador:

1. Todas as funções serão ignoradas, até chegar na chamada da função `saudacao()`.
2. Adiciona a função `saudacao()` para a pilha de chamadas.

**Nota:** Pilha de chamadas:
 - saudacao
3. Executa todas as linhas de código da função `saudacao()`.
4. Chama a função `digaOi()`.
5. Adiciona a função `digaOi()` na pilha de chamadas.

**Nota:** Pilha de chamadas:
 - `saudacao` > - digaOi
6. Executa todas as linhas de código da função `digaOi()` até o final.
7. Retorna a execução na linha onde foi chamada a função `digaOi()` e continua a execução do resto da função `saudacao()`.
8. Deleta a função `digaOi()` da pilha de chamadas.

**Nota:** Pilha de chamadas:
 - `saudacao`
9. Quando todas as linhas da função `saudacao()` forem executadas, retorna para a linha onde a função foi invocada, e continua a execução do resto do código.
10. Deleta a função `saudacao()` da Pilha de chamadas.

**Nota:** Pilha de chamadas:
 EMPTY

Começamos com uma pilha de chamadas vazia, e sempre que chamamos uma função, ela é automaticamente adicionada à pilha de chamadas, e depois de todas as linhas serem executadas, é automaticamente removida da pilha de chamadas. No final, a pilha está vazia novamente.

Veja mais
---------

### General knowledge

* Call stack on Wikipedia
* MDN Web Docs Glossary
    + Call stack
    + Function


Primitivo - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Primitivo
=========

Resumo
------

Um **primitivo** (valor primitivo, tipo de dados primitivo) é um dado que não é representado através de um Objeto e, por consequência, não possui métodos.

Em detalhes
-----------

Na maior parte do tempo, um valor primitivo é representado diretamente através do mais baixo nível da implementação de uma linguagem.

No JavaScript, existem 6 tipos primitivos:

* String
* Number
* Boolean
* Null
* undefined
* Symbol (novo no ECMAScript (en-US) 6)

Todos os primitivos são **imutáveis** (não podem ter o seu valor modificado).

### Wrappers em JavaScript

>
> NT: O termo "wrapper" em português significa "que envolve". No entanto, em tecnologia, é comum se usar a versão em inglês que possui o mesmo significado.
>
>
>

À exceção do `null` e do `undefined`, todos os primitivos tem um objeto wrapper equivalente:

* `String` para o primitivo string.
* `Number` para o primitivo .
* `Boolean` para o primitivo Boolean.
* `Symbol` para o primitivo Symbol.

O método valueOf() do objeto wrapper retorna o valor primitivo.

>
> NT: É possível verificar o tipo da variável digitando typeof+nomedavariavel. Para saber mais, verifique typeof.
>
>
>

Referências externas
--------------------

* Primitive data types on Wikipedia (em inglês)
* Tipo de dado


Alpha (canal alfa) - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Alpha (canal alfa)
==================

Cores são representadas no formato digital como uma coleção de números, cada qual sinalizando o nível de força ou intensidade de dado componente da cor. Cada um desses componententes é chamado de **canal**. Num típico arquivo de imagem, o canais de cores descritos devem ser vermelho, verde e azul, que serão usados para definir a cor final. Para representar uma cor que através dela um plano de fundo possa ser visto, um quarto canal é adicionado a ela: o canal alfa. O canal alfa define o nível de opacidade da cor.

Por exemplo, a cor `#8921F2` (também descrita como `rgb(137, 33, 242)` ou `hsl(270, 89%, 54)`) é um belo tom de roxo. Abaixo você pode ver um pequeno retângulo no canto superior esquerdo e outro com a mesma cor, mas tendo um canal alfa defino em 0.5 (50% de opacidade). Os dois retângulos estão desenhados sobre o paragrafo de texto.

![Image showing the effect of an alpha channel on a color.](/pt-BR/docs/Glossary/Alpha/alpha-channel-example.png)

Como você pode notar, a cor sem o canal alfa bloqueia completamente o texto ao fundo, enquanto o retângulo com canal alfa definido permite visibilidade através do plano de fundo com cor roxa.

Saiba mais
----------

### Conhecimento geral

* Alpha compositing na Wikipedia
* RGBA color model na Wikipedia
* Channel (digital image) na Wikipedia
### Referência técnica

* CSS color (en-US)


Elementos inline - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Elementos inline
================

### Sumário

"Inline" é uma categorização dos elementos do HTML, em contraste com os "elementos de bloco" (en-US). Os elementos inline podem ser exibidos em nível de bloco ou outros elementos inline. Eles ocupam somente a largura de seu conteúdo. A diferença entre elementos inline e bloco incluem:

Modelo de conteúdo

Geralmente, elementos inline devem ter somente dados em outros elementos inline.

Formato

Por padrão, os elementos inline não começam em uma nova linha.

### Elementos

Listagem dos elementos que são "inline":

* b, big, i, small, tt
* abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var
* a, bdo, br, img, map, object, q, script, span, sub, sup
* button, input, label, select, textarea
### Ver também

* Elementos de nível de bloco


Pseudo-element - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Pseudo-element
==============

Em CSS, um seletor **pseudo-element** aplica estilos em partes do conteúdo do seu documento em cenários onde não há elementos HTML específicos para selecionar. Por exemplo, em vez de colocar a primeira letra para cada parágrafo em seu próprio elemento. você pode estilizá-los todos com `p``::first-letter`.

Aprenda mais
------------

### Referência técnica

* Pseudo-elements


Sloppy mode - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Sloppy mode
===========

A partir do ECMAScript (en-US) 5 é possível optar pelo novo strict mode (modo estrito), que altera a semântica do JavaScript de várias maneiras para melhorar sua resiliência e facilitar a compreensão do que está acontecendo quando há problemas.

O modo normal e non-strict (não estrito) do JavaScript é às vezes chamado de **sloppy mode** (modo desleixado, literalmente). Esta não é uma designação oficial, mas você provavelmente irá se deparar com ela se passar algum tempo escrevendo código JavaScript.

Saiba mais
----------

### Conecimentos Gerais

* "Strict Mode" no capítulo 7 ("JavaScript Syntax") do livro Speaking *JavaScript*.


Seguro - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Seguro
======

Um método HTTP é **seguro** se ele não altera o estado do servidor. Em outras palavras, um método é seguro se ele leva a uma operação de somente leitura. Diversos métodos de HTTP são seguros: `GET`, `HEAD`, ou `OPTIONS`. Todos os métodos seguros também são idempotentes, mas nem todos os métodos idempotentes são seguros. Por exemplo, `PUT` e `DELETE` são ambos idempotentes, entretanto são inseguros.

Mesmo se métodos seguros possuem a semântica de somente leitura, servidores podem alterar o seu estado (e.g., eles podem manter *log* ou estatísticas). O que é importante aqui, é de que chamando um método seguro, o cliente não requer que o servidor mude seu estado, e portanto não gerará carga desnecessária ao servidor. Navegadores podem chamar métodos seguros sem medo de causarem nenhum dano ao servidor: isso permite a eles a possibilidade de fazer atividades como pré-carregamento sem nenhum risco. *Web crawlers* também usam métodos seguros.

Métodos seguros não servem somente para buscar arquivos estáticos, o servidor pode gerar uma resposta para um método seguro no voô, enquanto o *script* gerador garantir segurança: ele não deve ativar gatilhos externos, como ativar um pedido de compras em um site.

É responsabilidade da aplicação no servidor implementar a semântica segura corretamente, o servidor *web* em si, sendo Apache, nginx ou IIS, não pode forçar ela por si só. Em particular, a aplicação não deve permitir que requisições `GET` alterem seu estado.

Uma chamada a um método seguro, não alterando o estado do servidor:
```

GET /pageX.html HTTP/1.1
```

Uma chamada a um método não seguro, que pode alterar o estado do servidor:
```

POST /pageX.html HTTP/1.1
```

Uma chamada a um método idempotente, mas não seguro:
```

DELETE /idX/delete HTTP/1.1
```

Aprenda mais
------------

### Conhecimento geral

* Definição de seguro na especificação HTTP.
### Conhecimento técnico

* Descrição de métodos seguros comuns: `GET`, `HEAD`, `OPTIONS`
* Descrição de métodos inseguros comuns: `PUT`, `DELETE`, `POST`


JSON - Glossário do MDN Web Docs: Definições de termos relacionados à Web

JSON
====

*JavaScript Object Notation* (**JSON**) é um formato de intercâmbio de dados. Embora não seja um subconjunto estrito, JSON se assemelha a um subconjunto da sintaxe JavaScript. Embora muitas linguagens de programação suportem JSON, é especialmente útil para aplicativos baseados em JavaScript, incluindo sites e extensões de navegador.

JSON pode representar números, booleanos, strings, `null`, arrays (sequências ordenadas de valores) e objetos (mapeamentos de valores de strings) compostos por esses valores (ou de outros arrays e objetos). O JSON não representa nativamente tipos de dados mais complexos, como funções, expressões regulares, datas e assim por diante. (Os objetos de data, por padrão, serializam para uma string contendo a data no formato ISO, para que as informações não sejam completamente perdidas.) Se você precisar de JSON para representar tipos de dados adicionais, transforme os valores à medida que são serializados ou antes de serem desserializados.

Veja também
-----------

* JSON na Wikipedia
* JSON no MDN


IRC - Glossário do MDN Web Docs: Definições de termos relacionados à Web

IRC
===

O **IRC** (*Internet Relay Chat*) é um sistema de chat mundial que requer uma conexão à Internet e um cliente de IRC, que envia e recebe mensagens através do servidor de IRC.

Projetado no final dos anos 80 por Jarrko Oikarinen, o IRC usa TCP e é um protocolo aberto. O servidor de IRC transmite mensagens para todos os usuários conectados a um dos muitos canais de IRC (cada um com seu próprio ID).

### Aprenda mais

* Começando com o IRC
* Usando o IRC no Mozilla


Array - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Array
=====

Um *array (arranjo ou vetor)* é um conjunto de dados (que pode assumir os mais diversos tipos, desde do tipo primitivo, a objeto dependendo da linguagem de programação). Arrays são utilizados para armazenar mais de um valor em uma única variável. Isso é comparável a uma variável que pode armazenar apenas um valor.

Cada item do array tem um número ligado a ele, chamado de índice numérico, que permite acesso a cada "valor" armazenado na váriavel.

Em JavaScript, um `array` começa no índice zero e pode ser manipulado a partir de vários métodos (en-US).

Um exemplo simples de Array em Javascript:
```

var myArray = [1, 2, 3, 4];

var catNamesArray = ["Jacqueline", "Sophia", "Autumn"];

//Um array em JavaScript pode conter vários tipos de dados, como mostrado acima.
```

Saiba mais
----------

### Conhecimentos Gerais

* Array no Wikipedia
### Referência técnica

* `Array` Javascript no MDN


Nulo - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Nulo
====

Em ciência da computação, um valor nulo representa uma referencia que aponta, geralmente de maneira intencional, para um objeto ou endereço de memória inválido ou inexistente. O significado do valor nulo varia entre as implementações das linguagens.

Em JavaScript, o null é um dos tipos primitivos.

Veja mais
---------

### Referência técnica

* `Null na linguagem JavaScript`
### Referências externas

* Null - Programação


Class - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Class
=====

Em programação orientada a objeto, uma classe define as características de um objecto. A classe é uma definição de modelo de propriedades e metódos (en-US) de um objeto, o "projeto" a partir do qual outras instâncias mais específicas do objeto são desenhados.

Aprenda mais
------------

### Conhecimentos gerais

* Class-based vs. prototype-based programming languages (como JavaScript)
* Using functions as classes in JavaScript (en-US)
* Class-based programming na Wikipedia
* Object-oriented programming na Wikipedia


Forbidden response header name - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Forbidden response header name
==============================

Um *nome de cabeçalho de resposta proibido* é um nome de cabeçalho HTTP (ou `Set-Cookie` ou `Set-Cookie2`) que não pode ser modificado programaticamente.


WebRTC - Glossário do MDN Web Docs: Definições de termos relacionados à Web

WebRTC
======

**WebRTC** (*Web Real-Time Communication*) é uma API que pode ser usado por chat de vídeo, chamadas de voz e aplicativos da Web de compartilhamento de arquivos P2P.

O WebRTC consiste principalmente destas partes:

`getUserMedia()` (en-US)

Concede acesso à câmera e/ou microfone de um dispositivo e pode conectar seus sinais a uma conexão RTC.

`RTCPeerConnection` (en-US)

Uma interface para configurar chat de vídeo ou chamadas de voz.

`RTCDataChannel`

Fornece um método para configurar um caminho de dados peer-to-peer (en-US) entre navegadores.

Veja também
-----------

* WebRTC na Wikipedia
* WebRTC API na MDN
* Suporte do navegador para WebRTC


CRUD - Glossário do MDN Web Docs: Definições de termos relacionados à Web

CRUD
====

**CRUD** (Create, Read, Update, Delete) é um acrônimo para as maneiras de se operar em informação armazenada. É um mnemônico para as quatro operações básicas de armazenamento persistente. CRUD tipicamente refere-se a operações perfomadas em um banco de dados ou base de dados, mas também pode aplicar-se para funções de alto nível de uma aplicação, como exclusões reversíveis, onde a informação não é realmente deletada, mas é marcada como deletada via status.

Saiba mais
----------

### Conhecimento geral

* CRUD on Wikipedia


W3C - Glossário do MDN Web Docs: Definições de termos relacionados à Web

W3C
===

O Consórcio da Rede Mundial (tradução livre de *World Wide Web Consortium*), ou simplesmente W3C é uma sociedade internacional que mantém as regras e frameworks relacionadas à Web (en-US)

Consiste de mais de 350 membros e organizações que, conjuntamente, desenvolvem a padronização da Internet, coordenam programas de divulgação, e mantém um fórum aberto para falar de Internet. O W3C coordena empresas na indústria para certificar que elas implementam os mesmos padrões da W3C.

Cada padrão passa por quatro estágios de maturidade: Rascunho em Desenvolvimento (WD - Working Draft), Candidato a Recomendação (CR - Candidate Recommendation), Recomendação Proposta (PR - Proposed Recommendation), e Recomendação da W3C (REC - Recommended by the W3C).

Saiba mais
----------

### Conhecimentos Gerais

* Site Oficial da W3C
* W3C na Wikipedia


Falsy - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Falsy
=====

Um valor **falsy** é um valor que se traduz em falso quando avaliado em um contexto Boolean.

JavaScript usa tipo coercion em contextos booleanos.

Exemplos de valores *falsy* em JavaScript (que se traduzirá em false e assim *ignorar* o bloco `if`):

```js
if (false) {
  // Not reachable
}

if (null) {
  // Not reachable
}

if (undefined) {
  // Not reachable
}

if (0) {
  // Not reachable
}

if (-0) {
  // Not reachable
}

if (0n) {
  // Not reachable
}

if (NaN) {
  // Not reachable
}

if ("") {
  // Not reachable
}
if (document.all) {
  // [1], not reachable
}
```

[1] `document.all` tem sido utilizado para a detecção do navegador no passado e a especificação HTML define uma violação intencional do padrão ECMAScript aqui para manter a compatibilidade com código legado (`if (document.all) { // Internet Explorer code here }` ou usando `document.all` sem verificar sua presença em primeiro lugar: `document.all.foo`).

Aprender mais
-------------

* Truthy
* Coercion
* Boolean


SGML - Glossário do MDN Web Docs: Definições de termos relacionados à Web

SGML
====

O *Standard Generalized Markup Language* (**SGML**) é uma ISO especificação que veio para definir as declarações/sintaxe Linguagens de Marcação.

On the web, HTML 4, XHTML, and XML are popular SGML-based languages. It is worth noting that since its fifth edition, HTML is no longer SGML-based and has its own parsing rules.

Leia mais
---------

* SGML no Wikipedia
* Introducão ao SGML


Endereço IP - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Endereço IP
===========

Um endereço IP é um número atribuído a cada dispositivo conectado a uma rede que usa o protocolo de Internet.

"Endereço IP" geralmente refere-se a endereços IPv4 de 32 bits até que o IPv6 seja implantado de forma mais ampla.

Saiba mais
----------

### General knowledge

* Endereço IP na Wikipedia


Flex - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Flex
====

`flex` é um novo valor adicionado à propriedade `display`. Junto com o `inline-flex`, este valor faz com que o elemento aplicado seja um flex container (en-US), e seus filhos se transformem então em flex item (en-US).Os itens então farão parte de um layout flex, e todas as propriedades definidas no CSS Flexbox poderão ser aplicadas.

A propriedade flex é um atalho para as propriedades flexbox`flex-grow`, `flex-shrink` e `flex-basis`.

Além disso, `<flex>` pode ser também uma unidade flexível (en-US) em um CSS Grid Layout.

Veja mais
---------

### Referências

* `align-content`
* `align-items`
* `align-self`
* `flex`
* `flex-basis` (en-US)
* `flex-direction`
* `flex-flow`
* `flex-grow` (en-US)
* `flex-shrink` (en-US)
* `flex-wrap`
* `justify-content` (en-US)
* `order` (en-US)
### Leitura complementar

* *CSS Flexible Box Layout Module Level 1 Specification*
* CSS Flexbox Guide: *Basic Concepts of Flexbox*
* CSS Flexbox Guide: *Relationship of flexbox to other layout methods (en-US)*
* CSS Flexbox Guide: *Aligning items in a flex container*
* CSS Flexbox Guide: *Ordering flex items (en-US)*
* CSS Flexbox Guide: *Controlling Ratios of flex items along the main axis (en-US)*
* CSS Flexbox Guide: *Mastering wrapping of flex items (en-US)*
* CSS Flexbox Guide: *Typical use cases of flexbox (en-US)*


IPv4 - Glossário do MDN Web Docs: Definições de termos relacionados à Web

IPv4
====

IPv4 é a quarta versão do protocolo de comunicação subjacente à Internet e a primeira versão a ser amplamente implantada.

Formalizada primeiramente em 1981, o IPv4 traça suas raízes para o trabalho de desenvolvimento inicial do ARPAnet. IPv4 é um protocolo sem conexão para ser usado na comutação de dados em redes da camada de enlace de dados (ethernet). IPv6 está gradualmente substituindo o IPv4 devido a problemas de segurança que o IPv4 possui e as limitações de seus campos de endereços. (Versão número 5 foi atribuído em 1979 para o experimental *Internet Stream Protocol*, que no entanto, nunca foi chamado de IPv5).

Saiba mais
----------

### Conhecimento Geral

IPv4 na Wikipedia


Assíncrono - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Assíncrono
==========

**Assíncrono** refere-se a um ambiente de comunicação onde cada parte recebe e processa mensagens quando for conveniente ou possível em vez de imediatamente.

Isto pode ser usado para descrever um ambiente de comunicação humana como o e-mail — o remetente enviará um e-mail, e o destinatário irá responder quando for conveniente; eles não precisam responder imediatamente.

Também pode ser usado para descrever um ambiente de comunicação programática, por exemplo, `Ajax`é um mecanismo assíncrono para solicitar pequenos bits de dados por HTTP; o resultado é enviado de volta quando a resposta está completa, não imediatamente.

Saiba mais
----------

### Referência técnica

* Fetching data from the server (Learning Area)
* Sincrono


Protocolo - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Protocolo
=========

Um **protocolo** é um sistema de regras que define como o dado é trafegado dentro ou entre computadores. Comunicações entre dispositivos requer que estes concordem com o formato do dado que estiver sendo trafegado. O conjunto de regras que define esse formato é chamado de protocolo.

Saiba mais
----------

### Conhecimento Geral

* Protocolo na Wikipedia
* RFC Official Internet Protocol Standards


ASCII - Glossário do MDN Web Docs: Definições de termos relacionados à Web

ASCII
=====

ASCII (Código Padrão Americano para o Intercâmbio de Informação) é um dos mais populares métodos de codificação usado por computadores para converter letras, números, pontuações e códigos de controle dentro do formato digital. Desde 2007, UTF-8 substituiu-o na web.

Aprenda mais
------------

### Conhecimento geral

ASCII no Wikipedia


UTF-8 - Glossário do MDN Web Docs: Definições de termos relacionados à Web

UTF-8
=====

UTF-8 (UCS Transformation Format 8) é a codificação de caracteres mais comum da World Wide Web. Cada caractere é representado por um a quatro bytes. UTF-8 é compatível com versões anteriores do ASCII e pode representar qualquer caractere Unicode padrão.

Os primeiros 128 caracteres UTF-8 correspondem exatamente aos primeiros 128 caracteres ASCII (numerados de 0 a 127), o que significa que o texto ASCII existente já é UTF-8 válido. Todos os outros caracteres usam dois a quatro bytes. Cada byte tem alguns bits reservados para fins de codificação. Como caracteres não ASCII requerem mais de um byte para armazenamento, eles correm o risco de serem corrompidos se os bytes forem separados e não forem recombinados.

Leia mais
---------

### Conhecimento Geral

* UTF-8 no Wikipedia
* Perguntas frequentes sobre o UTF-8 no site Unicode


Jank - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Jank
====

**Jank** se refere à lentidão em uma interface de usuário, geralmente causado por execução de tarefas longas na Thread principal, o bloqueio de renderização, ou esforço demais do processador com processos em segundo plano.


Application Context - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Application Context
===================

Um **application context** de nível superior é um contexto de navegação (en-US) que tem um manifest

Se um *application context* for criado como resultado da solicitação do user agent para navegar para um link direto, o user agent deverá navegar imediatamente para o link direto com a substituição habilitada. Caso contrário, quando o contexto do aplicativo for criado, o user agent deverá navegar imediatamente para a URL inicial com a substituição ativada.

Observe que o URL inicial não é necessariamente o valor do membro start\_url: o usuário ou user agent pode tê-lo alterado quando o aplicativo foi adicionado à tela inicial ou marcado de outra forma.


Stacking context - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Stacking context
================

**Stacking context** refere-se refere a como elementos de uma página se empilham sobre outros elementos, assim como você pode organizar cards em cima de sua mesa, lado a lado ou sobrepostas.

Leia mais
---------

### General knowledge

* Further explanation and example (en-US)


ATAG - Glossário do MDN Web Docs: Definições de termos relacionados à Web

ATAG
====

ATAG (Authoring Tool Accessibility Guidelines) é uma recomendação do W3C para construir ferramentas de autoria acessíveis que produzem conteúdo acessível.

Veja também
-----------

* ATAG como parte da Iniciativa de Acessibilidade da Web na WikiPedia
* Visão geral das Diretrizes de acessibilidade da ferramenta de autoria (ATAG)
* A recomendação do ATAG 2.0


XSLT - Glossário do MDN Web Docs: Definições de termos relacionados à Web

XSLT
====

*eXtensible Stylesheet Language Transformations* (**XSLT**) é uma linguagem declarativa usada para converter documentos XML em outros documentos XML, HTML, PDF (en-US), texto simples e assim por diante.

O XSLT possui seu próprio processador que aceita entrada XML ou qualquer formato conversível para um modelo de dados XQuery e XPath. O processador XSLT produz um novo documento baseado no documento XML e em uma folha de estilo XSLT, não fazendo alterações nos arquivos originais no processo.

Veja também
-----------

* XSLT on Wikipedia
* XSLT documentation on MDN (en-US)


XML - Glossário do MDN Web Docs: Definições de termos relacionados à Web

XML
===

eXtensible Markup Language (XML) é uma linguagem de marcação genérica especificada pela W3C. A indústria de tecnologia da informação (TI) utiliza várias linguagens baseadas em XML para descrição de dados.

Tags XML são muito semelhantes a tags HTML, mas XML é muito mais flexível porque permite os usuários definirem suas próprias tags. Dessa forma o XML atua como uma meta-linguagem — isto é, pode ser usada para definir outras linguagens, como RSS (en-US). Além disso, HTML é uma linguagem para apresentação, enquanto XML é uma linguagem para descrever dados. Isto significa que XML tem aplicações muito mais amplas do que apenas a Web. Por exemplo, Web services podem usar XML para trocar requisições e respostas.

Saiba mais
----------

* Introdução a XML (en-US)


CMS - Glossário do MDN Web Docs: Definições de termos relacionados à Web

CMS
===

O CMS da sigla em inglês( Content Management System) ou seja, Sistema de Gerenciamento de Conteúdo, é um software que permite usuários publicar, organizar, mudar ou remover vários tipos de conteúdo, não apenas textos mas também incorporação de imagens, vídeos , aúdios e códigos interativos

Saiba mais
----------

### Conhecimento Geral

* Sistema de gerenciamento de conteudo no Wikipedia


Variável - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Variável
========

Uma **variável (variable)** é um local nomeado para armazenar um valor. Dessa forma, um valor pode ser acessado através de um nome predeterminado.

Leia mais
---------

### Conhecimento geral

* Variável (programação) na Wikipédia
### Referências técnicas

* Declarando Variáveis no JavaScript
* **`var`** **statement** no JavaScript


Origem - Glossário do MDN Web Docs: Definições de termos relacionados à Web

Origem
======

O conteúdo de **origem** é definido pelo *esquema* (protocolo), *host* (domínio), e *porta* da URL usada para acessá-lo. Dois objetos tem a mesma origem somente quando o esquema, host, e porta batem.

Algumas operações são restritas para conteúdos de mesma origem, e essa restrição pode ser ultrapassada usando CORS.

Exemplos de mesma origem
------------------------

| `http://example.com/app1/index.html` `http://example.com/app2/index.html` | Mesma origem pois possuem o mesmo esquema (`http`) e mesmo host (`example.com`) |
| --- | --- |
| `http://Example.com:80` `http://example.com` | Mesma origem pois o servidor entrega conteúdo HTTP através da porta 80 por padrão. |

Exemplos de origens diferentes
------------------------------

| `http://example.com/app1` `https://example.com/app2` | Esquemas diferentes |
| --- | --- |
| `http://example.com` `http://www.example.com` `http://myapp.example.com` | Hosts diferentes |
| `http://example.com` `http://example.com:8080` | Portas diferentes |

Aprenda mais
------------

Veja Same-origin policy (en-US) para mais informações.


ISO - Glossário do MDN Web Docs: Definições de termos relacionados à Web

ISO
===

A **Organização Internacional de Padronização,** popularmente conhecida como **ISO** (em inglês: International Organization for Standardization), é uma organização internacional que cria padrões/normas para cada tipo de indústria, visando uma melhor coordenação e união internacional. Atualmente 164 países fazem parte da ISO.

Veja mais
---------

* Site oficial


ARPA - Glossário do MDN Web Docs: Definições de termos relacionados à Web

ARPA
====

**.arpa** (address and routing parameter area) é um top-level domain (en-US) usado para fins de infraestrutura da Internet, especialmente pesquisa de DNS reverso (ou seja, localiza o domain name para um determinado IP address).

See also
--------

* Website oficial
* .arpa Na Wikipedia