CodeGym /Blogue Java /Random-PT /Parte 1. O que você precisa saber antes de aprender Sprin...
John Squirrels
Nível 41
San Francisco

Parte 1. O que você precisa saber antes de aprender Spring e JavaEE

Publicado no grupo Random-PT
Se você já terminou (ou está perto) de aprender Java SE, então é hora de pensar nos próximos passos para conquistar a profissão de desenvolvedor Java. Parte 1. O que você precisa saber antes de aprender Spring e JavaEE - 1 Por um lado, você já tem um bom conhecimento de Java: sabe como trabalhar com um IDE, escrever programas e muito mais. Mas o que você deve fazer a seguir com seus programas? Como torná-los ainda mais legais e "lançá-los no mundo"? Está ficando óbvio que é hora de estudar as tecnologias corporativas. E agora começa a diversão. Não importa com qual pilha de tecnologia você decida começar. Seja JavaEE ou Spring, é provável que você encontre uma tonelada de coisas que estão muito, muito além de sua compreensão. Entre o básico de Java e as tecnologias avançadas, existe um passo intermediário no conhecimento que deve ser dado para reter o que resta de seu autocontrole e autoconfiança ao ler a volumosa documentação. Portanto,é dar a você o conhecimento teórico mínimo necessário para seu estudo adicional de JavaEE ou Spring. Este material está dividido em 7 partes:
  1. Falaremos um pouco sobre networking.
  2. Examinaremos a arquitetura cliente-servidor e de três camadas.
  3. Exploraremos os protocolos HTTP/HTTPS.
  4. Aprenderemos tudo o que você precisa saber sobre o Maven.
  5. Estamos falando de registro.
  6. Sobre contêineres de servlet.
  7. E, finalmente, sobre o MVC.

Parte 1. Falaremos um pouco sobre networking.

Vamos começar com o que mais importa, falando sobre o que cada rede social, serviço web e aplicativo web, mensageiro instantâneo e site simples é construído — a rede (no contexto desta série de artigos, o termo "rede" significa a Internet ) . A rede consiste em um grande número de computadores: eles estão interconectados e podem se comunicar. É importante entender como eles fazem isso, porque os aplicativos da Web enviam informações de um computador para outro.

modelo OSI

O modelo Open Systems Interconnection (OSI) cria uma abordagem em camadas para construir uma rede. Mostra claramente como e em que camada as entidades da mesma rede podem interagir umas com as outras. Ao todo, este modelo contém 7 camadas:
7 Aplicativo
6 Apresentação
5 Sessão
4 Transporte
3 Rede
2 Link de dados
1 Físico
Dividir o modelo em camadas de abstração permite que os desenvolvedores que trabalham na camada de transporte, por exemplo, não precisem pensar em detalhes de implementação no nível da rede e das camadas de sessão. Essa abordagem também é usada na programação. Vamos considerar todas as camadas do modelo OSI e determinar quais são de nosso interesse:
  1. Camada física — Esta camada lida com as leis da física e como usá-las para nossos propósitos. Por exemplo, criar cabos e colocá-los em entidades da rede.

    Esta camada não nos interessa.

  2. Camada de enlace de dados — Essa camada é responsável pela transmissão de dados aos nós da rede e pela criação de canais de transmissão de dados para objetos físicos.

    Essa camada não nos interessa, a menos que você queira escrever firmware para o hardware que estabelece links de dados.

  3. Camada de rede — Esta camada é para determinar os endereços de usuários de rede individuais e as rotas para eles. É importante aprender mais sobre os detalhes dessa camada, ou seja, endereços de rede.

    Os endereços de rede são definidos por um protocolo especial: o mais comum é o IPv4 (Internet Protocol versão 4). Este é o protocolo que um programador web precisa usar para entrar em contato com outro usuário da rede.

    Um endereço IPv4 consiste em quatro valores de bytes separados por pontos, por exemplo: 192.0.2.235. Você deve se lembrar que esses valores são bytes, o que significa que eles estão dentro do intervalo 0..255.

    Os endereços IP, por sua vez, são divididos em classes. Não podemos simplesmente atribuir a nós mesmos uma bela combinação de números, mas não vamos nos aprofundar muito aqui. Basta entender que um endereço IP identifica exclusivamente um usuário da rede e pode ser usado para entrar em contato com esse usuário.

  4. Camada de transporte — Essa camada lida com a entrega de informações a um destinatário. Vários protocolos são usados ​​para fazer isso. Por enquanto, não estamos interessados ​​neles. Estamos muito mais interessados ​​no conceito de port , que aparece nessa camada.

    As portas são responsáveis ​​por identificar um aplicativo específico em um computador. Por exemplo, suponha que você escreva um aplicativo de bate-papo em Java, instale-o em 2 computadores e queira enviar uma mensagem para seu amigo. Sua mensagem é empacotada, enviada para um endereço IP específico e entregue ao seu amigo, mas o computador dele não sabe o que fazer com as informações recebidas, pois não entende qual aplicativo deve processar sua mensagem. Quando as entidades de rede se comunicam, as portas são usadas para indicar qual aplicativo deve processar as informações.

    A porta é um número no intervalo de 0 a 65535. Ela é adicionada ao endereço IP após dois pontos: 192.0.2.235:8080 . Mas você não pode usar todas as portas no intervalo especificado: algumas delas são reservadas para o sistema operacional, outras são normalmente usadas para fins específicos. Não vamos nos aprofundar nos propósitos de portas diferentes. Por ora, basta entender seu papel no processo de comunicação na rede.

  5. Camada de sessão — Esta camada cria e gerencia sessões de comunicação. Nessa camada, torna-se possível que os aplicativos interajam, enviando solicitações de nível de serviço. O que precisamos saber é que nesta camada é aberta uma sessão entre dois usuários, e temos que trabalhar com a sessão.

    Uma sessão é uma entidade criada quando uma conexão é estabelecida entre dois usuários. Ele pode armazenar informações necessárias sobre um usuário e sobre o histórico de interação com o usuário. Um detalhe importante é que quando a troca de informações para, a sessão não desaparece. Em vez disso, ele retém seu estado por um determinado período de tempo, para que os usuários possam continuar trocando informações após um intervalo.

    Se um aplicativo estiver se comunicando com vários usuários ao mesmo tempo, um número correspondente de conexões (e, portanto, sessões) será estabelecido. Cada sessão possui um identificador único (ID) , que permite ao aplicativo distinguir entre os usuários com os quais está se comunicando.

  6. Camada de apresentação — Esta camada é responsável por codificar/decodificar dados. Obviamente, se precisarmos enviar a string "Hello web" para outro usuário, ela primeiro é convertida em (codificada como) código binário e só então é enviada. Ao chegar ao destinatário, a mensagem é convertida de volta (decodificada) e o destinatário pode ver a string original. Essas ações ocorrem na camada de apresentação.

  7. A camada de aplicação é a camada mais interessante para nós. Ele permite que os aplicativos se comuniquem com a rede. Nessa camada, recebemos e enviamos mensagens e fazemos solicitações a serviços e bancos de dados remotos.

    Existem muitos protocolos usados ​​nesta camada: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET e, claro, HTTP/HTTPS. Um protocolo é um acordo universal ao qual aderimos ao nos comunicarmos. Definitivamente, forneceremos uma discussão detalhada separada sobre HTTP/HTTPS.

