GNU libmicrohttpd 0.9.74 è già stato rilasciato e queste sono le sue novità

recentemente il progetto GNU ha rilasciato il rilascio di la nuova versione della libreria libmicrohttpd 0.9.74, A che rappresenta una semplice API per la funzionalità del server HTTP integrata nelle applicazioni.

La biblioteca supporta il protocollo HTTP 1.1, TLS, elaborazione incrementale richiesta POST, autenticazione di base e digest, IPv6, SHOUTcast e vari metodi per il multiplexing delle connessioni (select, poll, pthread, thread pool), attualmente l'implementazione ha il supporto per varie piattaforme supportate, tra cui GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android , macOS, Win32, Symbian ez/OS.

GNU libmicrohttpd è nato per la necessità del suo autore, che all'epoca aveva bisogno di un modo semplice per aggiungere un server HTTP simultaneo ad altri progetti. Le alternative esistenti erano di qualità del codice non libere, non rientranti, autonome, di pessima qualità o una loro combinazione.

Delle caratteristiche che si distinguono per questa implementazione:

  • Libreria C: veloce e piccola
  • L'API è semplice, espressiva e completamente rientrante.
  • L'implementazione è conforme a HTTP 1.1
  • Il server HTTP può essere in ascolto su più porte
  • Modalità di threading multiple: esegui su thread dell'applicazione, thread interno, pool di thread e thread per connessione
  • Tre diverse modalità di polling socket: select (), poll () ed epoll
  • Numero minimo di chiamate di sistema per evitare ulteriori modifiche alla modalità kernel/utente
  • Le piattaforme supportate includono GNU / Linux, FreeBSD, OpenBSD, NetBSD, Android, Darwin (macOS), W32, OpenIndiana /
  • Solaris ez/OS
  • Supporto per IPv6
  • Supporto SHOUTcast
  • Supporto per l'elaborazione incrementale dei dati POST (opzionale)
  • Supporto per l'autenticazione di base e implicita (opzionale)
  • Supporto TLS (richiede libgnutls, opzionale)
  • Il binario è solo di circa 32k (senza supporto TLS e altre funzionalità opzionali)

Principali nuove funzionalità di libmicrohttpd 0.9.74

In questa nuova versione che viene presentata dalla libreria possiamo trovarlo aggiunta un'implementazione sperimentale del protocollo WebSockets, che non è ancora ben testato ed è disabilitato per impostazione predefinita.

Un'altra novità che viene presentata è che è stata migliorata la conformità alle specifiche di implementazione del protocollo HTTP 1.0 / 1.1Inoltre, il codice è stato rielaborato per decodificare le richieste frammentate.

Si evidenzia anche questo codice aggiunto per restituire automaticamente gli errori relativi a richieste in blocchi errate, dimensioni dei dati troppo grandi e impostazione dell'intestazione Content-Length errata.

È stato realizzato ottimizzazioni interne, ad esempio, migliore gestione della memoria, maggiore efficienza dell'hash ed eliminazione dell'analisi ripetitiva del metodo HTTP e della versione del protocollo.

E si nota anche che forniva una convalida più rigorosa dei valori dell'intestazione HTTP, consentiva l'uso di un carattere di tabulazione nei valori dell'intestazione della risposta, ma proibiva l'uso di spazi nei valori dell'intestazione personalizzata.

A parte quello, il codice per generare le intestazioni HTTP in risposta è stato completamente riscritto e la precisione del timeout è stata aumentata da secondi a millisecondi.

Aggiunta l'opzione di compilazione –enable-sanitizers [= indirizzo, non definito, perdita, veleno per l'utente] per abilitare selettivamente le modalità di rilevamento dei problemi nel codice.

Corrette, chiarite, ampliate e migliorate le descrizioni delle funzioni Doxy, affermando ora che dovrebbe essere molto più facile imparare MHD solo leggendo i titoli.

Tra le altre modifiche che si distinguono in questa nuova versione:

  • Descrizioni delle funzioni migliorate nel file di intestazione microhttpd.h.
  • funzioni API aggiunte MHD_get_reason_phrase_len_for () e MHD_create_response_from_buffer_with_free_callback_cls (), MHD_CONNECTION_INFO_HTTP_STATUS bandiera, MHD_get_connection_info (), così come le risposte bandiera MHD_CONNECTION_INFO_HTTP_STATUS, e le risposte MHD_SDRIVE_HDRFKE_HDR_HDRF_HDR_HDRF_HDRF_REND_HDRF_HDRF_REND_HDRF_HDR_RF_RF_HDR_RF_HDRF_.
  • Aggiunto file di progetto per l'assemblaggio in MSVC.
  • La formazione dell'intestazione della risposta è stata completamente riscritta. La nuova implementazione è più robusta, più facile da mantenere ed espandibile e segue meglio le specifiche HTTP RFC.
  • Miglioramenti delle prestazioni: ora la versione HTTP e il metodo di richiesta vengono decodificati solo una volta (in precedenza MHD utilizzava il confronto di molte stringhe

Infine se sei interessato a saperne di più in merito a questa versione, è possibile consultare i manuali utente e altre informazioni sul suo sito web.

Il collegamento è questo.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.