With enough contortions and breaking GET idempotency you could probably do a whole CRUD app with just that.
I don't know if it's still the case or not, but Oracle had the option to run a web-server as part of the database at one time. Back in the Oracle 8 or Oracle 9 era, as best as I can remember.
EDIT:
OK, here we go.
https://docs.oracle.com/en/database/oracle/oracle-database/1...
You can use an embedded version of the PL/SQL gateway that runs in the XML DB HTTP Listener in the database. It provides the core features of mod_plsql in the database but does not require the Oracle HTTP Server. You configure the embedded PL/SQL gateway with the DBMS_EPG package in the PL/SQL Web Toolkit.
Some advantages of using the embedded gateway instead of mod_plsql are:
You can invoke PL/SQL web applications like Application Express without installing Oracle HTTP Server, thereby simplifying installation, configuration, and administration of PL/SQL based web applications.
You can set arbitrary headers with postgrest so you can use it to serve pages. I don't know if this is exactly what you mean but it's as close to "dbms with its own web server" as I've seen.
It's also just cool lol. Though as much as I like plpgsql and it would be hilarious to use it as a templating engine I don't really have a use for this.
I wonder if CSS could implement sqlite...
The database parts are dealing with areas that must have some triggering action (calling a stored procedure, running a trigger, selecting a resultset, that kind of thing) for anything to happen.
The lines are blurring, yes. What's interesting is the 4GL systems which do the reverse (colocate your apps with your data for speed).
E.g. I'm not aware of an, out of the box, elasticsearch interface that is not the HTTP API.
While I appreciate the "shipostedness" in fulfilling the task "connect to DB in CSS" by cramming whole SQL database into CSS custom property and working with it using paint worklet (this would probably not even remotely cross my mind ever), with more pragmatic approach I don't see requirement of having actual database in the CSS in the original tweet, so single boring URL endpoint reading the SQL query from parameter and responding with CSS à la `:root { --result: 'whatever'; }` should accomplish given task as well, without those Houdini's stunts:
@import "sql.css?query=Robert')%3B%20DROP%20TABLE%20Students%3B--"
body::before { content: var(--result); }
(I guess browsers do URI encoding anyway, so probably no need to encode it by hand).Or perhaps even more simple with render to image (like `<!..><svg ...><text>whatever</text></svg>`.
body::before { content: url(sql.svg?query=...); }
That paint worklet does something similar anyway, but instead of `background: paint(…);` this would be `… url(…)`.If JS and/or strictly static server-side is a must, the sql.css / sql.svg could be handled by a service worker with that sql-asm.js at disposal.
Or maybe it doesn't even need (a separate) one, because all a Turing machine needs is some other 'networking machine' to be looking at some designated area on tape (I'm describing DMA essentially, I suppose)? And maybe what else happens externally in response to what's on the designated tape area is uninteresting/completely arbitrary and doesn't need to/inherently can't be formally modelled?
I think of this very informally as having not only for() loops with fixed bounds on the loop index, but also while() loops where you don't know beforehand how many loops it will take to compute something. Alternatively you can express the same thing in terms of recursion. One characteristic is that it's possible to describe computations that never finish. Another is that you cannot always tell from looking at a particular program if it will ever finish.
Exactly how or if the result of a computation becomes apparent to the outside world, I think is not part of the theoretical description.