When I imply that the web is too small, what I'm really getting at is that the vast majority of the devices connected to the Internet, participate in the WWW merely as consumers of data - publishing is centralized and generally takes place on 3rd party hardware.
This has certain fundamental implications for how we can use the web, both technical (we have to upload everything before sharing), and social, in the form of Terms and Conditions and of course Privacy Policies - which are barely ever read by anyone.
If anything, this trend is accelerating with the rise of SaaS, PaaS, "the cloud" and behomoths like Google and Facebook.
Once upon a time...
With web-servers everywhere, how do we make them reachable without more IP addresses?
pagekite.py implements a tunneled reverse web proxy.
This is one way to make a web-server on localhost (ports 8000 and 8443) visible as http://bar.foo.net/ ...
foo.net $ sudo pagekite.py --runas=nobody \ --isfrontend --ports=80,443 \ --backend=http,https:*.foo.net:::s3cr37
laptop $ pagekite.py \ --frontend=foo.net:443 \ --backend=http:bar.foo.net:localhost:8000:s3cr37 \ --backend=https:bar.foo.net:localhost:8443:s3cr37
Another example, this time using the pageKite.net managed front-end service and enabling the HTTP user interface ...
laptop $ pagekite.py \ --defaults \ --httpd=localhost:9999 \ --backend=http:bar.foo.net:localhost:8000:s3cr37 \ --backend=https:bar.foo.net:localhost:8443:s3cr37