recursal/MDN huggingface dataset:
symbol
======

O elemento `symbol` é usado para definir um template que pode ser inicializado por um elemento `<use>`. A utilização de elementos `symbol` para gráficos que são usados várias vezes no mesmo documento acrescenta estrutura e semântica. Documentos que são ricos em estrutura podem ser renderizados graficamente, através da fala, ou do braille, e assim promover a acessibilidade. Note que o elemento `symbol` em si não é renderizado. Somente instâncias de um elemento `symbol` (por exemplo, uma referência à um elemento `symbol` feita por um elemento `<use>`) são renderizadas.

Contexto de uso
---------------

|  |  |
| --- | --- |
| Categorias | Elemento recipiente, elemento estrutural |
| Conteúdo permitido | Qualquer número dos seguintes elementos, em qualquer ordem:Elementos de animaçãoElementos descritivosElementos de formaElementos estruturaisElementos de gradiente`<a>`, `<clipPath>` (en-US), `<color-profile>`, `<cursor>` (en-US), `<filter>`, `<font>` (en-US), `<font-face>` (en-US), `<foreignObject>` (en-US), `<image>`, `<marker>`, `<mask>`, `<pattern>`, `<script>`, `<style>`, `<switch>`, `<text>`, `<view>` |

Exemplo
-------


```html
<svg>
  <!-- definição de symbol NUNCA é renderizada -->
  <symbol id="sym01" viewBox="0 0 150 110">
    <circle cx="50" cy="50" r="40" stroke-width="8" stroke="red" fill="red" />
    <circle
 cx="90"
 cy="60"
 r="40"
 stroke-width="8"
 stroke="green"
 fill="white" />
  </symbol>

  <!-- renderização por elementos "use" -->
  <use xlink:href="#sym01" x="0" y="0" width="100" height="50" />
  <use xlink:href="#sym01" x="0" y="50" width="75" height="38" />
  <use xlink:href="#sym01" x="0" y="100" width="50" height="25" />
</svg>
```

Atributos
---------

### Atributos globais

* Atributos principais »
* Atributos de eventos gráficos »
* Atributos de apresentação »
* `class`
* `style`
* `externalResourcesRequired`
### Atributos específicos

* `preserveAspectRatio`
* `viewBox (en-US)`
Interface DOM
-------------

Esse elemento implementa a interface do `SVGSymbolElement`.

Compatibilidade
---------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `<marker>`
* `<pattern>`
marker
======

O elemento `marker` define os gráficos quem devem ser usados para desenhar setas or polymarkers em um determinado elemento `<path>`, `<line>`, `<polyline>` ou `<polygon>`.

Contexto de uso
---------------

|  |  |
| --- | --- |
| Categorias | Elemento recipiente |
| Conteúdo permitido | Qualquer número dos seguintes elementos, em qualquer ordem:Elementos de animaçãoElementos descritivosElementos de formaElementos estruturaisElementos de gradiente`<a>`, `<clipPath>` (en-US), `<color-profile>`, `<cursor>` (en-US), `<filter>`, `<font>` (en-US), `<font-face>` (en-US), `<foreignObject>` (en-US), `<image>`, `<marker>`, `<mask>`, `<pattern>`, `<script>`, `<style>`, `<switch>`, `<text>`, `<view>` |

Exemplo
-------

» marker.svg

Atributos
---------

### Atributos globais

* Atributos principais »
* Atributos de apresentação »
* `class`
* `style`
* `externalResourcesRequired`
* `viewBox (en-US)`
* `preserveAspectRatio`
* `transform (en-US)`
### Atributos específicos

* `markerUnits (en-US)`
* `refX (en-US)`
* `refY (en-US)`
* `markerWidth (en-US)`
* `markerHeight (en-US)`
* `orient (en-US)`
Interface DOM
-------------

Este elemento implementa a interface do `SVGMarkerElement`.

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
animateTransform
================

O elemento `animateTransform` anima a transformação de um atributo em um elemento alvo, permitindo assim as animações controlarem a movimentação, escala, rotação e/ou inclinação.

