Você está na página 1de 9

NAUR JOÃO JANZANTTI JÚNIOR (8021819)

Pós-Graduação a Distância
Plataforma de Desenvolvimento Web

DO HTML1.0 AO HTML 5.0 E AS TECNOLOGIAS DA


CAMADA DE APLICAÇÃO QUE TRANSFORMARAM A
INTERATIVIDADE NA WEB

Tutor: Prof. Dr. Rodrigo de Oliveria Plotze

Claretiano - Centro Universitário

CAMPINAS (POLO)
2018
DO HTML1.0 AO HTML 5.0: AS TECNOLOGIAS DA CAMADA
DE APLICAÇÃO QUE TRANSFORMARAM A
INTERATIVIDADE NA WEB

Resumo: Apresenta a evolução das principais tecnologias da camada de aplicação utilizadas na


web entre um cliente e o servidor que influenciaram no desenvolvimento das aplicações.
Percorrendo desde o surgimento da web com o protocolo HTTP, as tecnologias COMET até o
atual padrão HTML 5.0 e o protocolo WebSocket. São apresentadas as vantagens que o
protocolo WebSocket prove as novas aplicações em tempo real da web.

Palavras-chave: hipertexto, http, html, comet, websocket.

1. INTRODUÇÃO

Este artigo objetiva descrever como a evolução das tecnologias da camada de aplicação e
as mudanças na linguagem HTML, desde a sua origem até o atual padrão HTML 5.0,
possibilitaram as transformações na aplicações existentes na web, inicialmente em páginas
estáticas para aplicações em tempo real.
Numa aplicação em rede, como a web, os serviços providos pela camada de aplicação por
meio de seus protocolos estabelecem a maneira como uma aplicação cliente e o servidor trocam
informações.
As características destes serviços providos pela camada de aplicação estabelecem um
contorno das possibilidades das aplicações ou das dificuldades a serem superadas pelas
aplicações (KUROSE; ROSS, 2010, p. 71).
Assim, estas características interferem no modo como os usuários interagem com as
aplicações existentes na Rede Mundial de Computadores (em inglês: World Wide Web -
acrônimo www), também conhecida pelo termo em inglês web.
Na web, tudo o que um usuário percebe são páginas construídas na linguagem HTML, e
está também é impactada pela evolução da tecnologia da camada de aplicação (WAINER, 2011).
E por outro lado, as novas aplicações que demandam interações mais ricas com os
usuários estimulam atualizações na linguagem HTML (SYNODINOS, 2008) e por sua vez deve
ser suportada por uma nova evolução na tecnologia da camada de aplicação.
Estas mudanças, tanto na linguagem HTML quanto na tecnologia da camada de
aplicação, não são transparentes para os desenvolvedores de aplicações web que necessitam
assimilá-las.
Dentro deste contexto, da relação de interdependência da tecnologia da camada de
aplicação e a linguagem HTML e da imposição que os desenvolvedores de aplicações web
acompanhem este movimento exprime a importância e a relevância deste tema.
É importante explicitar que o ponto central deste artigo é na perspectiva das mudanças
que ocorreram desde os primórdios da web nas tecnologias de comunicação, protocolos da
camada de aplicação, entre um cliente web e um servidor web e sua relação com a linguagem
HTML, uma vez que um usuário quando utiliza um correio eletrônico como exemplo, por meio
de um cliente web (navegador) estão envolvidas outras tecnologias que lidam com segurança, a
estruturação das informações trocadas, armazenamento e processamento das informações,
distribuição das informações, velocidade das informações entre outras que sem dúvida também
tiverem uma evolução, mas não são escopo deste artigo.
Este artigo é resultado de uma revisão bibliográfica e está organizado da seguinte forma.
Inicialmente será apresentado como surgiu a web em 1991, suas características iniciais e alguns
trabalhos que a influenciaram. Em seguida é apresentado os avanços e adaptações surgidas
durante o período que ficou conhecido como Web 2.0 e as tecnologias COMET (push, pooling e
stremming). E por último é apresentado o protocolo WebSocket no HTML 5.0 e suas vantagens
no desenvolvimento de aplicações em tempo real.

2. DESENVOLVIMENTO

2.1 WEB: surgimento e seus precursores

A dificuldade em compartilhar informações entre os pesquisadores dos vários projetos


