Recentemente Mark Nottingham, presidente do Grupo de Trabalho do HTTP na IETF, tentou responder a pergunta O que é a Web? Como ele disse, essa pergunta deveria ter uma resposta simples, uma vez que todos usam a Web, mas que no fundo acaba sendo bastante controverso. Nottingham inicia com:
Durante muito tempo, a definição mais aceita de Web é de algo que tem uma URL. Essa é a visão do "sistema de informação da web". Vem sendo percebido que os três pilares da Web são: identificadores, formatos e protocolos. As URLs são as mais universais e estáveis.
Infelizmente como Nottingham mencionou, essa visão tem limitações. Por exemplo: por essa definição o WS-* estava na Web e ainda muitas pessoas tentam debater isso. Do mesmo modo, muitos serviços RESTFul estariam nessa definição, já que todos eles possuem URLs e os benefícios do HTTP. No entanto, nenhuma das abordagens podem ser usadas normalmente no navegador de modo significativo:
[...] na melhor das hipóteses obtém um retorno no formato blob de XML ou JSON, sem o uso correto dos links. No entanto há exceções, tal como as pessoas da indústria fazendo APIs de hipermídia, elas são as exceções.
Isso, então mostra uma definição mais restrita do significado de estar na Web: alguma coisa que pode ser feita no navegador. Obviamente isso incluí qualquer coisa que tem uma definição de URL, HTTP e HTML, se o navegador não estiver envolvido.
A visão "o que pode ser feito no navegador Web" tem mudado para o que agora é chamado de Plataforma Web [...] e sendo o elemento central do que está acontecendo no W3C. O W2C tem focado muito em tornar a Web em uma plataforma que pode competir com os seus concorrentes, isto é o iOS e Android.
No entanto, como Nottingham mencionou, está definição não cai bem com tudo. Roy Fielding twittou:
Novamente, com mais sentimentos… a Web não é a "Plataforma Web"; isso é apenas como alguns usuários de arquiteturas tentam suprimir a originalidade, a favor de um sistema operacional fraco.
Apesar de Nottingham concordar com Fielding em certo grau e que isso será sempre útil para usuários sem navegadores, a Plataforma Web é especialmente interessante quando falamos de interoperabilidade e padrões.
Isso porque assumimos que os navegadores definem a Web como uma "plataforma" cheia de questões que pensamos estar resolvidas, mas que foram jogadas no ar novamente.
Por agora, a definição de pontos de extensão em padrões tipicamente precisam de formulário de coordenação. Tal como o uso dos registros dos IETFs. No entanto, se os navegadores são componentes da Plataforma Web então...
[...] não serão necessários registros e namespaces; basta editar a especificação - fornecer as informações completas dessa especificação refletindo o que é esperado dos navegadores. O argumento será na Web baseada nos navegadores, outros softwares usando essa especificação não devem divergir do comportamento dos navegadores Web, porque fazendo dessa forma poderá causar problemas de interoperabilidade e, assim, reduzir o valor do software. Então, apenas garanta que os navegadores estão caminhando em passos firmes e documente o que eles fazem nas especificações; não será necessário nenhum registro mal elaborado.
Como observado, isso pode ser usado na especificação do WebCrypto para documentar quais algoritmos estão disponíveis. Porque os navegadores implementam o que quiserem ser compatíveis e interoperáveis. Uma vez que essa abordagem funcione bem, é provável que tenhamos outras APIs e especificações orientadas para navegadores. No entanto, há situações nas quais isso não está muito claro, como por exemplo:
Na área do HTTP, por exemplo, reconhecemos que outros agentes de usuários como rastreadores na Web (Web crawlers) e ferramentas de testes querem ficar perto dos navegadores, enquanto outros usos de protocolos não querem se envolver com navegadores. Os links relacionados são amplamente baseadas em tornar a especificação do HTML5 prática, por isso usamos um wiki e falamos sobre como fazer o mesmo com as especificações do IETF.
Conforme Nottingham, outra área que a abordagem focada no navegador Web produz soluções interessantes é o versionamento. Muitas implementações de navegadores mudaram seus ciclos de lançamentos para versões mais curtas do que antigamente, alguns até com atualizações automáticas. Portanto, o lançamento de versões de especificações do HTML, entre outros, não ajudam, porque o que é importante é o que está implementado atualmente.
Isso permite que as especificações se tornem como "Padrões de Vida", [...] tal como, atualizações constante de documentos, baseando não apenas na evolução natural dos documentos (sendo uma API, formato ou conceito), mas também incorporando correções de bugs, exemplos aperfeiçoados e um melhor alinhamento com a realidade do que a Web atualmente é.
O problema aqui é que essa abordagem provavelmente não funcionará muito bem com aqueles não interessados em usar navegadores.
Por exemplo, pessoas que querem definir critérios de conformidade para o governo acharam isso enlouquecedor. Isso também pode se referir a documentações problemáticas.
Como de costume, uma versão raramente conterá tudo e Nottingham acredita que a abordagem do versionamento "da web" será abordada com base em cada caso, com um versionamento meticuloso para algumas coisas como o HTTP e nem tanto para outras como o HTML. É interessante notar que apesar do W3C siga na direção de publicar snapshots de Padrões Vivos, para os usuários que precisam referenciar alguma versão especifica "do termo" no documento. É claro que isso levanta o problema de como tratar as mudanças que quebram a compatibilidade:
A resposta no caso do HTML é que eles tanto a) não irão, ou b) coordenarão isso e resolverão os problemas logo no começo (provavelmente porque já há problemas de interoperabilidade e foi considerado o menor mal). Para outras coisas como mudanças em API, liberar as coisas com novos nomes (mesmo que sendo apenas o último digito) permite realizar implementações de forma incremental, mantendo em mente que a especificação é para assuntos novos e ainda mantém o estilo de estar "vivo".
O que faz dessa definição de Web significar para o modesto navegador e também a abordagem de seguir o navegador como uma definição de Web? Bem, como Nottingham discute, tem sido um longo tempo que os navegadores são clientes dominantes da "janela" para a Web.
[...] agora temos telefones, TVs, carros e muito mais fazendo parte da Web. Essa pressão para incluir mais tipos de dispositivos, juntos com navegadores não tradicionais surgindo de lugares como China e Índia, colocaram o modelo "siga o navegador" sob uma certa quantidade de stress.
Como Nottingham iniciou a notícia com a questão "O que é a Web?", pode parecer simples e todos acreditamos saber a resposta, mas a realidade é um pouco diferente. Como a Web continua evoluindo, com mais mudanças nos protocolos como o HTTP, e navegadores, mais a influência dos dispositivos móveis, internet das coisas, entre outros, sendo que "na Web" e a definição de "O que é a Web?" possuindo variações.
Na sua opinião, o que é a Web?