Você está na página 1de 47

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE

INSTITUTO METRÓPOLE DIGITAL

AULA 02
DESENVOLVIMENTO PARA
SISTEMAS WEB II

PROF. JANIHERYSON FELIPE


CONTEÚDO DESSA AULA

CONHECER A HISTORIA E O FUNCIONAMENTO DA INTERNET;

CONHECER O A ARQUITETURA CLIENTE-SERVIDOR;

CONHECER ALGUNS TERMOS UTILIZADOS NA PROGRAMAÇÃO BACKEND;

DISCUSSÕES E DÚVIDAS GERAIS.


SURGIMENTO DA INTERNET

A internet teve sua origem em meados


dos anos 60, durante a guerra fria, como
um esforço norte-americano de proteger
suas comuniçações de possíveis ataques
Russos. Assim, em 1966 surge a Arpnet,
conhecida com a "mãe" da web atual,
sendo desenvolvida pela Agência de
Projetos de Pesquisa Avançada (ARPA ).

No dia 29 de outubro de 1969 foi


estabelecida a primeira conexão entre a
Universidade da Califórnia e o Instituto
de Pesquisa de Stanford
SURGIMENTO DA INTERNET

Com o passar do tempo a Arpnet deixei seu caracter militar e passou a


ter um uso mais cientifico, sendo utilizada em diversas universidades
Americanas.

O protocolo de comunicação usado na época era o NCP (Network


control protocol). Esse protocolo permitia a intercomunicação de
computadores, mas apresentava dificuldade de estabelecer outros tipos
de comunicação.
SURGIMENTO DA INTERNET

Apesar de seu sucesso, o protocolo NCP não era suficiente para se


comunicar com redes ou máquinas fora da ARPANET, como redes de
pacotes por rádio ou satélite.

Por isso, em 1974 Robert Kahn e Vinton Cerf desenvolveram uma nova
versão do protocolo que respondia a um ambiente de rede de
arquitetura aberta. Esse novo protocolo foi chamado de TCP/IP.

O protocolo TCP/IP, mais do que agir como um controlador, facilitava a


comunicação entre redes sem a necessidade de que estas fizessem
alterações em sua interface.
SURGIMENTO DA INTERNET
SURGIMENTO DA INTERNET

No início dos anos 80, mais precisamente em 1983, a ARPANET mudou o


protocolo NCP para o novo TCP/IP. O IP havia se tornado o serviço
portador da Infraestrutura de Informação Global.

Em 1985, a Internet já estava consolidada como a principal rede de


comunicação com alcance global.

O protocolo TCP/IP garantia que nenhum pacote de informações fosse


perdido e verificava se eles chegavam íntegros no destino.

as primeiras redes de computadores estavam restritas a um público de


cientistas, engenheiros e funcionários do governo
SURGIMENTO DA WWW (WORLD WIDE WEB)

Em 1989, Tim Berners-Lee desenvolveu a World Wide Web para facilitar o


trabalho colaborativo no CERN.
SURGIMENTO DA WWW (WORLD WIDE WEB)

Basicamente, a WWW funciona como um


sistema de distribuição de documentos
de hipertexto (HTTP) interconectados e
acessíveis por meio de um navegador
web conectado à Internet.

O sistema se tornou tão popular no CERN


que, em 1991, foi aberto ao público
externo. Isso foi possível graças à criação
do navegador Mosaic em 1993. De fato,
sua recepção foi tão rápida que em 1997
havia mais de 200 mil sites.
SURGIMENTO DA WWW (WORLD WIDE WEB)
Com o advento do TCP/IP, redes individuais, educacionais e comerciais
começaram a ter acesso à comunicação quase imediata e às informações
disponíveis oferecidas pela Internet. A conectividade deixou de ser
exclusiva e se tornou disponível para todos graças à WWW.
TERMOS USADOS NO MUNDO
DA PROGRAMAÇÃO WEB
PROGRAMAÇÃO BACKEND VS FRONTEND

BACKEND: A parte do sistema que lida com a lógica de negócios,


manipulação de dados e interação com o banco de dados. É
responsável por processar solicitações do cliente e enviar as
respostas apropriadas.

FRONTEND: refere-se à parte de um sistema ou aplicativo que os


usuários interagem diretamente. É a interface de usuário, a parte
visível e interativa que permite aos usuários interagir com os dados,
conteúdo e funcionalidades de um aplicativo ou site.
PROGRAMAÇÃO BACKEND VS FRONTEND

