Não funciona em alguns sites.
Hospedar um site por servidor (ou por endereço IP) não é uma boa ideia para sites pequenos. Hospedar vários sites em um endereço IP é possível, esse recurso é chamado de hosts virtuais.
Mas o servidor tem que de alguma forma verificar qual site você está disposto a abrir. A especificação do protocolo HTTP define um cabeçalho Host
(que é obrigatório desde o HTTP 1.1) que contém o endereço do site que seu navegador está solicitando. Esse cabeçalho é usado pelo servidor para selecionar o host virtual apropriado.
Veja uma solicitação normal para o YouTube:
- Insira
http://youtube.com
na barra de endereço e pressione Enter - Seu computador consulta o servidor DNS para resolver o
youtube.com
domain name para o endereço IP.- resposta do servidor DNS:
46.28.247.104
- resposta do servidor DNS:
-
O navegador envia uma solicitação HTTP para
46.28.247.104
:GET / HTTP/1.1 Host: youtube.com
- O servidor em
46.28.247.104
reconheceyoutube.com
como seu host virtual e o veicula para você.
- O servidor em
Agora, vamos supor que você mapeou youtube.com
para 192.168.0.100
usando o arquivo hosts
.
- Insira
http://youtube.com
na barra de endereço e pressione Enter -
O IP de
youtube.com
é fornecido no arquivohosts
, portanto, nenhuma pesquisa de DNS é necessária.- O sistema informa ao navegador que o endereço
youtube.com
é192.168.0.100
- O sistema informa ao navegador que o endereço
-
O navegador envia uma solicitação HTTP para
192.168.0.100
:GET / HTTP/1.1 Host: youtube.com
- O servidor em
192.168.0.100
não reconheceyoutube.com
como seu host virtual, portanto, ele responde com404
código de erro.
- O servidor em