Parte 1. O que você precisa saber antes de aprender Spring e JavaEE - 2Não precisamos saber como cada camada do modelo funciona. O principal é entender os princípios por trás do funcionamento dos elementos com os quais teremos que trabalhar ao escrever aplicações web, a saber:
  • Endereço IP — O endereço do usuário na rede
  • Porta — O endereço do aplicativo de um usuário específico
  • Sessão — Uma entidade que existe durante todo o período de comunicação entre dois usuários
  • Protocolos de aplicação (HTTP/HTTPS) — São regras que seguiremos ao redigir e enviar mensagens.
Quando visitamos uma loja online, por exemplo, indicamos seu endereço e porta. Em nossa primeira visita, uma sessão é criada. A loja pode registrar informações na sessão. Por exemplo, a loja pode salvar informações sobre itens que deixamos no carrinho de compras. Se fecharmos a aba com a loja online e depois voltarmos a ela mais tarde, nossos itens ainda estarão no carrinho porque estão salvos na sessão. Claro, todas as informações que recebemos da loja, recebemos através do protocolo HTTP/HTTPS, e nosso navegador sabe como processá-las. Você pode contestar, dizendo que nunca inseriu o endereço e a porta no navegador e estaria parcialmente certo. O que você fez foi inserir o nome de domínio, que foi convertido por um servidor DNS. Vamos dar uma olhada melhor no que é o que aqui.

DNS (Sistema de Nomes de Domínio)

Como já aprendemos, cada usuário da rede possui um endereço único. Se estivermos falando sobre o aplicativo, seu endereço exclusivo será IPv4-address:port . Se você conhece esse endereço, pode acessar diretamente o aplicativo. Imagine que escrevemos um aplicativo da web que exibe a temperatura média do ar em todos os países em tempo real. Nós o implantamos em um servidor com o endereço 226.69.237.119, na porta 8080. Para receber nossas informações, o usuário deve inserir 5 números no navegador: 226.69.237.119:8080. As pessoas não gostam de memorizar conjuntos de números: muitos de nós não conseguem se lembrar de mais de dois números de telefone. É por isso que o Sistema de Nomes de Domíniofoi inventado. Podemos criar um "alias" para o nosso endereço, por exemplo, world-temperature.com. Em vez de nos procurar usando um endereço composto por cinco números difíceis de lembrar, o usuário pode inserir nosso nome de domínio na barra de endereço do navegador. Existem servidores DNS que mapeiam nomes de domínio para endereços reais. Por exemplo, quando um usuário insere codegym.cc em um navegador, sua solicitação é enviada para um servidor DNS, que o converte no endereço real. Parte 1. O que você precisa saber antes de aprender Spring e JavaEE - 4Isso é importante para nós entendermos, porque nossos aplicativos chamarão serviços remotos tanto por nomes de domínio quanto por endereços reais. Precisamos entender que em ambos os casos os serviços são os mesmos. Por enquanto é isso! Neste artigo, examinamos os fundamentos da rede, que serão úteis quando você começar a aprender a programar na web.Na próxima vez, veremos o que é uma arquitetura cliente-servidor e por que é tão importante entendê-la. Parte 2. Vamos falar um pouco sobre arquitetura de software Parte 3. HTTP/HTTPS Parte 4. Os fundamentos do Maven Parte 5. Servlets e Java Servlet API. Escrevendo um aplicativo Web simples Parte 6. Contêineres de servlet Parte 7. Apresentando o padrão MVC (Model-View-Controller)
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION