-
Notifications
You must be signed in to change notification settings - Fork 20
Overview of WebOne
The WebOne Proxy Server is HTTP 1.0 server that gets requests from Internet browsers, makes a new request to requested remote server (using HTTP/HTTPS 1.1 and all security things) and returns the requested content with adaptations need to show it in "elderly" browser.
The list of possible adaptations of traffic in WebOne 0.9.1 below.
All HTTP traffic from browser is sent to real HTTP and HTTPS servers. If the server can't work in insecure mode, the Proxy retries the request in HTTPS mode. But for client it continues to look like the protocol (regular HTTP 1.0) hasn't changed. So all sites being available again via insecure HTTP protocol.
Secure cookies are gets edited to be non-secure, because otherwise browser will reject them over old open protocol.
Client user-agent too gets modified by the Proxy by adding WebOne/X.Y.Z
suffix, so server can detect the proxy and understand that the old browser is not as dumb as it was in the 1990s.
WebOne is ready to be used on public hosts. To prevent unauthorized use of it there are possible to enable password-based proxy authentication. If it is enabled, the browser will ask you for password before allowing use of the proxy. So the proxy server will not be used to post spam or by kids.
All content that are text-based (like HTML, CSS, JS) being edited by WebOne. Binary files are transfered pass-through as is. Links to HTTPS resources are editing to HTTP, because WebOne currently cannot receive Secure requests. List of MIME types of content which should be touched by content editing is set in TextTypes configuration file option.
Some sites or internet applications to display and work correctly in old browsers require manual editing of some content using something like "find and replace" function of text editors. For such cases ContentPatch sections of config file might help. See RegExp books and articles for more details about match masks, capture groups and replacement masks.
If OutputEncoding option is set to AsIs
, the content encoding (code page) aren't changing. Most of modern web is encoded in UTF8. But if you want to use non UTF-aware browser, WebOne can convert text content to any available encoding. Set the option to Windows
to enable converting to system local ("ANSI") code page or enter any possible code page name here. List of available code pages can be found at http://proxyhost:port/!codepages/ URL. For non-English-speaking people all encodings that are for system language are underlined in the list.
All content from remote servers is downloaded by WebOne using encoding said in Content-type header or by finding Byte Order Mark. But for servers with invalid UTF-8 content you may set forced downloading using selected code page in webone.conf. Currently it's ForceUtf8 section but probably it will be changed in later nightly builds
To replace some linked content on pages or to use archived copy of some URLs instead of real web it is possible to use FixableURL sections of config file.
In case of unavailability of the site due to content removal (on Server Not Found or 404 errors), WebOne tries to get the content from Internet Archive Wayback Machine. If there are chances to see something, browser gets a redirection to archived copy. This behavior may be enabled or disabled via SearchInArchive option.
Older browsers cannot correctly display "Wayback Machine doesn't have that page archived" messages from Internet Archive. For them there are possibility to replace the message with built into WebOne. To disable 404 message replacing, unset ShortenArchiveErrors option.
For some content patches it's need to replace entire JS or CSS file with a own self-made. To prevent requirement to post the patched file on a public server, the file can be placed in WebOne working directory and be get via special URL: http://proxyhost:port/!file/?name=filename.ext&type=text/plain.
Because older browsers cannot correctly display pictures in WebP and PNG formats, WebOne can convert them to acceptable picture formats like GIF or even XBM. This feature also can be used to convert video files, if the Proxy is running on a fast modern machine with fast Internet connection. See more in configuration manual.
The project is actively developing. I'm planning to add these features in future builds:
- Support for running on Linux and macOS.
- Cache and log (sniffer) for debugging purposes.
- HTTP2 support.
- Support for CONNECT method.
- CERN FTP proxy and FTP passive-to-active gateway.
- De-TLS-ization of other common protocols like POP3, IMAP, SMTP.
- Release Archive
- Websites edits / Syntax of traffic edits
- Known bugs / Report a new bug
- Windows installation
- Linux installation
- macOS installation
- Android installation
- Configuration file
- Command line arguments
Usage:
- Installing the Root Certificate
- YouTube playback
- Using with ViewTube
- Using with virtual machines
- Using with FTP servers
- Using with MSN Messenger
Web standards timeline:
Troubleshooting guides:
Developer corner: