

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Demo otentikasi timbal balik CoreHTTP
<a name="core-http-ma-demo"></a>

**penting**  <a name="deprecation-message-demo"></a>
Demo ini di-host di repositori Amazon-Freertos yang tidak digunakan lagi. Kami menyarankan Anda [mulai di sini](freertos-getting-started-modular.md) ketika Anda membuat proyek baru. Jika Anda sudah memiliki proyek FreeRTOS yang sudah ada berdasarkan repositori Amazon-Freertos yang sekarang tidak digunakan lagi, lihat. [Panduan Migrasi Repositori Github Amazon-freertos](github-repo-migration.md)

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

Proyek demo CoreHTTP (Mutual Authentication) menunjukkan kepada Anda cara membuat koneksi ke server HTTP menggunakan TLS dengan otentikasi timbal balik antara klien dan server. Demo ini menggunakan implementasi antarmuka transport berbasis MBEDTLS untuk membuat koneksi TLS yang diautentikasi server dan klien, dan menunjukkan alur kerja respons permintaan di HTTP.

**catatan**  
Untuk mengatur dan menjalankan demo FreeRTOS, ikuti langkah-langkahnya. [Memulai dengan FreeRTOS](freertos-getting-started.md)

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

Demo ini membuat tugas aplikasi tunggal dengan contoh yang menunjukkan cara menyelesaikan yang berikut:
+ Connect ke server HTTP pada AWS IoT endpoint.
+ Kirim permintaan POST.
+ Menerima tanggapannya.
+ Putuskan sambungan dari server.

Setelah Anda menyelesaikan langkah-langkah ini, demo menghasilkan output yang mirip dengan tangkapan layar berikut.

![\[Keluaran log yang menunjukkan inisialisasi AWS IoT demo, pembentukan sesi TLS, permintaan HTTP POST, dan metrik memori yang menunjukkan penyelesaian demo yang berhasil.\]](http://docs.aws.amazon.com/id_id/freertos/latest/userguide/images/coreHTTP.output.png)


 AWS IoT Konsol menghasilkan output yang mirip dengan tangkapan layar berikut.

![\[AWS IoT konsol yang menampilkan pesan “Halo dari AWS IoT konsol” yang diterbitkan ke topik pada 20 November 2020 pukul 19:09:09 UTC.\]](http://docs.aws.amazon.com/id_id/freertos/latest/userguide/images/coreHTTP.console.png)


## Organisasi kode sumber
<a name="core-http-s3-ma-demo-source-code-organization"></a>

File sumber demo diberi nama `http_demo_mutual_auth.c` dan dapat ditemukan di `freertos/demos/coreHTTP/` direktori dan di [ GitHub](https://github.com/aws/amazon-freertos/blob/main/demos/coreHTTP/http_demo_mutual_auth.c)situs web.

## Menghubungkan ke server AWS IoT HTTP
<a name="core-http-ma-demo-connecting"></a>

[ connectToServerWithBackoffRetries](https://github.com/aws/amazon-freertos/blob/main/demos/common/http_demo_helpers/http_demo_utils.c#L131-L170)Fungsi ini mencoba untuk membuat koneksi TLS yang saling diautentikasi ke server HTTP. AWS IoT Jika koneksi gagal, ia mencoba lagi setelah batas waktu. Nilai batas waktu meningkat secara eksponensial hingga jumlah upaya maksimum tercapai atau nilai batas waktu maksimum tercapai. `RetryUtils_BackoffAndSleep`Fungsi ini memberikan nilai batas waktu yang meningkat secara eksponensial dan pengembalian `RetryUtilsRetriesExhausted` ketika jumlah maksimum upaya telah tercapai. `connectToServerWithBackoffRetries`Fungsi mengembalikan status kegagalan jika koneksi TLS ke broker tidak dapat dibuat setelah jumlah upaya yang dikonfigurasi.

## Mengirim permintaan HTTP dan menerima respons
<a name="core-http-ma-demo-send-receive"></a>

Fungsi [ prvSendHttpRequest](https://github.com/aws/amazon-freertos/blob/main/demos/coreHTTP/http_demo_mutual_auth.c#L402-L507) menunjukkan cara mengirim permintaan POST ke server AWS IoT HTTP. Untuk informasi selengkapnya tentang membuat permintaan ke REST API AWS IoT, lihat [Protokol komunikasi perangkat - HTTPS](https://docs.aws.amazon.com/iot/latest/developerguide/http.html). Respons diterima dengan panggilan API CoreHTTP yang sama,. `HTTPClient_Send` 