The shorter timeline is the RESTful delivery. Mileage will of course vary by load and latency but with what I've tested REST delivery is always faster.
For 5 reloads this was the timings I got:
apex_util REST % Faster 259 137 89.05% 362 311 16.40% 250 129 93.80% 245 130 88.46% 269 126 113.49%
Now introducing RESTful type of Media Resource which makes this very easy to do. Colm initially blogged about it a while back. In a nutshell, it's a query that wants 2 columns the first being the content type , mime, and the second being a lob or anything to be delivered. Colm showed how to deliver XML in his post. This is how to serve up images.
In the URI Template, you'll notice {id} which is the ID of the image to be served and used as a bind to query. The select is quite simple to follow.
The table for this example is quite simple but obviously could be anything as long as there's a mime and lob to deliver.
CREATE TABLE myimages ( IMAGE_ID NUMBER NOT NULL ENABLE, IMAGE_BLOB BLOB NOT NULL ENABLE, IMAGE_MIMETYPE VARCHAR2(255) ) /