BACKEND FRONTEND
MICROSERVIÇOS

São uma abordagem arquitetônica para desenvolver software em


que uma aplicação é dividida em pequenos serviços
independentes, cada um executando uma função específica.

Os microserviços são desacoplados, o que significa que um serviço


não depende diretamente do funcionamento interno de outro.
Isso permite atualizações independentes e facilita a substituição
de um serviço sem afetar outros.
MICROSERVIÇOS

Embora a arquitetura de microserviços ofereça benefícios


significativos, como escalabilidade, independência de
implementação e flexibilidade tecnológica, também traz desafios,
como a complexidade da comunicação entre serviços, o
gerenciamento da consistência de dados e a necessidade de
ferramentas eficazes de monitoramento e gerenciamento.

A escolha de adotar microserviços depende das características


específicas do projeto, dos requisitos e da maturidade da equipe de
desenvolvimento
API - INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES

É um conjunto de regras e
definições que permite que
diferentes softwares se
comuniquem entre si. As APIs
permitem que diferentes
componentes de software
interajam, permitindo a troca
de dados e funcionalidades;
API - INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES

Os programadores, geralmente, precisam integrar soluções que já


foram implementadas por outros desenvolvedores em um aplicativo
ou site. Para não se preocuparem em como essas soluções
funcionam ou que tipo de código possuem, são usadas as APIs
como meio de comunicação entre sistemas.

Por exemplo, o sistema de software do instituto meteorológico


contém dados meteorológicos diários. A aplicação para a previsão
do tempo em seu telefone “fala” com esse sistema por meio de APIs
e mostra atualizações meteorológicas diárias no telefone.
O HTTP (HYPERTEXT TRANSFER PROTOCOL)
É um protocolo de comunicação utilizado na World Wide Web (WWW) e
em outras aplicações de transferência de dados na internet. Ele é um
protocolo fundamental para a troca de informações entre um cliente
(geralmente um navegador da web) e um servidor web.

Comunicação Cliente-Servidor: O HTTP é um protocolo cliente-


servidor, o que significa que ele permite que um cliente (como um
navegador da web) solicite recursos, como páginas da web, de um
servidor web.

Baseado em Texto: O HTTP é um protocolo baseado em texto, o que


significa que as mensagens HTTP são legíveis por humanos. Isso
facilita o desenvolvimento, a depuração e o entendimento do tráfego
HTTP.
O HTTP (HYPERTEXT TRANSFER PROTOCOL)
Stateless: O HTTP é um protocolo stateless, o que significa que cada
solicitação entre o cliente e o servidor é independente das
solicitações anteriores. O servidor não mantém informações sobre as
solicitações anteriores do cliente, tornando-o simples, mas requer
que os aplicativos gerenciem o estado, se necessário, para isso foram
criados o Cookies e a Session.

Métodos HTTP: O HTTP define vários métodos que indicam a ação a


ser realizada no recurso solicitado. Alguns dos métodos mais
comuns incluem GET (para recuperar informações), POST (para
enviar dados ao servidor), PUT (para atualizar recursos) e DELETE
(para remover recursos).
O HTTP (HYPERTEXT TRANSFER PROTOCOL)

Códigos de Status HTTP: O


HTTP usa códigos de status
para indicar o resultado de
uma solicitação. Por
exemplo, o código 200
indica que a solicitação foi
bem-sucedida, enquanto o
código 404 indica que o
recurso solicitado não foi
encontrado.
O HTTP (HYPERTEXT TRANSFER PROTOCOL)
O HTTP (HYPERTEXT TRANSFER PROTOCOL)

Segurança: O HTTP não é


criptografado por padrão, o
que significa que os dados
transmitidos podem ser lidos
por terceiros. Para melhorar a
segurança, é comum usar o
HTTPS (HTTP Secure), que
adiciona uma camada de
criptografia SSL/TLS para
proteger a comunicação.
O HTTP (HYPERTEXT TRANSFER PROTOCOL)
O HTTP (HYPERTEXT TRANSFER PROTOCOL)
O HTTP (HYPERTEXT TRANSFER PROTOCOL)

HTTP
request
O HTTP (HYPERTEXT TRANSFER PROTOCOL)

HTTP
response
O HTTP (HYPERTEXT TRANSFER PROTOCOL)

Há vários métodos disponíveis, cada um com uma finalidade. O método


