Faz parte do protocolo HTTP 1.1.
Especificamente, o protocolo HTTP 1.1 inclui um cabeçalho chamado "host:", que especifica qual site em um servidor específico o cliente está tentando acessar.
Portanto, se snoopy.net e woodstock.org compartilharem 192.0.32.10 e seu navegador estiver tentando obter conteúdo da http://snoopy.net/doghouse
solicitação http específica, será semelhante a:
GET /doghouse HTTP/1.1
Host: snoopy.net
Se o URL desejado for http://woodstock.org/seeds
o pedido, pareceria
GET /seeds HTTP/1.1
Host: woodstock.org
Nos dois casos, haveria um soquete tcp entre o computador e a porta 80 do servidor. O servidor saberia obter conteúdo de /var/www/snoopy.net ou /var/www/woodstock.org/ com base no cabeçalho Host.
Haveria outros cabeçalhos para cookies e outras coisas, como tipo de navegador e conteúdo permitido, mas o cabeçalho "Host" é especificamente o que permite ao servidor saber qual site virtual é desejado.
Há mais no RFC2616 .
É também por isso que os sites https * devem *** ter seu próprio endereço IP - a troca de chaves ssl e a verificação do certificado ocorrem antes da transação http, para que o servidor http não saiba como fornecer o certificado para "woodstock. org "ou" snoopy.net "quando recebe uma conexão https na porta 443 de 192.0.32.10.
editar
** nos comentários, o Grawity ressalta que existem extensões para SSL na especificação TLS que permitem ao servidor saber qual site o usuário está tentando acessar e que os navegadores mais modernos têm essas extensões, por isso deve ser um pouco demais Forte.
Há algo que todo navegador moderno envia junto com a solicitação, chamado de "Host:" Header.
O pedido real que o Firefox envia para esta página é:
Como você pode ver, o
bit identifica o site em questão.No IIS e no Apache, você pode configurar sites virtuais que aceitam apenas solicitações de uma combinação específica de IP / host.
Quanto ao seu problema específico, você terá que ler como sua empresa de hospedagem deseja que você solicite a configuração.
fonte
A técnica para hospedar mais de um domínio / subdomínio em um único endereço IP / host é chamada de hosts virtuais . A solicitação http get contém o nome de domínio para o qual as solicitações permitem que o servidor da Web faça a correspondência da solicitação com um domínio virtual específico.
Se você possui vários hosts físicos internamente com apenas um IP externo, convém configurar o proxy reverso para encaminhar as solicitações para a máquina / endereço IP interno correto.
fonte
O recurso em seu servidor da web é normalmente chamado de 'hosts virtuais'. Depois de apontar as entradas DNS para apontar para esse único endereço IP (como mencionado nas outras respostas), o servidor servirá os diferentes sites, dependendo do host solicitado.
Tanto quanto apontar para outra caixa, vale. Você pode configurar os redirecionamentos na maioria dos servidores Web, se espera obter a consulta primeiro. Se você está falando de subdomínios, tudo o que você faz é apontar cada um dos subdomínios para um endereço IP diferente.
host.com -> IP 1 e, em seguida, www.host.com -> IP 2 e mail.host.com -> IP 3
Se você quiser respostas mais específicas, precisará dizer qual software de servidor da web em qual sistema operacional você está executando.
Você pode achar que o ServeFault é um lugar melhor para esta pergunta.
fonte
Em resumo...
Um - defina as entradas DNS para seus vários domínios para todos apontarem para sua caixa.
Dois - Conforme descrito por outras pessoas, configure seu servidor da web (você não diz qual) para corresponder ao nome do host solicitado.
Dessa forma, todas as solicitações de todos os seus domínios vão para a mesma máquina e sua configuração pega o domínio solicitado e o encaminha para a pasta correta que contém o conteúdo desse site.
fonte
Parece-me sua pergunta como se você tivesse um servidor físico separado para o segundo site. Nesse caso, você não poderá usar um único endereço IP para os dois servidores. Você pode: a) obter um segundo endereço IP público para o seu segundo host ou b) configurar um proxy inteligente que encaminhe solicitações para diferentes servidores na rede interna com base nos cabeçalhos do host. Tenho certeza de que b) é possível, mas não tenho uma idéia real de como isso funciona, então você terá que perguntar a outra pessoa se é isso que você está tentando fazer.
fonte
Se estou lendo sua pergunta corretamente, você tem dois computadores diferentes compartilhando um endereço IP via NAT (Network Address Translation)? Nesse caso, você precisará que um site escute em uma porta diferente (não 80) - não há uma maneira boa de eu saber que o roteador envie solicitações para computadores diferentes com base nos metadados HTTP "Host". É melhor obter um segundo endereço IP para o seu segundo servidor.
fonte