existentes no Laboratório Europeu de Partículas Física em Genebra (CERN) no qual Tim
Berners-Lee trabalhava foi a principal motivação para criar a web conforme descrito em seu
artigo Berners-Lee et al. (1994) e em sua bibliografia (BERNER-LEE, 2017).
Berners-Lee fez uma proposta inicial em 1980, que posteriormente foi aprimorada e em
implementada em 1991 dando origem a web.
O trabalho de Berners-Lee consistiu em implementar o conceito de hipertexto.
Hipertexto é o termo que remete a um texto no qual se agregam outro conjunto de
informações na forma de blocos de textos, palavras, imagens ou sons, cujo acesso se dá por meio
de referências específicas, no meio digital denominadas hiperligacões. Estas hiperligações
ocorrem na forma de termos destacados no texto, ícones, gráficos ou imagens e têm a função de
interconectar os diversos conjuntos de informação, oferecendo acesso sob demanda às
informações que estendem ou complementam o texto principal.
O termo hipertexto foi cunhado em 1965, pelo filósofo e sociólogo Ted Nelson (1967)
que o definiu como escrita não sequencial. A inspiração para as ideias de Nelson é originária do
trabalho de Bush (1945) onde descrevia o dispositivo “Memex” que deveria suportar hipertexto.
Sistemas como Xanadu (1960, n.p.) e HyperCard (1989, p. S3), para citar os mais
conhecidos pela literatura implementaram de algum modo o conceito de hipertexto. Mas foi o
sistema implementado por Berners-Lee sobre a iminente rede de computadores conhecida como
Internet que rapidamente se transformou na web que conhecemos.

2.2 WEB: HTTP e HTML

Berners-Lee elaborou o conceito de hipertexto por meio da linguagem de marcação para


hipertexto, HTML - Hypertext Markup Language (BERNERS-LEE et al., 1994). Em HTML a
ligação entre texto é feita de modo simples, apenas de maneira unidirecional, onde o atributo
REL do elemento A descreve o relacionamento para o próximo documento.
Juntamente com a linguagem HTML, Berners-Lee propôs um protocolo de comunicação
chamado protocolo de transferência de hipertexto, HTTP - Hypertext Transfer Protocol (IETF,
1996), utilizado para transmitir dados na web, onde os dados transmitidos (arquivos html,
imagem, som, etc.) são denominados por recursos.
Conforme descrito por Kurose e Ross (2010, p. 73) o funcionamento do protocolo HTTP
consiste em uma abertura de conexão partindo do cliente web que em seguida envia uma
requisição (request), o servidor web retorna uma resposta (response), normalmente contendo o
recurso solicitado. A representação do funcionamento do protocolo HTTP de acordo com Hock-
Chuan (2009) é reproduzido a seguir.
Figura 1. Funcionamento do protocolo de comunicação HTTP utilizado pela web.

Mensagem de requisição
HTTP (request)

Mensagem de resposta
HTTP (response)

Cliente HTTP Servidor HTTP


navegador web Servidor Web
Fonte: Adaptado de Hock-Chuan (2009).

Conforme pode ser observado o protocolo HTTP não guarda o estado da conexão, a cada
novo recurso solicitado pelo cliente web uma novo ciclo conexão-requisição-resposta é realizado
e fecha conexão, assim o HTTP é caracterizado com a palavra stateless que indica sem estado,
ou seja, não guarda informação sobre as conexões realizadas e os dados enviados. Outra
características importante para este estudo é que o protocolo de comunicação HTTP é half-
duplex, que indica que o servidor nunca comunica com o cliente, ele sempre responde a uma
requisição ao cliente em resposta ao cliente. O servidor somente responde.
Protocolo half-duplex somente um lado é ativo o outro é passivo, onde apenas um lado
comunica e o outro responde.
Como aponta Furukawa (2011), as aplicações baseadas na web têm muitas vantagens
sobre aplicações customizadas desenvolvidas nativamente sobre os sistemas operacionais que
são: 1) independência de plataforma - sistemas web rodam em qualquer sistema operacional
necessitando apenas de um navegador; 2) fácil de desenvolver - existem muitas ferramentas de
desenvolvimento de aplicações web; 3) e fácil de distribuir a versão mais recente - para
atualização de uma aplicação web basta substituir a última versão no servidor de web uma vez
que a aplicação é carregada do servidor web antes de ser executada.
Com base nessas vantagens a web desenvolveu-se e novas aplicações foram surgindo.
Aplicações que inicialmente eram baseada em conteúdo estático foram dando lugares a
aplicações com conteúdo dinâmico onde a cada nova requisição o conteúdo é dinamicamente
gerado. Estas aplicações são geradas a partir do servidor web que criam novos conteúdos a partir
de conexões com outros sistemas como os banco de dados. Aplicações como sistemas de vendas,
acompanhamento de vendas de ações, bancos eletrônico entre outras ganham a web que entra em
nova fase.

2.3 Conteúdo dinâmico e tecnologias COMET

Para prover as novas aplicações de informações em tempo real a web necessitava de


mudanças, pois conforme as vantagens da web apresentadas por (FURUKAWA, 2011) o autor
descreve uma grande desvantagem para estas novas aplicações:

