Como um subdomínio é passado para o servidor web?

12

Eu sei que o DNS resolve um endereço como exemplo.com para um endereço IP como 11.22.33.44, mas estou um pouco confuso sobre como subdomínios são resolvidos, para que quando você digita link , o que realmente é passado para o servidor em 11.22.33.44? Em outras palavras, example.com = 11.22.33.44, mas subdomain.example.com/path = ???

O "subdomínio" e o "caminho" são passados como cabeçalhos http, ou mapeados na URL de alguma forma, ou o quê?

Obrigado antecipadamente.

Edit: Se eu estiver entendendo corretamente, BloodPhilia diz que subdomain.example.com na verdade é um domínio diferente que, em princípio, poderia resolver para um IP totalmente diferente. Mas se é assim, então, o que acontece com hosts que têm um grande número de subdomínios (o que parece), mas que realmente mapear para algum caminho no site. Por exemplo, o blogspot hospeda milhões de blogs e todos se parecem com isso:

aaa.blogspot.com
bbb.blogspot.com
...millions more...
yyy.blogspot.com
zzz.blogspot.com

Esses claramente não são subdomínios com seus próprios IPs, mas sim alguns mapeamentos como aaa.blogspot.com - > www.blogspot.com/aaa, mas como isso é feito? O que realmente é passado para o servidor web no blogspot.com?

    
por Joshua Frank 17.01.2011 / 16:21

4 respostas

18

Domínios, Subdomínios, Sub-Sub domínios e Sub (x) -sub-subdomínios (feitos os dois últimos!), são tratados exatamente da mesma maneira pelo DNS para um usuário final e um servidor da Web.

Por exemplo, o servidor DNS pode retornar resultados diferentes para domain.com , www.domain.com ou mysite.domain.com .

Agora, como você provavelmente sabe, existem muito mais domínios do que IPs no mundo.

Por causa disso, os servidores usam algo conhecido como "Cabeçalhos de host" para veicular o conteúdo correto.

Não importa o que você realmente solicite, sua máquina trata tudo da mesma forma - ele procura no DNS qual IP deve se conectar e, uma vez conectado, enviará o cabeçalho do host como parte da solicitação. O servidor web envia de volta o conteúdo que foi configurado para enviar de volta.

Uma boa ferramenta para testar / aprender / diagnosticar é o Wfetch, pode ser baixado aqui .

Aqui está um exemplo dos cabeçalhos enviados ao acessar superuser.com

AquiestáaconfiguraçãodoscabeçalhosdehostnoIIS(umservidordaweb):

(Imagem de aqui )

Se você estava interessado, Serverfault.com e Superuser.com estão no mesmo IP e esta é a técnica usada para separar os sites e servir conteúdo diferente.

Para mais informações sobre o assunto, você pode querer ler o artigo da Wikipedia sobre Hospedagem Virtual .

(Eu sei que você entende o básico, mas eu achei que seria bom dizer um pouco mais para que qualquer um que estivesse usando o Google pudesse aprender um pouco se quisessem!)

Editar

Assim, de acordo com o seu exemplo, eu acho que alguém tão grande quanto o blogspot provavelmente tem uma entrada DNS curinga (Uma entrada curinga retorna o mesmo resultado para qualquer consulta) que aponta para um balanceador de carga, o balanceador de carga enviá-lo para muitos servidores diferentes que provavelmente não têm um site separado por cabeçalho de host, mas sim um único site / script que o endereço digitado (cabeçalhos de host ou não) é analisado e extrai o conteúdo correto de seu CDN lá e então.

Embora, também seja possível (mas improvável) que eles tenham apenas alguns milhares de entradas por ip, o ip leva a alguns servidores e eles simplesmente têm uma entrada para cada site que tenha um cabeçalho de host correspondente.

    
por 17.01.2011 / 16:44
6

De fato, se dois domínios tiverem o mesmo endereço IP, o servidor depende do navegador para especificar o domínio solicitado. Como :

GET / HTTP/1.1
Host: data.stackexchange.com
    
por 17.01.2011 / 16:34
3

Subdomínios não é a palavra certa. Normalmente, um subdomínio é domínio por si próprio, portanto sub.example.com é passado para o DNS primeiro, se nenhum registro específico for encontrado para esse subdomínio, a solicitação é passada para o IP do domínio principal. (example.com) Nesse servidor, a solicitação é feita novamente e o servidor agirá de acordo.

Em outras palavras, uma solicitação para example.com não difere de uma solicitação para sub.example.com.

    
por 17.01.2011 / 16:25
1

Subdomain.example.com não resolve 11.22.33.44 - para o propósito da sua pergunta, ele normalmente tem seu próprio registro de DNS A e resolve para um endereço diferente.

É possível permitir que o subdomínio resolva para o mesmo endereço do domínio pai e, ainda assim, para o servidor em páginas diferentes, mas, se você fizer isso, deverá hospedar os dois sites no mesmo servidor da Web e precisar considerá-los na configuração do seu servidor . A maneira como você conta para isso depende do tipo de servidor da Web que você está executando.

    
por 17.01.2011 / 16:29