# Sua primeira requisição

> O Mariner começa com uma pequena coleção de exemplo para você enviar algo nos primeiros dez segundos. Esta página percorre essa requisição e dá nome a cada parte da janela que você vai usar depois.

## Envie a requisição de exemplo

No primeiro início o Mariner cria um workspace chamado **Personal** com uma coleção **Welcome to Mariner**: requisições contra o `httpbin.org` que devolvem o mesmo que você manda — três na raiz e uma pasta por superfície do editor (Auth, Variables, Body, Post-Response, Contract, Response states). A primeira já vem aberta.

1. Aperte <kbd>⌘↵</kbd> (ou o botão **Send**). A resposta aparece no painel de baixo com status, tamanho e tempo.
2. Abra a aba **Tempos** para ver onde foram os milissegundos — DNS, TCP, TLS, espera, download.
3. Abra a segunda requisição, **POST · Echo body**, e aperte <kbd>⌘↵</kbd> de novo: o body JSON do editor volta dentro da resposta.
4. Abra **GET · Variables in action**. A URL dela começa com `{{baseUrl}}`, uma variável já definida no ambiente **Default**. Passe o cursor pelo token para ver no que ele resolve.

## O editor de requisições

A barra acima do editor se lê da esquerda para a direita: método, URL, o menu <code>⋯</code> e **Send**. Ao entrar na URL, o campo para de cortar: ele quebra a linha e cresce para baixo sobre o painel, então uma URL longa dá para ler enquanto você a edita e volta a ser compacta assim que você sai.

Abaixo ficam a URL resolvida — a que vai sair de verdade pela rede — e um chip <code>{}</code> com o número de tokens de que a requisição depende. Abra o chip para ver a URL inteira em quantas linhas ela precisar, e a lista de cada <code>{{token}}</code> e cada <code>:slug</code> com o que cada um contribui; veja [Configurar ambientes](/pt-br/docs/environments).

- **Params** — parâmetros de query, mais o que você escreveu direto na URL (somente leitura), mais as **variáveis de path** como `:id`.
- **Headers** — linhas chave/valor com autocompletar de nomes padrão. Os headers que o Mariner adiciona por conta própria (`Content-Type` para um body JSON, por exemplo) aparecem em uma seção de *headers temporários*, somente leitura.
- **Body** — nenhum, raw, JSON, form-urlencoded ou multipart. O JSON tem formatador e indicador de válido/inválido ao vivo; multipart permite anexar arquivos.
- **Auth** — veja [Autenticação](/pt-br/docs/auth).
- **Variables** — valores que pertencem só a esta requisição; veja [Variáveis e segredos](/pt-br/docs/variables).
- **Contract** — a forma contra a qual cada resposta a esta requisição é medida; veja [Contratos](/pt-br/docs/contracts).
- **Post-Response** — regras que copiam valores da resposta para variáveis.

Toda tabela chave/valor tem um botão **Bulk edit**: cole linhas `chave: valor` e aplique com <kbd>⌘↵</kbd>.

## O painel de resposta

- **Body** — *Pretty*, *Raw*, *Tree* (só JSON) e *Preview* (HTML). <kbd>⌘F</kbd> busca dentro do body; <kbd>⌘G</kbd> pula para a próxima ocorrência. Bodies grandes são cortados no visualizador, nunca no arquivo que você salva com *Save body to file…*.
- **Headers** e **Cookies** — uma linha por item, com a contagem na aba.
- **Tempos** — a cascata. As fases cinzas são preparo do Mariner; as coloridas, a rede.

<figure class="shot">
<img src="/docs/pt-br/response.webp" alt="A aba Tempos de um GET para httpbin.org: uma cascata com Preparação, Resolução DNS, Conexão TCP, Handshake TLS, Requisição enviada, Esperando (TTFB), Download e Processamento, e um total de 669 ms" width="1600" height="1000" loading="lazy">
<figcaption>TEMPOS · onde foram 669 ms — 132 deles esperando o primeiro byte</figcaption>
</figure>

- **Captures** — o que as regras de Post-Response extraíram desta vez.

A faixa acima das abas mostra o status, o tempo total, se a conexão foi reaproveitada, a versão do HTTP, o IP remoto, o tamanho, a economia do gzip e — quando o servidor manda — os headers de rate limit e a diferença de relógio entre o servidor e o seu Mac.

## Início a frio e cancelar

Clique com o botão direito em **Send** para **Send (cold start)**: o Mariner descarta a conexão em cache para que o próximo timing inclua DNS, TCP e TLS do zero. O menu <code>⋯</code> ainda tem um **Cold mode** persistente para uma requisição que nunca deva tocar cache.

Enquanto uma requisição roda, **Send** vira **Cancel**. Cada aba tem seu próprio executor, então cancelar uma nunca afeta outra.

## Abas e paleta

- <kbd>⌘T</kbd> cria uma requisição na coleção ativa.
- As requisições abrem em abas: <kbd>⌘1</kbd>–<kbd>⌘9</kbd> pula para uma, <kbd>⌘⌥→</kbd> / <kbd>⌘⌥←</kbd> anda entre elas, <kbd>⌘W</kbd> fecha a atual. O teto são vinte: cada aba segura a sua última resposta, então o limite é o que impede uma sessão longa de ir somando. O Mariner recusa a vigésima primeira em vez de fechar uma das suas.
- <kbd>⌘⌥9</kbd> esconde o editor e <kbd>⌘⌥0</kbd> a resposta, para que um dos dois ocupe a janela inteira.
- <kbd>⌘K</kbd> abre a paleta de comandos: cada requisição, coleção, ambiente e ação em uma lista só, com busca fuzzy. É o jeito mais rápido de enviar uma requisição que você ainda nem abriu.

<aside class="callout" data-label="O MÊS GRÁTIS">
Todos os recursos são grátis no primeiro mês, sem conta. Depois, o Mariner é uma assinatura anual ou uma compra única; sem nenhuma das duas ele continua legível e exportável, mas enviar fica esperando. Veja <a href="/pt-br/docs/free-and-pro">Preço e o mês grátis</a>.
</aside>

---
Source: https://marinerhttp.dev/pt-br/docs/first-request · Mariner docs
