

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 essere aggiornato. Consulta la [pagina della FreeRTOS.org libreria](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 viene eseguito in aggiunta TCP/IP e viene spesso utilizzato in sistemi informativi ipertestuali distribuiti e collaborativi.

La libreria CoreHTTP implementa un sottoinsieme dello standard di 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](https://en.wikipedia.org/wiki/ANSI_C#C90) C90 e MISRA. C:2012](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 (v12.19.1](https://github.com/nodejs/node/tree/v12.19.1/deps/http_parser)) di 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).


<a name="coreHTTP-memory-estimate"></a>
<table>
<thead>
  <tr><th colspan="3">Dimensione del codice di CoreHTTP (esempio generato con GCC per ARM) Cortex-M</th></tr>
  <tr><th>File</th><th>Con ottimizzazione -O1</th><th>Con ottimizzazione -Os</th></tr>
</thead>
<tbody>
  <tr><td>core_http_client.c</td><td>3,2 K</td><td>2,6 K</td></tr>
  <tr><td>api.c (lhttp)</td><td>2,6K</td><td>2,0K</td></tr>
  <tr><td>http.c (llhttp)</td><td>0,3 K</td><td>0,3 K</td></tr>
  <tr><td>llhttp.c (llhttp)</td><td>17.9</td><td>15,9</td></tr>
  <tr><td><b>Stime totali</b></td><td><b>23,9 K</b></td><td><b>20,7 K</b></td></tr>
</tbody>
</table>
