

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Libreria CoreHTTP
<a name="core-http"></a>

**Nota**  <a name="out-of-date-message"></a>
Il contenuto di questa pagina potrebbe non esserlo. up-to-date Consulta la [pagina della libreria di Freertos.org](https://www.freertos.org/Documentation/03-Libraries/01-Library-overview/01-All-libraries) per l'ultimo aggiornamento.

**Libreria client HTTP C per piccoli dispositivi IoT (MCU o MPU di piccole dimensioni)**

## Introduzione
<a name="core-http-introduction"></a>

[La libreria CoreHTTP è un'implementazione client di un sottoinsieme dello standard HTTP/1.1.](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol) Lo standard HTTP fornisce un protocollo stateless che funziona su TCP/IP e viene spesso utilizzato in sistemi informativi ipertestuali distribuiti e collaborativi.

[La libreria CoreHTTP implementa un sottoinsieme dello standard del protocollo HTTP/1.1.](https://tools.ietf.org/html/rfc2616) Questa libreria è stata ottimizzata per un basso ingombro di memoria. La libreria fornisce un'API completamente sincrona in modo che le applicazioni possano gestire completamente la loro concorrenza. Utilizza solo buffer fissi, in modo che le applicazioni abbiano il controllo completo della loro strategia di allocazione della memoria.

[La libreria è scritta in C e progettata per essere conforme a [ISO C90 e MISRA C:2012](https://en.wikipedia.org/wiki/ANSI_C#C90).](https://misra.org.uk/product/misra-c2012-third-edition-first-revision/) Le uniche dipendenze della libreria sono la libreria C standard e la [versione LTS (](https://github.com/nodejs/node/tree/v12.19.1/deps/http_parser)v12.19.1) del parser http-parser di Node.js. La libreria dispone di [prove](https://www.cprover.org/cbmc/) che dimostrano l'uso sicuro della memoria e l'assenza di allocazione di heap, il che la rende adatta ai microcontrollori IoT, ma anche completamente portabile su altre piattaforme.

Quando si utilizzano connessioni HTTP nelle applicazioni IoT, si consiglia di utilizzare un'interfaccia di trasporto sicura, ad esempio un'interfaccia che utilizza il protocollo TLS come dimostrato in. [Demo sull'autenticazione reciproca CoreHTTP](core-http-ma-demo.md)

Questa libreria può essere utilizzata liberamente ed è distribuita [con la licenza open source MIT](https://freertos.org/a00114.html).


****  

| Dimensione del codice di CoreHTTP (esempio generato con GCC per ARM Cortex-M) | File | Con ottimizzazione -O1 | Con ottimizzazione -Os | 
| --- | --- | --- | --- | 
| core\$1http\$1client.c | 3,2 K | 2,6 K | 
| api.c (lhttp) | 2,6K | 2,0K | 
| http.c (llhttp) | 0,3 K | 0,3 K | 
| llhttp.c (llhttp) | 17.9 | 15,9 | 
| Stime totali | 23,9 K | 20,7 K | 