WWW.mdwn (4445B)
1 The **World Wide Web** (**WWW** or simply the **Web**), invented in 1989, is 2 the dominant way of using the [[Internet]] and also the world's dominant 3 software platform. It is based on files located on servers and linking to 4 each other by URLs that usually indicate the [[protocol|protocols]], server 5 address and the path to the file. The protocol is usually [[HTTP]](S) and 6 the document format is [[HTML]], but other protocols and document formats 7 may also be used as long as they support URL-based linking. 8 9 ## Problems 10 11 Problems of WWW from the permacomputing point of view: 12 13 Even though HTTP is a simple protocol and the basic HTML is a simple 14 format, the current standards are [[bloat]]ed and only a few [[web browser]] 15 engines are able to support them at the commonly required level. 16 17 A URL only points to a single server (or a cluster that looks like one), so 18 its usability depends on the availability of that server. When a server is 19 gone, so are all the links that point to it. If a server is temporarily 20 offline, there's no backup plan for locating the files elsewhere. 21 22 The design thus discourages small and temporary servers while encouraging 23 large and centralized servers that maximize their availability. The design 24 also discourages [[local copies and mirroring|file collection]] (that used to be a common 25 practice when [[FTP]] was big). 26 27 ## Attempts to fix the problems 28 29 [[Internet Archive]] (which is another centralized service) partially solves 30 the problem of broken links and vanishing files by sometimes providing 31 usable copies of the vanished files. 32 33 The [[Smallnet]] movement advocates simpler formats and alternative protocols 34 (such as [[Gopher]] or [[Gemini]]) as well as small and personal servers, 35 but hasn't yet done much to address the URL problem that makes those small 36 servers unappealing. 37 38 [[Web3]] is supposedly an attempt to decentralize the web by using dubious 39 technologies such as [[blockchain]]. The concept/buzzword has so far 40 received a lot of criticism. 41 42 [[IPFS]] is a [[peer-to-peer]] protocol that makes it possible to put files 43 in a decentralized space with no reference to specific servers. The URLs are 44 monstrous but at least the protocol makes decentralized peer-to-peer 45 websites technically possible. 46 47 ## Web & Permacomputing 48 49 Overall, the web is not very compatible with permacomputing, particularly 50 due to its low offline tolerance and its server-specific way of referring to 51 resources. 52 53 However, its dominant status often justifies its use at least as a way to 54 ensure some level of cross-platform compatibility and accessibility in 55 today's computing world. An application that only supports a few platforms 56 (such as iOS and Android) is usually an even worse idea than a web-only 57 application. (For using a web browser as a target platform for arbitrary 58 software, see [[web browser]]) 59 60 Some questions to ask when building something on the web: 61 62 * Is this project something that actually needs the web or networking? If it can run locally, support running it locally. 63 * What does the site require on the client side? (The size and system requirements of the smallest browser it can be used with, the energy requirements of the client-side scripting (if used), bandwidth requirements) 64 * What does the site require on the server side? (Bandwidth, disk space, the memory/cpu requirements of the server-side scripting (if used)) 65 * How easy is it to use the resources offline? (If the site consists of multiple static files, think about giving the option of downloading the content as a single file) 66 * Are you fine with the idea of people sharing your content on their own sites? (If yes, put it available under a free content licence and encourage people to spread it) 67 * Are there ways to use the site with a non-web protocol/client? ([[Permacomputing wiki]] can be edited via [[Git]], for example) 68 * What are you planning to use as a server? Purchasing of dedicated hardware should be avoided, but using something your community already has is a good idea. Using a time-sharing account to a small, local webhotel is always a better idea than buying "cloud computing" from a multinational corporation (even if you'll only get 99.9% uptime instead of 99.999%). 69 70 ## Software 71 72 A list of moderate-sized web browsers: 73 74 * [[Dillo]] 75 * [[Links]] 76 * [[Lynx]] 77 * [[W3C]] 78 79 A list of moderate-sized web servers: 80 81 * [[lighttpd]] 82 * ... 83 84 Common types of web applications: 85 86 * [[wiki]] 87 * ...