Contexto de uso
---------------

|  |  |
| --- | --- |
| Categorias | Elemento de animação |
| Conteúdo permitido | Qualquer número dos seguintes elementos, em qualquer ordem:Elementos descritivos |

Exemplo
-------


```html
<?xml version="1.0"?>
<svg
 width="120"
 height="120"
 viewBox="0 0 120 120"
 xmlns="https://www.w3.org/2000/svg"
 version="1.1"
 xmlns:xlink="https://www.w3.org/1999/xlink">
  <polygon points="60,30 90,90 30,90">
    <animateTransform
 attributeName="transform"
 attributeType="XML"
 type="rotate"
 from="0 60 70"
 to="360 60 70"
 dur="10s"
 repeatCount="indefinite" />
  </polygon>
</svg>
```

Atributos
---------

### Atributos globais

* Atributos de processamento condicional »
* Atributos principais »
* Atributos de eventos da animação »
* Atributos XLink »
* Atributos de destino do atributo da animação »
* Atributos de cronometragem da animação »
* Atributos de valor de animação »
* Atributos de animação adicionais »
* `externalResourcesRequired`
### Atributos específicos

* `by (en-US)`
* `from (en-US)`
* `to (en-US)`
* `type (en-US)`
Interface DOM
-------------

Este elemento implementa a interface do `SVGAnimateTransformElement` (en-US).
animateMotion
=============

O elemento `animateMotion` interfere em uma elemento referenciado para se mover ao longo de uma trajetória de movimento.

Contexto de uso
---------------

|  |  |
| --- | --- |
| Categorias | Elemento de animação |
| Conteúdo permitido | Qualquer número dos seguintes elementos, em qualquer ordem:Elementos descritivos`<mpath>` |

Exemplo
-------

» animateMotion.svg

Atributos
---------

### Atributos globais

* Atributos de processamento condicional (en-US) »
* Atributos principais (en-US) »
* Atributos de eventos da animação (en-US) »
* Atributos XLink (en-US) »
* Atributos de cronometragem da animação (en-US) »
* Atributos de valor de animação (en-US) »
* Atributos de animação adicionais (en-US) »
* `externalResourcesRequired`
### Atributos específicos

* `calcMode (en-US)`
* `path (en-US)`
* `keyPoints (en-US)`
* `rotate (en-US)`
* `origin (en-US)`
Interface DOM
-------------

Este elemento implementa a interface do `SVGAnimateMotionElement` (en-US).

Relacionado
-----------

* `<mpath>`
ellipse
=======

O elemento `ellipse` é uma forma básica do SVG, utilizado para criar elipses baseado em uma coordenada central, tanto no raio x quanto no y.

As elipses são incapazes de especificar a orientação exatada dela mesma (se, por exemplo, você quiser desenha uma elipse inclinada a um ângulo de 45 graus), mas poderá ser rotacionada utilizando o atributo `transform (en-US)`.

Contexto de uso
---------------

|  |  |
| --- | --- |
| Categorias | Elemento básico de forma, Elemento gráfico, Elemento de forma |
| Conteúdo permitido | Qualquer número dos seguintes elementos, em qualquer ordem:Elementos de animaçãoElementos descritivos |

Exemplo
-------

» ellipse.svg

Atributos
---------

### Atributos globais

* Atributos de processamento condicional »
* Atributos principais »
* Atributos de eventos gráficos »
* Atributos de apresentação »
* `class`
* `style`
* `externalResourcesRequired`
* `transform (en-US)`
### Atributos específicos

* `cx (en-US)`
* `cy (en-US)`
* `rx (en-US)`
* `ry (en-US)`
Interface DOM
-------------

Este elemento implementa a interface do `SVGEllipseElement`.

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `<circle>`
Deixando seu site seguro
========================

Há várias coisas que você pode fazer para ajudar na segurança do seu site. Esse artigo oferece uma série de sugestões, bem como links para outros artigos fornecendo informações mais úteis.

