Um pouco sobre internet :)
Tags: internet, http, dns, ia
Published: 2023-06-20 23:24:53

Olá a todos! Me chamo Douglas Costa e vou compartilhar um pouco do que estou aprendendo e sei com vocês, nada muito técnico e nem escrito da melhor maneira possível, porém com muita vontade e determinação.

Primeiro tema que vou abordar é sobre a internet, um pouco do que todo desenvolvedor DEV saber (foi mal kkk).

**Como a Internet Funciona: Uma Visão Geral**

Em um alto nível, a internet funciona conectando dispositivos e sistemas de computador usando um conjunto de protocolos padronizados. Esses protocolos definem como as informações são trocadas entre os dispositivos e garantem que os dados sejam transmitidos de maneira confiável e segura.

O núcleo da internet é uma rede global de roteadores interconectados, responsáveis ​​por direcionar o tráfego entre diferentes dispositivos e sistemas. Quando você envia dados pela internet, eles são divididos em pequenos pacotes que são enviados do seu dispositivo para um roteador. O roteador examina o pacote e o encaminha para o próximo roteador no caminho até seu destino. Este processo continua até que o pacote chegue ao seu destino final.

Para garantir que os pacotes sejam enviados e recebidos corretamente, a Internet usa uma variedade de protocolos, incluindo o Internet Protocol (IP) e o Transmission Control Protocol (TCP). O IP é responsável por rotear os pacotes para seu destino correto, enquanto o TCP garante que os pacotes sejam transmitidos de forma confiável e na ordem correta.

Além desses protocolos principais, há uma ampla variedade de outras tecnologias e protocolos usados ​​para permitir a comunicação e a troca de dados pela Internet, incluindo o Domain Name System (DNS), o Hypertext Transfer Protocol (HTTP) e o Secure Protocolo Sockets Layer/Transport Layer Security (SSL/TLS). Como desenvolvedor, é importante ter uma compreensão sólida de como essas diferentes tecnologias e protocolos trabalham juntos para permitir a comunicação e a troca de dados pela Internet.

1. Conceitos básicos e terminologia:

- Pacote: Uma pequena unidade de dados que é transmitida pela internet.

- Roteador: Um dispositivo que direciona pacotes de dados entre diferentes redes.

- Endereço IP: Um identificador exclusivo atribuído a cada dispositivo em uma rede, usado para rotear dados para o destino correto.

- Nome de domínio: Um nome legível que é usado para identificar um site. como exemplo google.com

- DNS: O Domain Name System é responsável por traduzir nomes de domínio em endereços IP.

- HTTP: O protocolo de transferência de hipertexto é usado para transferir dados entre um cliente (como um navegador web) e um servidor (como um site).

- HTTPS: Uma versão criptografada do HTTP usada para fornecer comunicação segura entre um cliente e um servidor.

- SSL/TLS: Os protocolos Secure Sockets Layer e Transport Layer Security são usados para fornecer comunicação segura pela internet.

O DNS é parte crítica da infraestrutura da internet, responsável por traduzir nomes de domínio em endereços IP. Quando você insere um nome de domínio em seu navegador da web, seu computador envia uma consulta DNS a um servidor DNS, que retorna o endereço IP correspondente. Seu computador usa esse endereço IP para se conectar ao site ou outro recurso que você solicitou.

2. O papel dos protocolos na internet:
Os protocolos desempenham um papel crítico ao permitir a comunicação e a troca de dados pela internet. Um protocolo é um conjunto de regras e padrões que definem como as informações são trocadas entre dispositivos e sistemas.

3. Introdução ao HTTP e HTTPS:
HTTP é o protocolo usado para transferir dados entre um cliente (como um navegador web) e um servidor (como um site). Quando você visita um site, seu navegador da web envia uma solicitação HTTP ao servidor, solicitando a página da web ou outro recurso solicitado. O servidor então envia uma resposta HTTP de volta ao cliente, contendo os dados solicitados.

HTTPS é uma versão mais segura do HTTP, que criptografa os dados transmitidos entre o cliente e o servidor usando criptografia SSL/TLS (Secure Sockets Layer / Transport Layer Security). Isso fornece uma camada adicional de segurança, ajudando a proteger informações confidenciais, como credenciais de login, informações de pagamento e dados pessoais.

Quando você visita um site que usa o HTTPS, seu navegador exibe um ícone de cadeado na barra de endereço, indicando que a conexão é segura. Você também pode ver as letras "https" no inicio do endereço do site, em vez de "http".

4. Construindo aplicações com TCP/IP:
TCP/IP (Transmission Control Protocol / Internet Protocol) é o protocolo de comunicação subjacente usado pela maioria dos aplicativos e serviços baseados na internet. Ele fornece uma entrega de dados confiável, ordenada e com verificação de erros entre aplicativos executadas em diferentes dispositivos.
Ao criar aplicativos com TCP/IP, há alguns conceitos-chaves a serem compreendidos:

