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 http-parser 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 HTTP Client library files (sizes generated with GCC for ARM Cortex-M toolchain) |
| File ↓ | No Optimization (asserts enabled) | With -O1 Optimization | With -Os Optimization |
| Segment → | text | data | text | data | text | data |
| core_http_client.c | 15.3K | 0 | 9.5K | 0 | 8.2K | 0 |
| http_parser.c | 38.0K | 412 | 24.8K | 4 | 20.8K | 4 |
| Total estimates → | 53.3K | 412 | 34.3K | 4 | 29.0K | 4 |