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.3K | 2.7K |
| api.c (llhttp) | 7.5K | 6.8K |
| http.c (llhttp) | 0.4K | 0.3K |
| llhttp.c (llhttp) | 25.8K | 23.0K |
| Total estimates | 37.0K | 32.8K |