**Nota:** Esse artigo é um trabalho em progresso e não está nem completo nem as sugestões a seguir irão garantir que seu site será completamente seguro.

Segurança da informação do usuário
----------------------------------

Como desligar o formulário de preenchimento automático

Campos de formulário têm preenchimento automático no Gecko, isto é, seus valores podem ser lembrados e automaticamente trazidos de volta na próxima vez que o usuário visitar seu site. Para certos tipos de dados, você pode querer desativar essa funcionalidade.

Privacidade e o seletor :visited

Esse artigo discute mudanças feitas no método `getComputedStyle()` que eliminam a habilidade de sites maliciosos de descobrir o histórico do navegador de usuários.

Segurança de conteúdo
---------------------

Configurar corretamente os tipos de MIME do servidor

Há várias formas para que tipos incorretos de MIME causem potenciais problemas de segurança no seu site. Esse artigo explica alguns deles e mostra como configurar seu servidor para fornecer arquivos com os tipos corretos de MIME.

HTTP Strict Transport Security

O cabeçalho HTTP `Strict-Transport-Security:` permite a um site especificar que somente pode ser acessado usando HTTPS.

Controle de acesso HTTP

O padrão *Cross-Origin Resource Sharing* fornece uma forma de especificar qual conteúdo pode ser carregado de outros domínios. Você pode usar isso para prevenir seu site de ser usado impropriamente; além disso, você pode usá-lo para estabelecer recursos que outros sites são expressamente permitidos de usar.

Política de Segurança de Conteúdo

Uma camada de segurança adicionada que ajuda a detectar e evitar certos tipos de ataques, incluindo *Cross Site Scripting* (XSS) e ataques de injeção de dados. Esses ataques são usado para tudo, desde roubo de dados até desfiguração de página ou distribuição de malware.

O cabeçalho de resposta X-FRAME-OPTIONS (en-US)

O cabeçalho de resposta HTTP `X-Frame-Options:` pode ser usado para indicar se um navegador deve ser autorizado a renderizar uma página ou não em um elemento `<frame>` (en-US). Sites podem usar isso para evitar ataques do tipo *clickjacking*, garantindo que seus conteúdos não estão embutidos em outros sites.

Deixando seu site seguro usando o Htaccess

Aprenda a melhor maneira e quase todos os truques para deixar seu site seguro usando o arquivo .htaccess. Você pode colocar endereços IPs em *blacklists*, restringir o acesso a certas áreas do website, proteger diferentes arquivos, proteger contra *hotlink* de imagens e muito mais.

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

* Projeto Open Web Application Security (OWASP)
Métodos de requisição HTTP
==========================

> 
> *Nota: O conteúdo original publicado em inglês no Mozilla Developer Network utiliza o termo "resource", mantido na tradução, que refere-se a qualquer destino válido ao executar uma conexão usando o protocolo HTTP. Na língua portuguesa, ao falar sobre requisições, o termo é pouco usado com essa finalidade ou contexto.*
> 
> 
> 

O protocolo HTTP define um conjunto de **métodos de requisição** responsáveis por indicar a ação a ser executada para um dado recurso. Embora esses métodos possam ser descritos como substantivos, eles também são comumente referenciados como ***HTTP Verbs (Verbos HTTP)***. Cada um deles implementa uma semântica diferente, mas alguns recursos são compartilhados por um grupo deles, como por exemplo, qualquer método de requisição pode ser do tipo safe, idempotent ou cacheable (en-US).

`GET`

O método `GET` solicita a representação de um recurso específico. Requisições utilizando o método `GET` devem retornar apenas dados.

`HEAD`

O método `HEAD` solicita uma resposta de forma idêntica ao método `GET`, porém sem conter o corpo da resposta.

`POST`

O método `POST` é utilizado para submeter uma entidade a um recurso específico, frequentemente causando uma mudança no estado do recurso ou efeitos colaterais no servidor.

`PUT`

O método `PUT` substitui todas as atuais representações do recurso de destino pela carga de dados da requisição.

