# A resolução de nomes vem antes ou depois de escolher o protocolo?

**URL:** <https://forum.casadocodigo.com.br/t/a-resolucao-de-nomes-vem-antes-ou-depois-de-escolher-o-protocolo/417>\
**Category:** Livros\
**Tags:** desconstruindo-web\
**Created:** [Janeiro 16, 2017, 5:24pm UTC](https://forum.casadocodigo.com.br/t/a-resolucao-de-nomes-vem-antes-ou-depois-de-escolher-o-protocolo/417 "2017-01-16T17:24:14Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![pdroaugust](https://avatars.discourse-cdn.com/v4/letter/p/848f3c/32.png) [@pdroaugust](https://forum.casadocodigo.com.br/u/pdroaugust)\
**Post date:** [Janeiro 16, 2017, 5:24pm UTC](https://forum.casadocodigo.com.br/t/a-resolucao-de-nomes-vem-antes-ou-depois-de-escolher-o-protocolo/417/1 "2017-01-16T17:24:14Z")

</div>

Não ficou claro no livro como acontece. Pelo que percebi a resolução de nomes vem antes, no entanto no livro está depois. Como o navegar recebe cabeçalhos via HTTP, para verificar o HSTS, sem saber o IP?

---

<div class="post-metadata">

**Author:** ![PotHix](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/pothix/32/14199_2.png) [@PotHix](https://forum.casadocodigo.com.br/u/PotHix)\
**Post date:** [Janeiro 16, 2017, 5:57pm UTC](https://forum.casadocodigo.com.br/t/a-resolucao-de-nomes-vem-antes-ou-depois-de-escolher-o-protocolo/417/2 "2017-01-16T17:57:33Z")

</div>

Æ!!

E ae Pedro! Vamos lá! 🙂

Essa é meio complicada de responder sem olhar o código dos navegadores, e no código do chromium eu não achei esse passo a passo da ordem das coisas porque são muitos processos trabalhando assíncronamente. Como o protocolo e o domínio não tem relação direta para o processo, eles podem até acontecer em threads (ou processos) separados.

O domínio é totalmente separado do protocolo. Independente de ser http, https, ftp ou outro, o domínio vai ser resolvido da mesma forma. Não consigo te dizer exatamente a ordem que o navegador faz isso, até porque pode variar entre navegadores, mas isso não vai influenciar o resultado final.

Sobre o HSTS, o navegador mantem uma lista de sites que pediram para ser acessados via https por padrão. Existe uma lista que já está embutida no código fonte do chromium (até fiz um tweet sobre isso esses dias [https://twitter.com/PotHix/status/819676467462369282](https://twitter.com/PotHix/status/819676467462369282)) e fora ela, os sites podem mandar o cabeçalho na primeira requisição. Ou seja, se você está acessando pela primeira vez, ele vai olhar essa lista e ver se está lá, senão ele usa _http_ mesmo (caso você não tenha especificado _https_). A partir da segunda requisição, caso o servidor tenha mandado o cabeçalho de HSTS, o site já vai estar na lista.

Sei que não respondi sua duvida exatamente, mas espero que tenha ajudado a entender o processo.

Há braços

–  
PotHix

---

<div class="post-metadata">

**Author:** ![pdroaugust](https://avatars.discourse-cdn.com/v4/letter/p/848f3c/32.png) [@pdroaugust](https://forum.casadocodigo.com.br/u/pdroaugust)\
**Post date:** [Janeiro 16, 2017, 7:16pm UTC](https://forum.casadocodigo.com.br/t/a-resolucao-de-nomes-vem-antes-ou-depois-de-escolher-o-protocolo/417/3 "2017-01-16T19:16:59Z")

</div>

E ae PotHix! Valeu pela resposta, cara!

Minha dúvida era exatamente o que você respondeu. Mas assim, no caso de o navegador não saber se é pra usar HTTPS, ele irá fazer uma primeira requisição HTTP. OK! E nessa requisição ele não precisaria saber o IP? Ou seja, ele primeiro teria fazer a resolução de nomes e descobrir o IP do domínio antes de fazer a primeira requisição?

Ou não tem relação entre os dois processos?

Valeu!

---

<div class="post-metadata">

**Author:** ![PotHix](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/pothix/32/14199_2.png) [@PotHix](https://forum.casadocodigo.com.br/u/PotHix)\
**Post date:** [Janeiro 16, 2017, 8:47pm UTC](https://forum.casadocodigo.com.br/t/a-resolucao-de-nomes-vem-antes-ou-depois-de-escolher-o-protocolo/417/4 "2017-01-16T20:47:41Z")

</div>

Æ!!

Ah, isso tem relação sim. O que não tem é a **definição** do protocolo. Ele pode escolher usar http ou https sem precisar resolver o domínio. Já para fazer a requisição ele precisa obrigatoriamente resolver o dominio antes. 🙂

Há braços

–  
PotHix
