

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# coreHTTP ライブラリ
<a name="core-http"></a>

**注記**  <a name="out-of-date-message"></a>
このページのコンテンツは最新ではない可能性があります。最新の更新については、[FreeRTOS.org ライブラリのページ](https://www.freertos.org/Documentation/03-Libraries/01-Library-overview/01-All-libraries)を参照してください。

**小型 IoT デバイス (MCU または小型 MPU) 用の HTTP C クライアントライブラリ**

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

coreHTTP ライブラリは、[HTTP/1.1](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol) 標準のサブセットのクライアント実装です。HTTP 標準は、TCP/IP 上で動作するステートレスプロトコルを提供し、分散型かつ協調型のハイパーテキスト情報システムでよく使用されます。

coreHTTP ライブラリは、[HTTP/1.1](https://tools.ietf.org/html/rfc2616) プロトコル標準のサブセットを実装しています。このライブラリは、低メモリフットプリントに最適化されています。ライブラリは完全同期 API を提供するため、アプリケーションは並行処理を完全に管理できます。固定バッファのみを使用するため、アプリケーションはメモリ割り当て方式を完全に制御できます。

ライブラリは C 言語で記述されており、[ISO C90](https://en.wikipedia.org/wiki/ANSI_C#C90) と [MISRA C:2012](https://misra.org.uk/product/misra-c2012-third-edition-first-revision/) に準拠するように設計されています。ライブラリの唯一の依存関係は標準 C ライブラリと Node.js の [http-parser の LTS バージョン (v12.19.1)](https://github.com/nodejs/node/tree/v12.19.1/deps/http_parser) です。ライブラリには、安全にメモリを使用し、ヒープ割り当てがないことを示す[プルーフ](https://www.cprover.org/cbmc/)があります。そのため、IoT マイクロコントローラーに適しています。また、他のプラットフォームに完全に移植することもできます。

IoT アプリケーションで HTTP 接続を使用する場合は、[coreHTTP 相互認証のデモ](core-http-ma-demo.md)に示すような TLS プロトコルを使用するインターフェイスなど、セキュアなトランスポートインターフェイスを使用することをお勧めします。

このライブラリは無償で使用でき、[MIT オープンソースライセンス](https://freertos.org/a00114.html)に基づいて配布されます。


****  

| coreHTTP のコードサイズ (ARM Cortex-M 向けの GCC で生成された例) | ファイル | -O1 最適化を使用 | -Os 最適化を使用 | 
| --- | --- | --- | --- | 
| core\$1http\$1client.c | 3.2 K | 2.6 K | 
| api.c (llhttp) | 2.6 K | 2.0 K | 
| http.c (llhttp) | 0.3 K | 0.3 K | 
| llhttp.c (llhttp) | 17.9 | 15.9 | 
| 合計 (概算 | 23.9K | 20.7K | 