determina o que o servidor deve fazer com a URL fornecida no momento
da requisição de um recurso. Os principais são:
GET: Solicita algum recurso do servidor;
HEAD: Variação do GET em que o recurso não é retornado. É usado
para obter informações por meio do cabeçalho da resposta, sem ter
que recuperar todo o conteúdo;
POST: Envia dados para serem processados pelo servidor;
PUT: Envia um recurso ao servidor, como um arquivo por exemplo;
DELETE: Solicita a exclusão de um recurso no servidor;
O HTTPS ( HTTP SECURE)
Utiliza criptografia para proteger os dados transmitidos entre o navegador
do usuário e o servidor web. Isso é especialmente importante quando se
trata de informações confidenciais, como senhas, informações de cartão
de crédito e outros dados pessoais.

Criptografia: TLS (Transport Layer Security) ou SSL (Secure Sockets


Layer);

Autenticação: ajuda a verificar a identidade do servidor web;

Integridade de dados : verifica a integridade dos dados transmitidos.


Isso significa que os dados não foram alterados ou corrompidos
durante a transmissão.
ARQUITETURA CLIENTE-SERVIDOR

A estrutura cliente-servidor é um modelo de arquitetura de rede


amplamente utilizado em ambientes de TI. Nesta abordagem, os
computadores são divididos em dois grupos: servidores, que fornecem
serviços ou recursos, e clientes, que solicitam estes serviços e recursos,
recebendo-os como respostas.
ARQUITETURA CLIENTE-SERVIDOR
Cliente: é um dispositivo de computação, como desktops, laptops,
smartphones, tablets ou aplicativos que, através de protocolos de rede se
conectam a servidores para fazer uma solicitação de serviço ou recurso e
aguarda a resposta.
ARQUITETURA CLIENTE-SERVIDOR
Servidor: é o componente do sistema que fornece os serviços ou recursos
solicitados pelos clientes. Estes servidores podem ser um computador
projetado especificamente para gerenciar e fornecer serviços aos clientes,
ou ainda, um software que é executado em um servidor de rede.
ARQUITETURA CLIENTE-SERVIDOR
Servidores:
Servidor Web;
Servidor Proxy;
Servidor FTP;
Servidor de banco de dados;
Servidor de aplicação;
Servidor de e-mail;
Servidor de backup;
Servidor DHCP;
Servidor DNS;
ARQUITETURA CLIENTE-SERVIDOR

Rede: A rede é a infraestrutura que conecta os clientes ao servidor. Ela


pode ser local, como uma rede de área local (LAN), ou global, como a
internet.

Protocolos de comunicação: Os protocolos de comunicação trata-se


de um conjunto de regras e procedimentos que regem a
comunicação entre o cliente e o servidor. Entre os protocolos mais
comuns estão o HTTP (Hypertext Transfer Protocol) usado na web, o
SMTP (Simple Mail Transfer Protocol) usado no e-mail e o FTP (File
Transfer Protocol) usado para transferir arquivos.
ARQUITETURA CLIENTE-SERVIDOR

Banco de dados: é um componente opcional em uma estrutura


cliente-server e pode ser usado pelo servidor para armazenar e
gerenciar dados usados pelos clientes. Estes dados, podem incluir
informações do usuário, de aplicativos ou informações críticas de
negócios.

Interface de programação de aplicativos (API): Trata-se de uma


camada de software que permite que os aplicativos se comuniquem
com o servidor e acessem seus serviços ou recursos. As APIs podem
ser usadas para desenvolver aplicativos personalizados que se
integram facilmente com o servidor.
O HTTP (HYPERTEXT TRANSFER PROTOCOL)
URLs: As URLs (Uniform Resource Locators) são usadas para
identificar recursos na web. Elas incluem o protocolo (como
"http://" ou "https://"), o nome do servidor e o caminho para o
recurso desejado.
O HTTP (HYPERTEXT TRANSFER PROTOCOL)
URLs:
Esquema (Scheme): Indica o protocolo usado para acessar o recurso.
Exemplos comuns incluem "http://" para páginas da web não seguras e
"https://" para páginas da web seguras. Outros esquemas incluem "ftp://"
para transferência de arquivos, "mailto:" para endereços de e-mail, "file://"
para arquivos locais, entre outros.

Domínio: É o endereço principal que identifica um servidor na Internet.


Por exemplo, "www.exemplo.com" é um domínio.

Caminho (Path): Indica a estrutura de pastas ou diretórios que levam ao


