vibe.d D
Пример на D для vibe.d, который отвечает на запросы к /pixel.gif пустым GIF, декодированным один раз при запуске.
vibe.d D
/+ dub.sdl:
name "pixel"
dependency "vibe-d" version="~>0.10"
+/
import vibe.vibe;
immutable ubyte[] gif = [0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x01, 0x00, 0x01, 0x00, 0x80, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x21, 0xf9, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x44, 0x01, 0x00, 0x3b];
void pixel(HTTPServerRequest req, HTTPServerResponse res) @safe
{
res.headers["Cache-Control"] = "no-store";
res.writeBody(gif, "image/gif");
}
void main()
{
auto router = new URLRouter;
router.get("/pixel.gif", &pixel);
auto settings = new HTTPServerSettings;
settings.port = 8080;
auto listener = listenHTTP(settings, router);
scope (exit) listener.stopListening();
runApplication();
}
Сверено с актуальной документацией фреймворка.
Проверка
curl -sI http://localhost:8080/pixel.gif