`DELETE`

O método `DELETE` remove um recurso específico.

`CONNECT`

O método `CONNECT` estabelece um túnel para o servidor identificado pelo recurso de destino.

`OPTIONS`

O método `OPTIONS` é usado para descrever as opções de comunicação com o recurso de destino.

`TRACE`

O método `TRACE` executa um teste de chamada *loop-back* junto com o caminho para o recurso de destino.

`PATCH`

O método `PATCH` é utilizado para aplicar modificações parciais em um recurso.

Especificações
--------------

| Especificação | Título | Comentário |
| --- | --- | --- |
| RFC 7231, sessão 4: Request methods | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content | Especifica os métodos GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE. |
| RFC 5789, sessão 2: Patch method | PATCH Method for HTTP | Especifica o método PATCH. |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* Cabeçalhos HTTP
Connection
==========

O cabeçalho **`Connection`** controla se a conexão se mantém aberta ou não após o término da transação atual. Se o valor for `keep-alive`, a conexão é persistente e não fecha, permitindo que requisições futuras ao mesmo servidor sejam feitas.

**Nota:** Campos de cabeçalho de conexão específica como Connection não devem ser usados com HTTP/2.

Exceto pelos cabeçalhos padrões *hop-by-hop* (salto-por-salto) (`Keep-Alive`, `Transfer-Encoding`, `TE`, `Connection`, `Trailer`, `Upgrade` (en-US), `Proxy-Authorization` e `Proxy-Authenticate`), quaisquer cabeçalhos *hop-by-hop* usados pela mensagem devem estar listados no cabeçalho `Connection`, para que o primeiro proxy saiba que tem que consumi-los e não repassá-los além. Os cabeçalhos *hop-by-hop* padrões podem ser listados também (como é o caso do `Keep-Alive`, mas não é obrigatório).

|  |  |
| --- | --- |
| Tipo de cabeçalho | General header |
| Forbidden header name | sim |

Sintaxe
-------
```

Connection: keep-alive
Connection: close
```

Diretivas
---------

`close`

Indica que ou o cliente, ou o servidor querem fechar a conexão. Este é o valor padrão em requisições HTTP/1.0.

qualquer lista de cabelhaços HTTP separados por vírgulas [Geralmente apenas o `keep-alive` ]

Indica que o cliente gostaria de manter a ligação aberta. Ter uma conexão persistente é o valor padrão das requisições HTTP/1.1. A lista de cabeçalhos são os nomes dos cabeçalhos a serem removidos pelo primeiro proxy não-transparente ou com "cache no meio": estes cabeçalhos definem a conexão entre o emissor e a primeira entidade, não o nó destinatário.

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Authorization
=============

O cabeçalho de requisição HTTP **`Authorization`** contém as credenciais para autenticar o agente de usuário com o servidor, geralmente o servidor responderá com um status `401` `Unauthorized` se não for possível fazer a autenticação, e com o cabeçalho `WWW-Authenticate`.

|  |  |
| --- | --- |
| Tipo de cabeçalho | Request header |
| Forbidden header name | não |

Sintaxe
-------
```

Authorization: <tipo> <credenciais>
```

Directives
----------

<tipo>

Tipo de autenticação. Um tipo comum é o "Basic". Outros tipos:

* Registro do IANA dos esquemas de Autenticação
* Autenticação para servidores AWS (`AWS4-HMAC-SHA256`)

<credenciais>

Se a autenticação "Basic" é utilizada, as credenciais construção são parecidas com isto:

* O nome de usuário com a senha combinados por dois pontos (`aladdin:opensesame`).
* A cadeia de caracteres resultante é uma codificação base64 (en-US) (`YWxhZGRpbjpvcGVuc2VzYW1l`).

**Nota:** Codificação Base64 não significa encriptação ou hashing! Esse método é igualmente seguro como mandar em texto limpo (base64 é uma codificação que pode ser revertida). Use o HTTPS em conjunto com a Autenticação Basic.

Exemplos
--------
```

Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
```


