GNU libmicrohttpd 0.9.74 já foi lançado e essas são suas novidades

Faz pouco o projeto GNU lançou o lançamento de a nova versão da biblioteca libmicrohttpd 0.9.74, Um que representa uma API simples para funcionalidade de servidor HTTP integrada em aplicativos.

A biblioteca suporta protocolo HTTP 1.1, TLS, processamento incremental de solicitação POST, autenticação básica e digest, IPv6, SHOUTcast, e vários métodos de multiplexação de conexões (select, poll, pthread, thread pool), atualmente a implementação tem suporte para várias plataformas suportadas, incluindo GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android , macOS, Win32, Symbian e z/OS.

O GNU libmicrohttpd nasceu da necessidade de seu autor, que na época precisava de uma maneira fácil de adicionar um servidor HTTP concorrente a outros projetos. As alternativas existentes eram não livres, não reentrantes, independentes, qualidade de código terrível ou uma combinação delas.

Das características que se destacam nesta implementação:

  • Biblioteca C: rápida e pequena
  • A API é simples, expressiva e totalmente reentrada.
  • A implementação é compatível com HTTP 1.1
  • O servidor HTTP pode escutar em várias portas
  • Vários modos de threading: Executar em thread de aplicativo, thread interno, pool de threads e thread por conexão
  • Três modos de polling de soquete diferentes: select (), poll () e epoll
  • Número mínimo de chamadas do sistema para evitar alterações adicionais de kernel/modo de usuário
  • As plataformas suportadas incluem GNU / Linux, FreeBSD, OpenBSD, NetBSD, Android, Darwin (macOS), W32, OpenIndiana /
  • Solaris ez/OS
  • Suporte para IPv6
  • Suporte para SHOUTcast
  • Suporte para processamento incremental de dados POST (opcional)
  • Suporte para autenticação básica e implícita (opcional)
  • Suporte TLS (requer libgnutls, opcional)
  • O binário tem apenas cerca de 32k (sem suporte a TLS e outros recursos opcionais)

Principais novidades da libmicrohttpd 0.9.74

Nesta nova versão da biblioteca podemos encontrar que adicionou uma implementação experimental do protocolo WebSockets, que ainda não foi bem testado e está desabilitado por padrão.

Outra novidade que se apresenta é que a conformidade com as especificações de implementação do protocolo HTTP 1.0 / 1.1 foi aprimoradaAlém disso, o código foi retrabalhado para decodificar solicitações fragmentadas.

Destaca-se também que código adicionado para retornar automaticamente erros relacionados a solicitações fragmentadas incorretas, tamanho de dados muito grande e configuração de cabeçalho Content-Length incorreta.

Foi realizado otimizações internas, por exemplo, gerenciamento de memória aprimorado, eficiência de hash aprimorada e eliminação da análise repetitiva do método HTTP e da versão do protocolo.

E nota-se também que forneceu uma validação mais rigorosa dos valores do cabeçalho HTTP, permitiu o uso de um caractere de tabulação nos valores do cabeçalho de resposta, mas proibiu o uso de espaços nos valores do cabeçalho personalizado.

Além disso, o código para gerar cabeçalhos HTTP em resposta foi completamente reescrito e a precisão do tempo limite foi aumentada de segundos para milissegundos.

Adicionada opção de compilação –enable-sanitizers [= endereço, indefinido, vazamento, veneno do usuário] para habilitar seletivamente os modos de detecção de problemas no código.

Corrigido, esclarecido, ampliado e melhorado as descrições das funções Doxy, agora mencionando que deveria ser muito mais fácil aprender MHD apenas lendo os títulos.

Das outras mudanças que se destacam nesta nova versão:

  • Descrições de função aprimoradas no arquivo de cabeçalho microhttpd.h.
  • funções de API adicionada MHD_get_reason_phrase_len_for () e MHD_create_response_from_buffer_with_free_callback_cls (), bandeira MHD_CONNECTION_INFO_HTTP_STATUS, MHD_get_connection_info (), bem como respostas bandeira MHD_CONNECTION_INFO_HTTP_STATUS, e respostas MHD_SDRIVE_HDRFKE_HDR_HDRF_HDR_HDRF_HDRF_REND_HDRF_HDRF_REND_HDRF_HDR_RF_RF_HDR_RF_HDRF_.
  • Adicionado arquivo de projeto para montagem no MSVC.
  • A formação do cabeçalho de resposta foi completamente reescrita. A nova implementação é mais robusta, mais fácil de manter e expansível e segue melhor as especificações HTTP da RFC.
  • Melhorias de desempenho: agora a versão HTTP e o método de solicitação são decodificados apenas uma vez (anteriormente o MHD usava muitas comparações de strings

Finalmente se você estiver interessado em saber mais sobre isso sobre este lançamento, você pode consultar os manuais do usuário e outras informações em seu site.

O link é este.


Seja o primeiro a comentar

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.