---
title: "HTTP and HTTPS"
---

> Documentation Index
> Fetch the complete documentation index at: https://openarkstudio.github.io/arknet/llms.txt
> Use this file to discover all available pages before exploring further.

# HTTP and HTTPS

Requires Boost.Asio and Boost.Beast; unavailable with Standalone Asio.

arknet's HTTP client, server and session exchange Beast HTTP/1 messages.
HTTPS uses the same message API over TLS when `ARKNET_ENABLE_SSL` is enabled.
Both Asio providers expose the same public types and callback signatures.

## Get started

- [Create a server](/arknet/features/http/server): listen and receive messages.
- [Create a client](/arknet/features/http/client): connect, send and verify replies.
- [Send a single request](/arknet/features/http/requests): completion, timeout and cancellation.
- [Configuration](/arknet/features/http/configuration): protocol options and limits.
- [Performance](/arknet/features/http/performance): local measurements and reproduction.

## Capabilities

| Area | Available |
| --- | --- |
| Endpoints | `http_client`, `http_server`, `http_session`; secure `https_*` variants |
| HTTP versions | HTTP/1.0 and HTTP/1.1 |
| Connections | Keep-alive, ordered pipelining, reconnect and custom sessions |
| Parsing | Chunked bodies, HEAD response semantics, information responses and `100-continue` |
| Messages | Owned sends with `string_body` / `empty_body`; receives use `string_body` |
| Application layer | [Method/path routing, parameters, wildcards and middleware](/arknet/guides/http-routing) |
| Limits | Header/body limits and bounded send queues |
| TLS | Certificate chain and DNS/IP verification; optional mTLS |

Use HTTP for request/response APIs and service-to-service messages. Use
[WebSocket](/arknet/features/websocket) when the application needs a long-lived,
bidirectional message channel after an HTTP upgrade.

## Scope and Defaults

Headers default to 8192 bytes and bodies to 16 MiB. The client limit applies
to responses; server settings are copied into new sessions. Messages are
assembled in memory, rather than delivered as a streaming body API.

The server rejects missing/duplicate HTTP/1.1 Host and unsupported Expect.
Beast validates wire framing; applications validate paths, headers and payload
meaning. The router provides path validation, but not authentication,
authorization or filesystem access.

HTTP/2 and HTTP/3 remain [TODO](/arknet/project/roadmap#http-engine-boundaries).
Beast implements HTTP/1 and WebSocket; it does not add those protocols.
Multipart helpers, file-body streaming and public HTTP awaitables are also
not provided in this release.

## Read Next

- [Configuration](/arknet/features/http/configuration): protocol options, extension and shutdown.
- [Routing](/arknet/guides/http-routing): matching, middleware, response semantics and concurrency.
- [Performance](/arknet/features/http/performance): workloads, topology comparison and local charts.
- [TLS](/arknet/features/tls) and [lifecycle](/arknet/concepts/lifecycle).

Source: https://openarkstudio.github.io/arknet/features/http/index.mdx