Apesar dessas vantagens, as aplicações baseadas na Web tinham uma grande


desvantagem, ou seja, uma aplicação web (baseada em HTML) não pode fazer uma
comunicação full-duplex com um aplicativo de servidor porque no prtocolo HTTP a
comunicação começa apenas a partir de um cliente web. Isso significa que um servidor
não pode enviar nenhuma informação para um cliente sem acesso do cliente.

Portanto para obter um dado atualizado o usuário deve realizar uma atualização manual
da página. Isto não é obviamente considerado uma solução.
Para resolver este problema de fornecer aplicativos na web em tempo real vários
mecanismos de envio de dados pelo lado do servidor foram elaborados. Comumente referenciado
na literatura como COMET, conceito criado por Russell (2006) que engloba várias tecnologias
tais como “polling”, “long polling”, “http server push”, “Ajax push”, “reverse Ajax”, “two-way-
web”, “HTTP streaming” entre outras tecnologias, todas com o propósito de permitir que o
servidor envie informações atualizadas sem uma requisição explícita do lado cliente web.
Assim a partir de 2005, COMET é a base de várias técnicas da web que passa a ser
denominada pela expressão Web 2.0 (O’REILLY, 2005), representada por aplicações em tempo
real e uma interface de aplicação com o usuário rica em recurso, exemplos de aplicações que
descrevem esta nova fase da web são blogs e chats, mídias sociais colaborativas e redes sociais.
COMET é provido por programação que mantém a conexão HTTP aberta por um tempo
indefinido depois do envio da resposta, permitindo que o servidor reuse esta conexão para enviar
informações adicionais ao navegador (SYNODINOS, 2008). COMET não é bidirecional, e não
permite o envio de dados binários. Mas tem a vantagem de funcionar com navegadores e
servidores web baseados no tradicional protocolo HTTP e na linguagem HTML 4.0 (W3C,
1998).
Este mecanismo funciona bem mas tem algumas ressalvas como observado por
(FURUKAWA, 2011).

No entanto, esta tecnica exige que uma sessão de comunicação HTTP seja iniciada para
cada solicitação. É um esforço no servidor Comet e é impossível enviar informações
sobre eventos de clientes para o servidor Comet. Isso significa que é difícil realizar uma
aplicação de controle "verdadeira" usando o Comet.

Em última análise, todos essas técnicas para fornecer dados em tempo real envolvem
cabeçalhos de solicitação HTTP e resposta, que contém muitos dados de cabeçalho adicionais e
desnecessários e introduzem latência na rede e é de difícil programação.

2.4 WebSocket e HTML 5.0

Como parte do padrão HTML5 (W3C, 2014) um novo recurso foi proposto, o protocolo
WebSocket (IETF, 2011), com a finalidade de oferecer verdadeira capacidade de comunicação
full-duplex para aplicações baseada na web. O protocolo WebSocket é independente da
padronização HTML5. No entanto, HTML 5 utiliza a especificação da API WebSocket (W3C,
2012) para habilitar aplicativos web manterem as comunicações bidirecionais com os processos
do lado do servidor.
WebSocket ser full-duplex significa que um cliente e um servidor podem enviar
mensagens independentes um dos outros. O conceito de bidirecional significa que um cliente
pode enviar uma mensagem para um servidor e vice versa. O protocolo WebSocket fornece um
protocolo de comunicação full-duplex e bidirecional através um uma única conexão TCP.
Como definido na especificação do protocolo WebSocket (IETF,2011):
O objetivo é oferecer suporte a mensagens textuais e binárias, bi-direcionais, entre o
navegador e o servidor web, padronizado pela RFC6455. O novo padrão permite a
criação de aplicações full-duplex, por exemplo chat e vídeo-conferência, sem onerar o
navegador com lógica de pooling e reusando a mesma conexão HTTP, o que também
economiza recursos no servidor. Outra vantagem do WebSocket é não necessitar abrir
portas adicionais no firewall. O WebSocket também permite trafegar mensagens
assíncronas enviadas pelo servidor (push) ou pelo cliente (poll) simplificando
aplicações que demandam atualizações em “tempo real”.

Gerenciar um aplicativo web com o protocolo WebSocket é facil usando a API


WebSocket por meio javaScript em comparação com as tecnologias COMET (FURUKAWA,
2011), ou seja WebSocket é uma evolução sobre AJAX e suas variantes (SYNODINOS, 2008).

3. CONSIDERAÇÕES FINAIS