recurso específico no servidor. Por exemplo, "/blog/artigo.html" indica que
você está acessando o arquivo "artigo.html" na pasta "blog" do servidor.
O HTTP (HYPERTEXT TRANSFER PROTOCOL)

URLs:
Query String: É uma parte opcional da URL que pode ser usada
para passar parâmetros ou informações extras para o servidor.
Geralmente, é indicada por um ponto de interrogação seguido de
pares chave-valor, como "?id=123&nome=exemplo".

Fragmento (Fragment): Também é uma parte opcional da URL


que indica uma seção específica do recurso. É indicado por um
símbolo "#" seguido de um identificador, como "#seção1".
O HTTP (HYPERTEXT TRANSFER PROTOCOL)

https://imdtec.imd.ufrn.br/login?page=login
REST - REPRESENTATIONAL STATE TRANSFER
Uma API REST (Representational State Transfer) é um estilo arquitetural
utilizado na construção de serviços web. Ela é baseada em princípios
fundamentais, que incluem:

Recursos (Resources): Os dados ou serviços são considerados


recursos identificáveis por URLs. Cada recurso é único e possui um
identificador único.

Operações bem definidas: As operações sobre os recursos são


padronizadas e geralmente correspondem às operações HTTP,
como GET (para obter dados), POST (para criar novos recursos),
PUT/PATCH (para atualizar recursos) e DELETE (para excluir
recursos).
REST - REPRESENTATIONAL STATE TRANSFER
Representação dos recursos: Os recursos podem ter diferentes
representações, como JSON ou XML. Essas representações são
utilizadas para transmitir e manipular os dados.

Estado (Stateless): Cada solicitação do cliente para o servidor deve


conter toda a informação necessária para entender e processar a
solicitação. O servidor não mantém o estado da sessão do cliente
entre as solicitações.

HATEOAS (Hypermedia As The Engine Of Application State): Os


clientes interagem com a aplicação inteiramente através dos
hiperlinks fornecidos de forma dinâmica pelos aplicativos servidores.
REST - REPRESENTATIONAL STATE TRANSFER

As APIs REST são amplamente utilizadas na construção de serviços

web devido à sua simplicidade, escalabilidade e facilidade de

integração. Elas são comumente utilizadas para criar aplicações web,

serviços de nuvem e integrações entre sistemas. Além disso, as APIs

REST são independentes de linguagem, o que significa que podem

ser consumidas por clientes desenvolvidos em diferentes tecnologias.


RESTFUL
"RESTful" é uma descrição de um sistema que segue os princípios
e restrições do REST.
Um serviço web ou API é considerado RESTful quando adere aos
princípios do REST.
Em outras palavras, um serviço web é chamado de RESTful se
estiver em conformidade com as práticas e diretrizes estabelecidas
pelo estilo arquitetural REST.
É uma implementação específica que segue as diretrizes do REST,
incluindo a utilização adequada de recursos, operações HTTP e a
representação de dados.
FORMATO JSON

JSON, ou JavaScript Object Notation, é um formato leve de


intercâmbio de dados. Ele é fácil para humanos lerem e
escreverem, e fácil para máquinas interpretarem e gerarem.

O JSON é frequentemente utilizado para transmitir dados


estruturados entre um servidor e um cliente, sendo uma escolha
comum em serviços web e APIs REST.
FORMATO JSON

Estrutura de Dados:
O JSON é baseado em duas estruturas de dados fundamentais:
pares chave/valor e listas ordenadas de valores.
Os pares chave/valor são representados como "chave": valor, onde a
chave é uma string e o valor pode ser um número, string, booleano,
objeto JSON, array ou null.
Listas ordenadas são representadas como arrays, envolvidos por
colchetes [ ], contendo valores separados por vírgulas.
FORMATO JSON
Leitura e Escrita Simples:
O JSON é fácil para os humanos lerem e escreverem, devido à sua
sintaxe simples e estrutura clara.
É uma extensão natural dos objetos JavaScript, o que facilita a
integração com aplicativos web.
Suporte em Diferentes Linguagens:
JSON é independente de linguagem, o que significa que pode ser
interpretado e gerado por praticamente qualquer linguagem de
programação.
As linguagens frequentemente oferecem bibliotecas para facilitar a
manipulação de dados JSON.
FORMATO JSON
TECNOLOGIAS DE DESENVOLVIMENTO BACKEND

Você também pode gostar