

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à.

# Demo sull'autenticazione reciproca CoreHTTP
<a name="core-http-ma-demo"></a>

**Importante**  <a name="deprecation-message-demo"></a>
Questa demo è ospitata nel Amazon-FreeRTOS repository che è obsoleto. Ti consigliamo di [iniziare da qui](freertos-getting-started-modular.md) quando crei un nuovo progetto. Se hai già un progetto FreerTOS esistente basato sul repository ora obsoleto, Amazon-FreeRTOS consulta il. [Amazon-FreeRTOS Guida alla migrazione del repository Github](github-repo-migration.md)

## Introduzione
<a name="core-http-ma-demo-intro"></a>

Il progetto dimostrativo CoreHTTP (Mutual Authentication) mostra come stabilire una connessione a un server HTTP utilizzando TLS con autenticazione reciproca tra il client e il server. Questa demo utilizza un'implementazione dell'interfaccia di TLS-based trasporto mbed per stabilire una connessione TLS autenticata da server e client e dimostra un flusso di lavoro di risposta alle richieste in HTTP.

**Nota**  
Per configurare ed eseguire le demo di FreerTOS, segui i passaggi indicati. [Inizia con FreerTOS](freertos-getting-started.md)

## Funzionalità
<a name="core-http-ma-demo-functionality"></a>

Questa demo crea una singola attività applicativa con esempi che mostrano come completare quanto segue:
+ Connect al server HTTP sull' AWS IoT endpoint.
+ Invia una richiesta POST.
+ Ricevi la risposta.
+ Disconnettiti dal server.

Dopo aver completato questi passaggi, la demo genera un output simile alla schermata seguente.

![Output di registro che mostra l'inizializzazione della AWS IoT demo, l'istituzione della sessione TLS, le richieste HTTP POST e le metriche di memoria che indicano il completamento della demo con successo.](http://docs.aws.amazon.com/it_it/freertos/latest/userguide/images/coreHTTP.output.png)


La AWS IoT console genera un output simile alla schermata seguente.

![AWS IoT console che mostra il messaggio «Hello from AWS IoT console» pubblicato su un argomento il 20 novembre 2020 alle 19:09:09 UTC.](http://docs.aws.amazon.com/it_it/freertos/latest/userguide/images/coreHTTP.console.png)


## Organizzazione del codice sorgente
<a name="core-http-s3-ma-demo-source-code-organization"></a>

Il file sorgente della demo è denominato `http_demo_mutual_auth.c` e può essere trovato nella `{{freertos}}/demos/coreHTTP/` directory e sul [ GitHub](https://github.com/aws/amazon-freertos/blob/main/demos/coreHTTP/http_demo_mutual_auth.c)sito Web.

## Connessione a AWS IoT Server HTTP
<a name="core-http-ma-demo-connecting"></a>

La ToServerWithBackoffRetries funzione di [connessione](https://github.com/aws/amazon-freertos/blob/main/demos/common/http_demo_helpers/http_demo_utils.c#L131-L170) tenta di stabilire una connessione TLS con autenticazione reciproca al server HTTP. AWS IoT Se la connessione fallisce, riprova dopo un timeout. Il valore di timeout aumenta esponenzialmente fino a raggiungere il numero massimo di tentativi o il valore di timeout massimo. La `RetryUtils_BackoffAndSleep` funzione fornisce valori di timeout che aumentano in modo esponenziale e restituisce `RetryUtilsRetriesExhausted` quando è stato raggiunto il numero massimo di tentativi. La `connectToServerWithBackoffRetries` funzione restituisce uno stato di errore se la connessione TLS al broker non può essere stabilita dopo il numero di tentativi configurato.

## Invio di una richiesta HTTP e ricezione della risposta
<a name="core-http-ma-demo-send-receive"></a>

La SendHttpRequest funzione [prv](https://github.com/aws/amazon-freertos/blob/main/demos/coreHTTP/http_demo_mutual_auth.c#L402-L507) dimostra come inviare una richiesta POST al server AWS IoT HTTP. Per ulteriori informazioni su come effettuare una richiesta all'API REST in AWS IoT, vedete [Device communication protocol - HTTPS](https://docs.aws.amazon.com/iot/latest/developerguide/http.html). La risposta viene ricevuta con la stessa chiamata all'API CoreHTTP,`HTTPClient_Send`. 