HTTP Client library
This HTTP Client library implements a subset of the HTTP/1.1 protocol. Features of this library include:
- Fully synchronous API, to allow applications to completely manage their concurrency and multi-threading.
- Operations on user supplied buffers, so that applications have complete control of their memory allocation strategy.
- Integration with llhttp to handle chunked encoding.
Feature of HTTP/1.1 not supported in this library:
- Streaming uploads and downloads. Range requests for partial content responses are highly encouraged with this API.
- Pipelining requests. There may be only one request outgoing and one response incoming, at a time, on a connection.
- Automatic redirection. The user application owns their connection and must handle redirection status codes.
Memory Requirements
Memory requirements of the HTTP Client library.
| Code Size of coreHTTP (example generated with GCC for ARM Cortex-M) |
| File | With -O1 Optimization | With -Os Optimization |
| core_http_client.c | 3.1K | 2.5K |
| api.c (llhttp) | 2.6K | 2.0K |
| http.c (llhttp) | 0.3K | 0.3K |
| llhttp.c (llhttp) | 17.9K | 15.9K |
| Total estimates | 23.9K | 20.7K |