Rucho

Sets cookies from query parameters and redirects to `/cookies`.

Each non-reserved query parameter becomes a Set-Cookie response header.
Reserved keys add attributes applied to every cookie set in the request:
secure, httponly, samesite=<Strict|Lax|None>, max_age=<seconds>,
path=<path> (default /), domain=<domain>. After setting the cookies,
responds with a 302 redirect to /cookies so the client can see the result.

Example

GET /cookies/set?session=abc&secure&httponly&samesite=Strict&max_age=3600
sets session=abc; Path=/; Max-Age=3600; SameSite=Strict; Secure; HttpOnly.

get
https://rucho.org/cookies/set

Query Parameters

objectrequired

Cookie name=value pairs, plus optional attribute flags: secure, httponly, samesite, max_age, path, domain

Response

302

Redirects to /cookies after setting cookies

get/cookies/set
 
302

Handles requests to the `/delay/:n` endpoint.

Introduces a delay of n seconds before sending a response.
The delay duration n is extracted from the path.

Security

The maximum delay is capped at MAX_DELAY_SECONDS (300 seconds) to prevent
denial-of-service attacks where malicious requests could hold connections open indefinitely.

head
https://rucho.org/delay/{n}

Path Parameters

ninteger(int64)required

Number of seconds to delay the response (max 300)

>= 0

Response

text/plain

Responds after the specified delay

string
head/delay/{n}
 
text/plain

Streams `numbytes` bytes of `*` over `duration` seconds.

get
https://rucho.org/drip

Query Parameters

numbytesinteger | null

Total bytes to emit (default 10, max 10000)

>= 0

durationinteger | null(int64)

Total stream duration in seconds (default 2, max 300)

>= 0

codeinteger | null(int32)

Status code on the response (default 200)

>= 0

delayinteger | null(int64)

Initial delay before first byte in seconds (default 0, max 300)

>= 0

Response

application/octet-stream

Bytes streamed slowly

string
get/drip
 
application/octet-stream

Handles requests to the `/healthz` endpoint.

Returns an HTTP 200 OK status and the plain text “OK”.

get
https://rucho.org/healthz

Response

200 text/plain

Health check successful

string
get/healthz
 
200 text/plain

Returns a small sample HTML document as `text/html; charset=utf-8`.

Deliberately non-JSON — a controllable upstream for testing how a gateway
handles text/html responses.

get
https://rucho.org/html

Response

200 text/html

A sample HTML document

string
get/html
 
200 text/html