Veja também autenticação HTTP para exemplos em como configurar os servidores Apache ou nginx para proteger seu site com autenticação básica HTTP.

Especificações
--------------

| Especificação | Título |
| --- | --- |
| RFC 7235, sessão 4.2: Authorization | HTTP/1.1: Authentication |
| RFC 7617 | O esquema de autenticação HTTP 'Basic' |

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

* Autenticação HTTP
* `WWW-Authenticate`
* `Proxy-Authorization`
* `Proxy-Authenticate`
* `401`, `403`, `407`
X-Forwarded-Proto
=================

O cabeçalho **`X-Forwarded-Proto`** (XFP) é um cabeçalho padrão de fato para identificar o protocolo (HTTP ou HTTPS) que o cliente usava para conectar ao seu proxy ou balanceador de carga. Seus *logs* de acesso do servidor contém o protocolo usado entre o servidor e o balanceador de carga, não o protocolo usado entre o cliente e o balanceador de carga. Para determinar o protocolo utilizado entre o cliente e o balanceador de carga, o cabeçalho de requisição `X-Forwarded-Proto` pode ser utilizado.

Uma versão padronizada deste cabeçalho é o cabeçalho HTTP `Forwarded`.

|  |  |
| --- | --- |
| Tipo de cabeçalho | Request header |
| Forbidden header name | não |

Sintaxe
-------
```

X-Forwarded-Proto: <protocol>
```

Diretivas
---------

<protocol>

O protocolo encaminhado (http ou https).

Exemplos
--------
```

X-Forwarded-Proto: https
```


Outras formas não padronizadas:
```

# Microsoft
Front-End-Https: on

X-Forwarded-Protocol: https
X-Forwarded-Ssl: on
X-Url-Scheme: https
```

Especificações
--------------

Não pertence a nenhuma especificação atualmente. A versão padronizada do cabeçalho é `Forwarded`.

Compatibilidade com navegadores
-------------------------------

{{Compat}}Veja também
-----------

* `Forwarded`
* `X-Forwarded-For`
* `X-Forwarded-Host`
Timing-Allow-Origin
===================

O cabeçalho de resposta **`Timing-Allow-Origin`** especifica origens que são permitidas de ver os valores dos atributos por funcionalidades da Resource Timing API (en-US), na qual caso contrário será reportada como zero dada as restrições entre origens.

|  |  |
| --- | --- |
| Tipo de cabeçalho | Response header (en-US) |
| Forbidden header name | não |

Sintaxe
-------
```

Timing-Allow-Origin: *
Timing-Allow-Origin: <origin>[, <origin>]*
```

Diretivas
---------

\*

O servidor pode especificar "\*" como um coringa, sendo assim permitindo qualquer origem de ver os tempos dos recursos.

<origin>

Especifica uma URI que pode ver os tempos dos recursos. Você pode especificar várias origens, separadas por vírgulas.

Exemplos
--------

Para permitir qualquer recurso veja os tempos dos recursos:
```

Timing-Allow-Origin: *
```


Para permitir `https://developer.mozilla.org` de ver os tempos de recursos de, você pode especificar:
```

Timing-Allow-Origin: https://developer.mozilla.org
```

Especificações
--------------

| Specification |
| --- |
| Resource Timing # sec-timing-allow-origin |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* Resource Timing API (en-US)
* Usando a Resource Timing API (en-US)
* `Vary`
Content-Language
================

O cabeçalho de entidade **`Content-Language`** é usado para descrever a língua(s) destinada para a audiência, para que isto permita um usuário de se diferenciar de acordo com a língua preferida do usuário.

Por exemplo, se "`Content-Language: de-DE`" está selecionado, você diz que o documento é destinado para quem fala Alemão (no entanto, não indica que o documento é escrito em Alemão. Por exemplo, pode ser escrito em Inglês como parte de um curso de línguas para fluentes em Alemão).

Se nenhum `Content-Language` é especificado, o padrão é que o conteúdo é destinado para todas as línguas. Múltiplas tags de língua também podem ser usada, assim como usar o header `Content-Language` com varios tipos de mídia e não apenas para documentos de texto.