- Portas: As portas são utilizadas para identificar o aplicativo ou serviço em execução em um dispositivo. Cada aplicativo ou serviço recebe um número de porta exclusivo, permitindo que os dados sejam enviados ao destino correto.

- Sockets: Um socket é uma combinação de um endereço IP e um número de porta, representando um endpoint especifico para comunicação. Os sockets são usados para estabelecer conexões entre dispositivos e transferir dados entre aplicativos.

- Conexões: Uma conexão é estabelecida entre dois sockets quando dois dispositivos desejam se comunicar entre si. Durante o processo de estabelecimento da conexão, os dispositivos "negociam" vários parâmetros, como o tamanho máximo do segmento e o tamanho da janela, que determinam como os dados serão transmitidos na conexão.

- Transferencia de dados: uma vez estabelecida a conexão, os dados podem ser transferidos entre os aplicativos executados em cada dispositivo. Os dados normalmente são transmitidos em segmentos, com cada segmento contendo um número de sequência e outros metadados para garantir uma entrega confiável.

5. Protegendo a comunicação da internet com SSL/TLS:
Como falado anteriormente, SSL/TLS é um protocolo usado para criptografar dados transmitidos pela internet. 
Ao usar SSL/TLS para proteger a comunicação na internet, há alguns conceitos-chaves a serem compreendidos:

- Certificados: certificados SSL/TLS são usados para estabelecer confiança entre o cliente e o servidor. Eles contêm informações sobre a identidade do servidor e são assinados por terceiros confiáveis (uma autoridade de certificação) para verificar sua autenticidade.

- Handshake: durante o processo de handshake SSL/TLS, o cliente e o servidor trocam informações para negociar o algoritmo de criptografia e outros parâmetros para a conexão segura.

- Criptografia: Depois que a conexão segura é estabelecida, os dados são criptografados usando o algoritmo acordado e podem ser transmitidos com segurança entre o cliente e o servidor.

Ao criar aplicativos e serviços baseados na internet, é importante entender como o SSL/TLS funciona e garantir que seu aplicativo seja projetado para usar SSL/TLS ao transmitir dados confidenciais, como credenciais de login, informações de pagamento e outros dados pessoais, Você também precisará obter e manter certificador SSL/TLS válidos para seus servidores e seguir as práticas recomendadas para configurar e proteger suas conexões SSL/TLS. Ao fazer isso, você pode ajudar a proteger os dados de seus usuários e garantir a integridade e a confidencialidade da comunicação de seu aplicativo na internet.

6. O futuro: tendências e tecnologias emergentes:
Aqui estão algumas das tendências e tecnologias emergentes que estão moldando o futuro da internet:

- 5G: 5G é a última geração de tecnologia de rede móvel, oferecendo velocidades mais rápidas, menor latência e maior capacidade do que as gerações anteriores. Espera-se que permita novos casos de uso aplicações, como veículos autônomos e cirurgias remotas.

- Internet das coisas (IoT): IoT refere-se à rede de dispositivos físicos, veículos, eletrodomésticos e outros objetos que estão conectados à internet e podem trocar dados. À medida que a IoT continua a crescer, espera-se que revolucione setores como saúde, transporte e manufatura.

- Inteligência artificial (IA): as tecnologias de IA, como aprendizado de máquina e processamento de linguagem natural, já estão sendo usadas para alimentar uma ampla gama de aplicativos e serviços, desde assistentes de voz até detecção de fraudes. À medida que a IA continua avançando, espera-se que ela permita novos casos de uso e transforme setores como saúde, finanças e educação.

- Blockchain: Blockchain é uma tecnologia de contabilidade distribuída que permite transações seguras e descentralizadas. Ele está sendo usado para alimentar uma ampla fama de aplicativos, desde criptomoedas até gerenciamento da cadeia de suprimentos.

- Computação de borda: A computação de borda refere-se ao processamento e armazenamento de dados na borda da rede, e não em data centers centralizados. Espera-se que permita novos casos de uso e aplicativos, como análises em tempo real e aplicativos de baixa latência.

Ao manter-se atualizado com essas e outras tendências e tecnologias emergentes, você pode garantir que seus aplicativos e serviços sejam criadas para aproveitar os recursos mais recentes e oferecer a melhor experiência possível para seus usários.

**CONCLUSAO**
E esse é o final do nosso artigo. Vimos muita coisa, então vamos fazer um breve resumo.

- A internet funciona conectando dispositivos e sistemas de computador usando protocolos padronizados, como IP e TCP.
- O núcleo da internet é uma rede global de roteadores interconectados que direcionam o tráfego entre diferentes dispositivos e sistemas.
- Conceitos básicos e terminologia com os quais você PRECISA se familiarizar, incluem pacotes, roteadores, endereços IP, nomes de domínio, DNS, HTTP, HTTPS e SSL/TLS.
- Os protocolos desempenham um papel crítico ao possibilitar a comunicação e a troca de dados pela internet, permitindo que dispositivos e sistemas de diferentes fabricantes e fornecedores se comuniquem perfeitamente.