O que exatamente está acontecendo quando vou ao localhost: 8080 no meu navegador? (Apache Tomcat)

8

Eu passei minha carreira fazendo toda a programação de aplicativos locais (aplicativos C ++ e outras coisas). Eu estou tentando cavar meus pés no mundo da web agora, no entanto. Estou usando o Eclipse (Mars) e o Apache Tomcat 8.0.23 para tentar configurar um ambiente no qual eu possa experimentar e aprender sobre a programação do lado do servidor (JSP, PHP, etc). Eu tenho tudo configurado de tal forma que quando eu digito

localhost:8080

no meu navegador, ele direciona para a página correta do tomcat. Eu sei que isso é provavelmente muito simples, mas está meio que me fazendo pensar aqui.

O que exatamente está acontecendo quando digito localhost?

De onde vem a página do tomcat, senão da internet? Tenho certeza que os dados vêm de um servidor, que graças ao Tomcat, está no meu PC, mas como meu navegador sabe onde encontrar as informações apenas do localhost: 8080?

Eu assumo 8080 é uma porta ou algo assim, mas eu realmente não tenho certeza sobre isso e se é uma porta eu não tenho certeza do que isso significa.

Basicamente, tudo que eu sei (eu acho ...) sobre desenvolvimento web no lado do servidor é que no desenvolvimento web html / css puro todo o trabalho é feito localmente quando tudo é baixado, mas com servidores alguns dos trabalhos (dentro de alguns delimitadores) vai para o servidor e volta injetado no html de uma forma diferente (muito parecido com o envio de dados para uma função em C ++ e diferentes dados sendo retornados), que então é atraído para a página localmente novamente.

    
por softeng 01.07.2015 / 04:16

4 respostas

6

O que exatamente está acontecendo quando eu direciono meu navegador para ir para localhost: 8080?

  1. Você está fazendo com que seu navegador da Web peça ao seu sistema operacional para resolver o nome do host localhost . Os sistemas operacionais normalmente resolverão o nome do host localhost to 127.0.0.1 , sua interface de loopback.

  2. Qualquer nome de host ou endereço IP seguido por um : e um número de porta como :8080 diz ao navegador para se conectar a essa porta TCP em vez da porta 80 do servidor web padrão.

    Assim como http://localhost:80/ , http://localhost/ , http://127.0.0.1/:80 e http://127.0.0.1/ se conectam ao mesmo servidor e porta, o http://localhost:8080/ e http://127.0.0.1:8080/ também se conectam ao mesmo endereço IP, mas na porta TCP 8080

Observação adicional: No HTTP / 1.1, embora o navegador da Web se conecte ao mesmo endereço IP e porta, em muitos servidores da web, há uma pequena diferença entre localhost e 127.0.0.1. Dependendo do que está na barra de endereço, seu navegador enviará um campo de cabeçalho de solicitação com Host: localhost ou Host: 127.0.0.1 . Quando um servidor da Web é configurado corretamente, o campo de cabeçalho Host do navegador permite que um único servidor da Web escute em uma única porta de endereço IP e forneça diferentes páginas da Web para muitos domínios diferentes que resolvem o mesmo endereço IP.

Como o sistema operacional normalmente resolve nomes de host como o host local?

  1. Em sistemas Unix ou SOs semelhantes a Unix, como Linux ou Freebsd, o arquivo é / etc / hosts, e é provável que tenha linhas como:

    127.0.0.1   localhost
    ::1     localhost ip6-localhost ip6-loopback
    
  2. No Windows, o arquivo é c:\windows\system32\drivers\etc\hosts e normalmente terá uma linha semelhante:

    127.0.0.1   localhost
    

Nota adicional: Se desejar, você pode adicionar linhas ao seu arquivo de hosts como:

127.0.0.1     localhost
127.0.0.1     developer.yourdomain.com
# Deny Browser Request For These Sites
127.0.0.2     www.spam.advertisements.com
127.0.0.2     super.ads.com
# Block These Sites
127.0.0.3     www.dont.go.here.com
127.0.0.3     nsfw.stuff.com 
  • O Localizador Uniforme de Recursos (URL) http://developer.yourdomain.com:8080/ na barra de endereço do navegador direciona o navegador da Web para estabelecer uma conexão TCP com a porta 8080 do endereço de loopback local 127.0.0.1.

  • Além disso, de acordo com rfc1700 página 4 , qualquer endereço na faixa 127.0.0.0/8 é também um endereço de loopback. Portanto, um servidor da Web configurado corretamente em execução no seu computador pode negar todas as solicitações na porta 127.0.0.2, enquanto fornece uma mensagem genérica "Você não deve entrar aqui. O site está bloqueado" para conexões no 127.0.0.3.

De onde vem a página do tomcat?

O Apache Tomcat é um servidor que escuta em uma porta e executa programas Java que geram conteúdo para enviar ao seu navegador.

    
por 01.07.2015 / 04:47
1

Quando você digita www.google.com.br em seu navegador, ele abre uma conexão na porta padrão 80 para o servidor do Google (por meio de uma pesquisa de DNS para ver qual endereço de IP www.google.com é) e solicita a página da web . O servidor do Google responde com uma página da web que seu navegador desenha na tela (geralmente fazendo outras chamadas para imagens, CSS e JavaScript).

Quando você vai ao localhost: 8080 é exatamente a mesma coisa. Nome do servidor localhost sempre resolve para a máquina que você está executando e usa o endereço IP falso de 127.0.0.1 (seu computador terá dois endereços IP - este falso que cada computador tem eo verdadeiro). Portanto, você deve ter uma instância do Tomcat em execução localmente, procurando conexões na porta 8080.

Por que a porta 8080, em vez da porta HTTP padrão 80? Bem, isso é no caso de você já ter um servidor web no lugar.

Geralmente, você tem servidores da web e servidores de aplicativos.

  1. Servidores da Web (como o Apache httpd) servem páginas estáticas. Na verdade, é como um servidor FTP de uma via. Você abre uma conexão TCP e solicita um arquivo usando os comandos HTTP (normalmente GET). O servidor retorna um arquivo HTML e seu navegador faz o download e analisa, vê que precisa de outras imagens e as solicita. Um servidor da Web é muito rápido, mas basicamente remove os arquivos do disco local e os retorna.

  2. Um servidor de aplicativos (como o Tomcat ou o JBoss) é semelhante, exceto que normalmente executa código para "criar" a página solicitada, em vez de removê-la diretamente do disco. O que ele faz para criar essa página é sua aplicação. Ele pode se conectar a um banco de dados, executar um programa, servir aleatoriamente uma página ... Etc. Quando você faz logon no seu banco on-line, por exemplo, o servidor de aplicativos configura uma sessão para você, retorna essa id de sessão em um cookie O navegador reenvia de volta cada vez que você faz uma solicitação até que você efetue logout. Então, se você pedir a página "meus saldos", o banco procura quem você é com base no ID da sessão, acessa seu banco de dados para obter seu nome e saldo bancário e cria uma página dizendo "Oi John Smith, seu saldo é de 100 €. " Os servidores de aplicativos são geralmente mais lentos, mas mais versáteis que os servidores da Web.

Muitos locais têm um WebServer em execução na porta padrão de 80 e, em seguida, o AppServer está sendo executado em uma porta secundária (como 8080). Assim, as páginas estáticas são exibidas rapidamente e quando os usuários clicam em um link que os leva a uma página dinâmica, o link vai para 8080 (ao qual o servidor de aplicativos responde) ou o servidor da Web é configurado para encaminhar determinadas solicitações ao servidor de aplicativos Nesse caso, ele ainda se parece com a porta padrão 80 e assim parece um pouco mais agradável para o usuário).

Claro que esta é uma visão geral de alto nível e nada é preto e branco. A maioria dos Webservers pode criar algum conteúdo dinâmico executando scripts (geralmente CGI por meio de scripts usando perl ou PHP) e a maioria dos servidores de aplicativos também pode servir arquivos simples como um servidor da web. Na verdade, é possível apenas executar um servidor de aplicativos e alterar o número da porta do tomcat de 8080 para 80.

Finalmente, muitos aplicativos estão deixando de veicular páginas HTML completas para cada solicitação para o servidor de aplicativos (visto como lento e ineficiente) e, em vez disso, estão respondendo apenas com os fragmentos de dados que usam o AJAX para enviar JSON ou XML. Volte para o www.google.com original que você usou para digitar sua consulta de pesquisa, clique em Pesquisar e receba uma página com seus resultados. Agora, ao digitar, seu navegador envia continuamente solicitações do AJAX para o Google, que responde com resultados de pesquisa atualizados com base no que você digitou até o momento e, em seguida, atualiza a página. Isso significa que não há necessidade de esperar que o usuário envie a página de maneira mais rápida e dinâmica para o usuário (como um aplicativo de desktop antigo seria).

    
por 01.07.2015 / 09:00
1

Neste cenário Você envia um pedido para resolver o host local que é 127.0.0.1 (interface de loopback) e o Apache está configurado para escutar na porta 8080, quando você acessa o host local na porta 8080 retorna o VirtualHost padrão.

    
por 01.07.2015 / 09:27
0

Simplificando, o localhost como um endereço da web se conecta à sua máquina local, onde, nesse caso, você tem o Apache instalado como servidor da web.

A segunda parte,: 8080, significa conectar à porta 8080 desse endereço da web. Se você não especificá-lo, o seu navegador irá se conectar à porta padrão do servidor, que é a porta 80.

Se você ainda estiver em endereços IP, o host local é um link DNS fixo para 127.0.0.1.

Você deve chegar lá ...

    
por 01.07.2015 / 06:55