

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# coreHTTP 程式庫
<a name="core-http"></a>

**注意**  <a name="out-of-date-message"></a>
此頁面上的內容可能不是up-to-date。如需最新更新，請參閱 [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/)。程式庫的唯一相依性是 Node.js [中 http-parser 的標準 C 程式庫和 LTS 版本 (v12.19.1)](https://github.com/nodejs/node/tree/v12.19.1/deps/http_parser)。程式庫有[證據](https://www.cprover.org/cbmc/)顯示安全記憶體使用和無堆積分配，使其適合 IoT 微控制器，但也可完全可攜式至其他平台。

在 IoT 應用程式中使用 HTTP 連線時，我們建議您使用安全傳輸介面，例如使用 TLS 通訊協定的介面，如 所示[coreHTTP 交互身分驗證示範](core-http-ma-demo.md)。

此程式庫可以自由使用，並根據 [MIT 開放原始碼授權](https://freertos.org/a00114.html)進行分發。


****  

| coreHTTP 的程式碼大小 （使用 GCC for ARM Cortex-M 產生的範例） | 檔案 | 使用 -O1 最佳化 | 使用 -Os 最佳化 | 
| --- | --- | --- | --- | 
| core\$1http\$1client.c | 3.2K | 2.6K | 
| api.c (llhttp) | 2.6K | 2.0K | 
| http.c (llhttp) | 0.3K | 0.3K | 
| llhttp.c (llhttp) | 17.9 | 15.9 | 
| 預估總數 | 23.9K | 20.7K | 