Não é possível acessar o site de minhas páginas do GitHub por endereço IP

1

My custom domain works with GitHub Pages but I would like to understand how it actually works.

For this example I am not using my custom domain at all. My GitHub Pages repository does not contain a CNAME file.

Por exemplo Dado um repositório do GitHub Pages sem um arquivo CNAME : example.github.io

A solicitação de DNS para example.github.io resolve para 185.31.16.133

executar o comando ping para example.github.io também retorna o mesmo endereço IP: 185.31.16.133

Quando abro o site http://example.github.io no navegador, o navegador mostra o conteúdo do site real.

Quando eu digito um endereço IP 185.31.16.133 ou faço uma solicitação HTTP GET com uma ferramenta como o Postman, tudo que vejo é um erro do GitHub Pages 404.

Por que não consigo acessar minha página de usuário do GitHub diretamente por um endereço IP? Eu pensei que os navegadores substituem a parte do nome do host da URL pela resposta do endereço IP de uma pesquisa de DNS, antes de fazer uma solicitação HTTP.

    
por Jay Zelenkov 16.04.2014 / 10:51

2 respostas

3

Sim, os navegadores da web fazem uma pesquisa de DNS e usam esse endereço IP para a conexão. Eles também pegam o nome do host original e o enviam como parte do cabeçalho HTTP do Host. Isso permite que um servidor da Web atenda a vários sites do mesmo endereço IP.

curl http://185.31.16.133/

vs.

curl --header "Host: jzelenkov.github.io" http://185.31.16.133/
    
por 16.04.2014 / 11:21
1

Eu acho que o seu site não é o único site que está nesse ip, até porque se todo projeto no github tiver um ip único. Nesse servidor provavelmente estão configurados centenas de sites de usuários do github.

E provavelmente eles são configurados usando uma estrutura de host virtual. Nesse caso, o servidor apache tem muitas entradas no formato de:

    <VirtualHost *:80>
    DocumentRoot "/blablabla"
    ServerName example.gihub.io

   <Directory "/blablabla">
      ....
   </Directory>

   </VirtualHost>

O ip que você usa é apenas o ip do servidor que hospeda seu site. Tantos sites compartilham o mesmo ip.

É por isso que você não pode acessar sua página diretamente. E provavelmente eles configuram um erro 404 para todas as solicitações que não usam um host virtual válido. E é por isso que você está recebendo um erro 404 não encontrado.

Para acessar diretamente a página usando o ip, consulte a resposta do andol, usando curl --header etc.

    
por 16.04.2014 / 11:25