Imaster

Como o PHP 7 complementa o HTTP2

A evolução do PHP para a sua sétima versão ocorreu há três meses e já é possível observar impactos de performance, melhoria na economia da memória e algumas mudanças para os usuários. Com a evolução da linguagem, também houve rupturas de paradigmas, como, por exemplo, a depreciação das tags. Esta depreciação pode causar quebra de compatibilidade entre versões, principalmente aos usuários mais desavisados que não fizeram a migração da versão quatro para a versão cinco.

Em sua palestra no PHP Experience 2016, Guilherme Blanco citou que outro fator importante são as novas combinações de operadores, o que possibilitou a criação de novos operadores e também rompeu com alguns antigos. Um exemplo de um operador novo é o null coalesce, que permite verificar se uma variável ou chave de array existe e atribuir um valor, caso ela não exista.

Um ponto muito importante é que agora todos os erros são tidos como exceções, inclusive os  erros fatais e os parse, sendo assim, você passa a ter um maior controle do que esta errado com o seu código, e como você deve tratar este erro.

Porém, a grande evolução ficou por conta da mudanças internas. O PHP 7 tem um novo gerenciamento de memória, o que gerou um otimização do seu consumo. Também é possível observar uma maior segurança sobre as trheads e otimização da estrutura de dados.

A memória, dentre todas as mudanças internas, foi a que mais chamou a atenção. Com o número reduzido de alocação, ela passou a trabalhar mais rapidamente (veja análise). A velocidade do PHP7, comparado ao 5.6, é de praticamente o dobro, e isso ocorre graças a compilação Just in Time. Este novo gerenciamento de memória é um dos primeiros passos rumo ao futuro observado por Ben Ramsey.

Ben é uma das figuras mais apaixonadas pela comunidade PHP. É fundador do grupo Atlanta PHP e co-organizador do Nashvile PHP, além de contribuir para as bibliotecas da linguagem. Ele também esteve presente no PHP Experience 2016, e comentou sobre o futuro do HTTP. De acordo com Ben, as mudanças do HTTP1.1 para o HTTP 2.0 ocorreram devido ao crescimento da web e a criação de novas RFC´s e protocolos.

Atualmente, o número de objetos enviados por meio da web é muito grande. E além dos objetos, também temos a quantidade de requests e o crescente número de usuários. Esses aumentos geraram problemas como latência, gerenciamento de fila dentre outros.

Segundo Ben, o HTTP2 veio com o intuito de corrigir estes problemas. Mas como? O HTTP 2 lida com headers binários e comprimidos, o que diminui muito a quantidade de dados trafegados na rede.

Além disso, o HTTP2 trabalha com paralelização e requests com multiplexing. Hoje em dia, uma página web carrega com ela vários recursos como: CSS, JavaScript, imagens e arquivos. E toda vez que uma request é feita, todos estes arquivos são baixados. E isto, no HTTP1.1, este é um processo serial, ou seja, só é aberta a nova request quando termina a conexão atual. Embora alguns navegadores com suporte ao HTTP 1.1 abram de 4 a 8 conexões simultâneas, isto acaba sendo insuficiente ou moroso.

No HTTP2.0, as requisições e respostas são paralelas e assíncronas, ou seja, não importa a ordem que as respostas cheguem. Sendo assim, é necessária apenas uma conexão. Como isso é possível? Tudo é feito por meio dos cabeçalhos. Cada request e cada resposta do HTTP envia vários cabeçalhos no topo da requisição. Esta abordagem acaba com o problema das filas.

Entretanto, para que o processo ocorra com sucesso, também é implementada uma solução de priorização e dependências que são passadas para o browser de acordo com a requisição de cada usuário.

Por fim, temos o server push, cuja função é enviar arquivos para o browser antes mesmo que ele os tenha solicitado. Ou seja, o servidor empurra para o browser os recursos que “sabe” que ele necessitará para o carregamento total da página – o que acelera muito o processo, pois o navegador já terá os arquivos em cache e não precisará de um request.

Com todas estas melhorias, o que podemos esperar da próxima versão do PHP e do futuro da internet? Esperamos mais melhorias, não é?! E tudo isto ocorre graças as comunidades ao redor do mundo. A unidade da comunidade tem gerado uma curva de conhecimento muito alta, e isto, sem dúvida, gera maior conhecimento, e o mais importante, maior disseminação do mesmo.

Mensagem do anunciante:

Infraestrutura financeira descomplicada é com a iugu! Tão simples que parece brincadeira! Clique aqui e dê um up nos negócios!

Powered by WPeMatico