VOGONS


WebOne - proxy for old browsers to make them Web 2.0-capable

Topic actions

First post, by ATauenis

User metadata
Rank Member
Rank
Member

Hi all! I'm developing a HTTP proxy server that should help older browsers to work in the modern internet. It is called WebOne.

Currently WebOne can only request pages from any modern servers (even through HTTPS connections when the browser is too old to decode server's cipher) and convert content code page from UTF-8 to system's local (should be useful for non-English users with Windows 9x). This should return possibility to see some content of webpages in retro browsers (while currently they're simply stops loading due to TLS errors).

IE6v018.png IE15v071.png

Upd: Also it can replace JavaScript frameworks to older versions that can work in old browsers, make redirections to Web.Archive.Org (for sites that are dead) and make WebDAV working in older clients (such as IE 5.0). With Opera 12 and Firefox 10 most of sites became usable again. Very elderly browsers like IE 2.0 also became usable because Host header (which is now required by 99% of servers) is added when using the proxy.

Upd2: There are many new features added in the time, while the project is growing. They include SSL support, powerful webpage adaptation for old browsers, YouTube playback via WMP/Flash/HTML5, and even MSN Messenger support, etc. Look at end of the topic for the latest version.

Galeon-RH73.png Howsmyssl.png Netscape-3-W10.png MacIE50.png MSN40.png WMP8.png

It's not a rendering proxy, it helps old rendering engines in displaying content of webpages using their own possibilities.

The proxy server intended to be run on a modern PC with .NET Framework 4.6 or newer (probably, it should work with Mono too) .NET runtime. To use it place a modern PC with WebOne installed and running into same LAN with an old PC (the modern PC must have access to the Internet) and set IP address or hostname of the modern PC as HTTP 1.0 Proxy in settings of a old browser on an old machine. By default the WebOne runs on port 80 8080, but it can be changed to any other valid port.

Sources and binaries are hosted at GitHub.
Latest sources: https://github.com/atauenis/webone.
Latest stable binaries: https://github.com/atauenis/webone/releases (mirror).

Feel free to test it and report bugs. This app is open-source, so Pull requests are welcomed.

Last edited by ATauenis on 2024-02-27, 11:30. Edited 4 times in total.

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 1 of 228, by ATauenis

User metadata
Rank Member
Rank
Member

Version 0.2 has been released. It is now possible to set program's settings in the webone.conf file. Also it is now working in both Windows 7+ (.NET 4.6+) and WinXP/2003 (.NET 4.0), but if the .NET Framework version is less than 4.6 (e.g. 4.0 or 4.5), some SSL/TLS features will be unusable. Server's host name and working port are shown in window's title bar, so configuring clients makes easier.

---

May 27, 2019. 20:55 (GMT+3).
Version 0.3 has been released. Now it can downgrade js frameworks used in pages to make some scripting on modern sites working in not too old browsers (such as Firefox 3.6, IE8).

---

May 29, 2019. 14:27 (GMT+3).
Version 0.4 has been released. Fixed some bugs ("error 304" in Firefox and blank pages in Opera). Also added ability to load some content from Web.Archive.Org instead of real web.

---

May 30, 2019.
Versions 0.4.1 and 0.4.2 has been released. The server now can be started in Mono 3.2.8 and 4.6.2.7 but with some TLS problems ("Mono.Security.Protocol.Tls.TlsException: Invalid certificate received from server. Error code: 0xffffffff800b010a" or "SecureChannelFailure (The authentication or decryption has failed.)"). Also it can be compiled using MonoDevelop in Debian 9. Since 0.4.2, Release (not Debug) builds, like provided in EXE folder, are showing easier to read error messages in most cases.

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 2 of 228, by ATauenis

User metadata
Rank Member
Rank
Member

Version 0.5.0 is ready.

  • Now large binaries are downloading very quickly with a working progress bar in the browser, just like downloading from the real web (btw, binary files are not modified by the WebOne if their URLs doesn't matches redirection masks in config file), so you can download Mozilla 1.7 on Windows 95 from Internet Explorer 3.0 (or probably even 1.0) just as in 2005.
  • Another change is fix of detecting of UTF-8 pages that should be converted to local code page. Previously, some of these pages were not converted and remained in Unicode. Now they can be read even in DOS.

Get it at https://github.com/atauenis/webone/tree/master/EXE .

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 3 of 228, by ATauenis

User metadata
Rank Member
Rank
Member

Version 0.6.0 is ready.

  • Added optional password authentication for proxy server. This means that the WebOne now can be runned even on public hosts, and owner should not worry that unwanted people will use the proxy server.
  • Added possibility to do not change code page used in web pages. It's useful for users of "modern" browsers (Mozilla, IE5.5+, etc) or who doesn't want to change code page of web content. This way of content processing is now default.
  • Fixed display of error pages and password-protected content (HTTP authentification). Now the WebOne will not show internal error pages on 3XX, 4XX and 5XX errors, a full server's reply will be returned. Internal error pages are used only on "Server not found", "Connection timeout" and similar errors (when there was no reply from server at all).
  • The configuration file can be selected on startup time. Start "webone.exe myconfig.txt" to use configuration from myconfig.txt. Old argument parsing (port selection) is not changed, it's still possible to use webone.conf file and different port: "webone.exe 8080".

Get it at https://github.com/atauenis/webone/tree/master/EXE .

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 4 of 228, by keenmaster486

User metadata
Rank l33t
Rank
l33t

Well, this is neat!

I'm running it on a Windows 7 VM right now, and it seems to be working okay. It doesn't seem to be doing any modifications to the actual HTML, though, to make it more readable for old browsers - it just lets them load without HTTPS and fixes any character display issues by changing the code page.

Good work!

World's foremost 486 enjoyer.

Reply 5 of 228, by keenmaster486

User metadata
Rank l33t
Rank
l33t

I can report that attempting to log in to VOGONS does not work on IE 5.5 with WebOne. It merely redirects back to the login page. If I try without the proxy, it works fine.

World's foremost 486 enjoyer.

Reply 6 of 228, by JonathonWyble

User metadata
Rank Member
Rank
Member

Lucky for me, I don't use older web browsers all the time, but sometimes I do once in a while, so I don't always have to worry about my browsing interface being outdated 😜 Other than that, nice project there.

1998 Pentium II build

1553292341.th.19547.gif

Reply 7 of 228, by ATauenis

User metadata
Rank Member
Rank
Member
keenmaster486 wrote:

I can report that attempting to log in to VOGONS does not work on IE 5.5 with WebOne. It merely redirects back to the login page. If I try without the proxy, it works fine.

I have checked, and confirm that the bug exists. Try to log in at www.vogons.org domain until next version. It works in IE5.5/WinME for mine.

keenmaster486 wrote:

It doesn't seem to be doing any modifications to the actual HTML, though, to make it more readable for old browsers - it just lets them load without HTTPS and fixes any character display issues by changing the code page.

It also can redirect on JavaScript framework loadings to correct it for your browser version. So on DHTML pages should work some scripting (folding menus and similar).

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 8 of 228, by ATauenis

User metadata
Rank Member
Rank
Member

Version 0.6.1 is ready.

  • Fixed log in to VOGONS.
  • Added possibility for change URLs from "http://abc.de" to "http://www.abc.de" via config file (for fix the bug above).
  • OPTION requests are no longer ignored.
  • Because WebOne is HTTP 1.0 proxy, a "Connection: close" header has been added to prevent some errors in modern browsers. Also "Via" header is now added to responses, for better compatibility with W3C recommendations.

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 9 of 228, by ATauenis

User metadata
Rank Member
Rank
Member

Version 0.7.0 is ready.

  • Fixed cookie lost on some 302 redirects (especially on phpBB 3.2 forums where logins was broken). It's now possible to log on to secure phpBB 3.2 forums from old browsers.
  • Add support for all HTTP methods. Probably WebDAV clients should work too, but I haven't tested fully.
  • Fixed "guru meditation" on Date HTTP header (in WebDAV).
  • Added pretty error message on FTP requests (when browser thinks that the proxy is CERN-compatible, but it's really not at this time).

Get it at https://github.com/atauenis/webone/tree/master/EXE .

If you have any troubles regarding blank pages, "302 Moved" and similar, add the problematic domain to the ForceHttps section of webone.conf. Or use version 0.6.1 which have old redirection algorithm but cannot correctly display pages on servers with cookies on redirections.

If pages looks dirty or incomplete (without styles and images) and there are many "Empty request.[302]" errors in the log, enlarge SlowClientHack option in config file until the problem solves (except that the proxy will work slowly).

Currently I'm trying to fix these bugs.

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 10 of 228, by ATauenis

User metadata
Rank Member
Rank
Member

Version 0.7.1 has been released

  • Fixed 302 errors on slow PCs. Old SlowClientHack option in webone.conf file is replaced with ClientTimeout so the proxy is now working faster and more stable.
  • Because some sites are confusing some browsers on http-to-https redirections (i.e. Flickr and Opera 12) when new redirection algorythm is used, a new section has been added to webone.conf. Domains where redirections causes problems with WebOne 0.7 can be added to the UseOldRedirect section of configuration file and WebOne 0.7.1+ will hide that redirections like version 0.6.x and earlier do where that sites worked good. Also it can help with opening StackOverflow in Netscape 3.
  • All HSTS headers are now putting to trash, so semi-modern browsers (like Opera 12) will not add sites to their HSTS lists and ignore the proxy.
  • Fixed crash on WebDAV traffic when non-English letters are used in file names. They are blacklisted by Microsoft.
  • Added read-only support for WebDAV. At least, Yandex.Disk is working with Windows 2000 SP4 + IE 5.01 WebFolders. All files can be downloaded, even with non-English file names. File upload, move and delete are still non stable.

Initially these changes was planned for 0.8, but I'm decided that other changes for 0.8 will take large amount of time and already completed fixes are too important to wait.

It's available at http://github.com/atauenis/webone/tree/master/EXE

P.S. This post is written in Microsoft Internet Explorer 1.5 on Windows NT 3.51. It probably never was possible to open Vogons (due to lack of Host header). But now it is looks to MSIE as a HTTP 1.0 server from 90s. Yeah, there are no scripts, png images, but basic things are working correctly.

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 11 of 228, by t9999clint

User metadata
Rank Member
Rank
Member

This project is amazing. Thanks for your work on it.
One quick feature request though...
I haven't looked at this too deeply so maybe it already does it, but I have an idea for another feature.
Would it be possible to have your proxy automatically recompress and replace all pictures above a specified filesize to a smaller, lower quality format?
I've seen this as a feature for other proxies (like opera mobile) and figured it'd be a useful speedup trick for low ram systems.
I think my dialup ISP (Telus) had this feature back in the day.

Another neat feature would be adblocking via easylist rulesheets, but I'm guessing that would be too complicated to do and probably not worth it anyways.

My Youtube Channel: https://www.kor.ninja/
My Soundfont Project: K.O.R. Soundfont Project V.5.0
My Soundcloud Page: https://soundcloud.com/clint-theriault

Reply 12 of 228, by ATauenis

User metadata
Rank Member
Rank
Member

I'm planning to add converting of PNG/WEBP images to GIF. Probably, JPG recompressing also may be added. But it is some difficult to implement, and probably will be added non soon.

But even now anyone who want this can make a web-based image converter (i.e. on PHP+ImageMagick) and add it to webone.conf like this:

[FixableURL:\.webp$]
Redirect=http://example.com/convertimage.php?url=%URL%

[FixableURL:\.jpg$]
Redirect=http://example.com/compress.php?url=%URL%&rate=50

😀

Ad blocking is also possible via FixableURL sections:

[FixableURL:adwords]
Redirect=about:blank

But a some blacklist files based on ABP rules I can add in future versions. Most of ads are javascript based and simply doesn't appear on old browsers and don't slow them. So full compatibility with ABP lists is not need.

P.S. Sorry for my bad English, if it's looking ugly.

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 13 of 228, by weldum

User metadata
Rank Member
Rank
Member

I'm trying it with my emac g4 using Firefox 3 because currently it loads everything wrong, but it doesn't work, webone says:

www.google.com.ar:443 try to connect[405]
wrong method.

that but with any web page, is there something bad?
pd I'm using the default configuration

DT: R7-5800X3D/R5-3600/R3-1200/P-G5400/FX-6100/i3-3225/P-8400/D-900/K6-2_550
LT: C-N2840/A64-TK57/N2600/N455/N270/C-ULV353/PM-1.7/P4-2.6/P133
TC: Esther-1000/Esther-400/Vortex86-366
Others: Drean C64c/Czerweny Spectrum 48k/Talent MSX DPC200/M512K/MP475

Reply 14 of 228, by ATauenis

User metadata
Rank Member
Rank
Member

Weldum, can you give full log from the console window? If there are no other redirections in it (302 replies, or "carousel" messages), probably you are trying to open sites with https prefix. Note that all "HTTPS Everywhere"-like addons must be disabled (or haven't been installed at all). HSTS is not included in Firefox 3.x, so it can'be reason of this problem.

It this doesn't solve the problem, try to use WebOne 0.6.1. Please tell me, are the bug is still present or not.

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 15 of 228, by ATauenis

User metadata
Rank Member
Rank
Member

Version 0.8.0 is ready.

  • New redirection algorithm is now used. So it should solve most problems with 302s and blank pages that many can see in 0.7.x and 0.6.x versions.
    Old (v0.6.1) redirection algorithm is still available for sites listed in InternalRedirectOn section of webone.conf. But probably it shouldn't be used.
  • Implemented internal HSTS-like list for domains that are don't want to open via HTTP. It speeds up opening of most of modern sites and solves some problems.
  • Fixed blank pages that was seen in 0.7.x.
  • Maked a new workaround for "The proxy does not know the CONNECT method" message. In few cases Browser can redirect to a normal version of the page. This is caused by inability to receive HTTPS requests by the proxy. And if the browser made such request, WebOne now replies with JavaScript redirection to a HTTP version. But it's still unhelpful if the browser have HSTS or something.
  • Added possibility to open archived copies of dead sites and pages. If SearchInArchive option is set, on 404 errors and on URLs with non-resolvable servers WebOne will try to get a copy from Web.Archive.Org.
  • In default webone.conf there are added redirections to Web Archive for some popular dead hosting providers that aren't returning 404 or ServerNotFound errors. So content from them is now available again.
  • Because old browsers cannot display correctly Web Archive error pages, the proxy server can return simplified pages. This can be enabled or disabled via ShortenArchiveErrors option.

It's available at http://github.com/atauenis/webone/tree/master/EXE
Full overview and help is available in Wiki.

---

weldum wrote:
I'm trying it with my emac g4 using Firefox 3 because currently it loads everything wrong, but it doesn't work, webone says: […]
Show full quote

I'm trying it with my emac g4 using Firefox 3 because currently it loads everything wrong, but it doesn't work, webone says:

http://www.google.com.ar:443 try to connect[405]
wrong method.

that but with any web page, is there something bad?
pd I'm using the default configuration

Probably this may be caused by invalid configuration of Firefox. When correct settings are set (shown on the picture below) WebOne log almost should not have any "wrong method" entries and all should work.
FirefoxConfig.1565296996.png

Edit: replaced the screenshot with English version of Firefox.

Last edited by ATauenis on 2019-08-08, 20:44. Edited 1 time in total.

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 16 of 228, by weldum

User metadata
Rank Member
Rank
Member

great, I'm gonna try it later because that problem happened in safari 2 and in opera for mac
npw I've installed an older version of mac os so I should test it.
worth noting that, in a completely different machine, in the same "session" of webone, everything worked fine, that machine had windows 98se with Firefox 2.0.20.0

DT: R7-5800X3D/R5-3600/R3-1200/P-G5400/FX-6100/i3-3225/P-8400/D-900/K6-2_550
LT: C-N2840/A64-TK57/N2600/N455/N270/C-ULV353/PM-1.7/P4-2.6/P133
TC: Esther-1000/Esther-400/Vortex86-366
Others: Drean C64c/Czerweny Spectrum 48k/Talent MSX DPC200/M512K/MP475

Reply 18 of 228, by ATauenis

User metadata
Rank Member
Rank
Member

I will start a topic on MSFN after adding possibility to make IE4's Active Channels working again. MSFN is forum about Windows stuff, AFAIR. So I'm need to make some minor patches in WebOne to make it useful for re-enabling Win9x built-in internet stuff.

2×Soviet ZX-Speccy, 1×MacIIsi, 1×086, 1×286, 2×386DX, 1×386SX, 2×486, 1×P54C, 7×P55C, 6×Slot1, 4×S370, 1×SlotA, 2×S462, ∞×Modern.

Reply 19 of 228, by JonathonWyble

User metadata
Rank Member
Rank
Member
ATauenis wrote:
I'm planning to add converting of PNG/WEBP images to GIF. Probably, JPG recompressing also may be added. But it is some difficul […]
Show full quote

I'm planning to add converting of PNG/WEBP images to GIF. Probably, JPG recompressing also may be added. But it is some difficult to implement, and probably will be added non soon.

But even now anyone who want this can make a web-based image converter (i.e. on PHP+ImageMagick) and add it to webone.conf like this:

[FixableURL:\.webp$]
Redirect=http://example.com/convertimage.php?url=%URL%

[FixableURL:\.jpg$]
Redirect=http://example.com/compress.php?url=%URL%&rate=50

😀

That's cool, but would image converting destroy the relationship your project has with acting as a proxy? Just asking. Well, I guess it does seem like a good idea to add miscellaneous stuff into a project made for a certain task 😀

1998 Pentium II build

1553292341.th.19547.gif