Conforme mostrado neste artigo, os aplicativos web podem ser construídos usando o
protocolo WebSocket e o padrão HTML5, já suportado pela maioria dos navegadores atuais. O
protocolo Websocket é a mais moderna tecnologia de comunicação e superior ao protocolo
HTTP origninalmente proposto para web. É importante enfatizar que agora não são necessários
complementos para executar aplicativos WebSocket, apenas um navegador da Web baseado em
HTML5.
Outra vantagem descrita é a simplicidade de se desenvoler aplicativos web com
WebSocket por meio de programação javaScript utilizando a API WebSocket e com isto
possibilita que os desenvolvedores podem criar aplicativos ricos em intereção e em tempo real
antes restrito as grande empresas de software como Google com seus aplicativos gmail e google
maps e Facebook.

REFERÊNCIAS

BERNERS-LEE T.J. Sir Timothy Berners-Lee OM, KBE, FRS, FREng, FRSA Longer
Biography. Disponível em: <https://www.w3.org/People/Berners-Lee/Longer.html>. Acessado
em: 19 mai. 2018.

BERNERS-LEE T.J., et al. The World Wide Web. Communications of the ACM, Volume 37
Issue 8, August 1994, p. 76-82. Disponível em:
<https://dl.acm.org/citation.cfm?doid=179606.179671>. Acessado em: 19 mai. 2018.
NELSON, T. H. Getting it out of our System Information Retriviel: A Critical Review. G.
Schecher(ed). Thompson Books. 1967.

BUSH, Vannevar. As We May Think. The Atlantic Monthly. July,1945 p. 101-108. Disponível
em: <https://www.theatlantic.com/magazine/archive/1945/07/as-we-may-think/303881/>.
Acessado em: 19 mai. 2018.

FURUKAWA, Y. Web-based control application using WebSocket. In: Proceedings of


ICALEPCS2011, 2011. Grenoble, France. Disponível em: <
http://accelconf.web.cern.ch/AccelConf/icalepcs2011/papers/wemau010.pdf>. Acessado em: 05
mai. 2018.

HYPERCARD. A Hypercard Primer. InfoWorld, 6 nov. 1989, p. S3. Disponível em:


<https://books.google.com/books?id=qjAEAAAAMBAJ&pg=PT60>. Acessado em: 20 mai.
2018.

HOCK-CHUAN, C. Introduction to HTTP basics. Disponível em:


<https://www.ntu.edu.sg/home/ehchua/programming/webprogramming/HTTP_Basics.html>.
Acessado em: 20 mai. 2018.

INTERNET ENGINEERING TASK FORCE (IETF). Hypertext Transfer Protocol – HTTP 1.0.
Maio 1996. Disponível em: < http://www.ietf.org/rfc/rfc1945.txt>. Acessado em: 20 mai. 2018.

______. The WebSocket Protocol. Dezembro 2011. Disponível em:


<http://tools.ietf.org/html/rfc6455>. Acessado em: 20 mai. 2018.

KUROSE, J. F.; ROSS, K. W. Redes de Computadores e a Internet: Uma nova abordagem top-
down. 5. ed. São Paulo: Addison Wesley, 2010.

O’REILLY, Tim. What is Web 2.0: design patterns and business models for the next generation
of software. Disponível em:
<http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html.> Acessado
em: 19 mai. 2018.

PROJECT XANADU. The Original Hypertext Project 1960. Disponível em:


<http://xanadu.com/xuspViewer.html>. Acessado em: 20 mai. 2018.

RUSSELL, Alex. Comet: Low Latency Data for the Browser by Alex Russell. Disponível em:
<http://infrequently.org/2006/03/comet-low-latency-data-forthe-browser/>. Acessado em: 20
mai. 2018.

SYNODINOS, D. HTML 5 Web Sockets vs. Comet and Ajax. InfoQ.com dez. 2008. Disponível
em <https://www.infoq.com/news/2008/12/websockets-vs-comet-ajax>. Acessado em: 19 mai.
2018.

WAINER, P. HTML5 in the browser: HTML5 data communications. InfoWord.com, fev. 2011.
Disponível em: <https://www.infoworld.com/article/2623204/html5/html5-in-the-browser--
html5-data-communications.html>. Acessado em: 23 mai. 2018.
WORLD WIDE WEB CONSORTIUM (W3C). HTML 4.0 - Hypertext Markup Language
specifications: W3C Recommendation 24 April 1998. Disponível em:
<https://www.w3.org/TR/1998/REC-html40-19980424/>. Acessado em: 23 mai. 2018.

______. HTML 5 - Hypertext Markup Language specifications: W3C Recommendation 28


October 2014. Disponível em: <https://www.w3.org/TR/2014/REC-html5-20141028/>.
Acessado em: 19 mai. 2018.

______. The WebSocket API: W3C Candidate Recommendation 20 September 2012. Disponível
em: <https://www.w3.org/TR/websockets/>. Acessado em: 20 mai. 2018.

Você também pode gostar