|  |  |
| --- | --- |
| Header type | Entity header |
| Forbidden header name | não |
| CORS-safelisted response-header (en-US) | sim |
| CORS-safelisted request-header (en-US) | sim |

Syntax
------
```

Content-Language: de-DE
Content-Language: en-US
Content-Language: de-DE, en-CA
```

Directives
----------

`language-tag`

Múltiplas tags de línguas são separadas por uma vírgula. Cada tag de língua é uma sequencia de uma ou mais subtags insensitíveis, cada uma separada por um hífen ("`-`", `%x2D`). Na maioria dos casos, uma tag de língua consiste de uma tag de língua primária que identifica uma família ampla de outras línguas (ex., "`en`" = English), que é opcionalmente seguida por uma série de subtags que refinam ou restringem aquele alcance da língua (ex., "`en-CA`" = variedade de Inglês como comunicado no Canadá).


**Nota:** Tags de língua são formalmente deifnidas em RFC 5646, que depende do padrão ISO 639 (muitas vezes o ISO 639-1 code list) para language codes serem usados.

Exemplos
--------

### Indicando a língua que um documento está escrito

O atributo global `lang` é usado em elementos HTML para indicar a língua de um documento HTML ou partes dele.


```html
<html lang="de"></html>
```


Não use este elemento meta como o abaixo para definir a língua de um documento:


```html
<!-- /!\ Esta prática é ruim -->
<meta http-equiv="content-language" content="de" />
```

### Indicando uma audiência destinada para um documento

O header `Content-Language` é usado para especificar a **audiência destinada da página**, e pode indicar que é mais de uma língua.
```

Content-Language: de, en
```

Especificações
--------------

| Specification | Title |
| --- | --- |
| RFC 7231, sessão 3.1.3.2: Content-Language | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `Accept-Language`
* HTTP headers, meta elements and language information
Device-Memory
=============

**Secure context:** This feature is available only in secure contexts (en-US) (HTTPS), in some or all supporting browsers.

**Experimental:** **Esta é uma tecnologia experimental (en-US)**  
Verifique a tabela de compatibilidade entre Navegadores cuidadosamente antes de usar essa funcionalidade em produção.

O cabeçalho **`Device-Memory`** é um cabeçalho da Device Memory API (en-US) que funciona como os cabeçalhos Client Hints (en-US) que representão a quantidade aproximada de RAM que o dispositivo do cliente possui.

|  |  |
| --- | --- |
| Tipo de cabeçalho | Request header |
| Forbidden header name | ? |

**Nota:** Client Hints são acessíveis somente em origens seguras (via TLS). O servidor pode optar em receber o cabeçalho `Device-Memory` do cliente mandando os cabeçalhos de resposta `Accept-CH` e `Accept-CH-Lifetime`.

Sintaxe
-------

A quantidade de RAM no dispositivo pode ser usada como variável de pegada, The amount of device RAM can be used as a fingerprinting variable, então os valores para este cabeçalho são intencionalmente grosseiros para reduzir potenciais usos indesejados. O cabeçalho pode ter os seguintes valores: `0.25`, `0.5`, `1`, `2`, `4`, `8`.
```

Device-Memory: <number>
```

Exemplos
--------

O servidor precisa primeiro optar por aceitar o cabeçalho `Device-Memory` mandando os cabeçalhos de resposta `Accept-CH` contendo `Device-Memory` e `Accept-CH-Lifetime`.
```

Accept-CH: Device-Memory
Accept-CH-Lifetime: 86400
```


Então nas requisições subsequentes, o cliente enviará o cabeçalho `Device-Memory` de volta:
```

Device-Memory: 1
```

Especificações
--------------

| Specification |
| --- |
| Device Memory # iana-device-memory |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* Device Memory API (en-US)
* `Accept-CH`
* `Accept-CH-Lifetime`
* `Vary`
* `Navigator.deviceMemory`