ShimmerCat

Last updated

ShimmerCat
Original author(s) Zunzun AB
Initial release2015-11-05 (2015-11-05)
Written in Haskell
Operating system OS X, Linux
Type Web server
Website shimmercat.com

ShimmerCat was a web server designed from ground-up for HTTP/2 and written in Haskell; it now appears to be an image optimization and distribution service. [1] The purported purpose of the server was to take full advantage of HTTP/2 features, including HTTP/2 Server Push, [2] to enhance the perceived page load speed of served websites. ShimmerCat used machine learning to accelerate asset delivery to the browser.

Overview

As of September 2016, ShimmerCat was at version 1.5.0 and ran on Linux and OS X. The software could be used for development of web applications through its SOCKS5 and HTTP/2 implementations, [3] [4] [5] [6] and it was also possible to develop web applications without having to modify /etc/hosts nor use different sets of URLs for development and production.[ citation needed ]

Related Research Articles

HTTPS Extension of the HTTP communications protocol to support TLS encryption

Hypertext Transfer Protocol Secure (HTTPS) is an extension of the Hypertext Transfer Protocol (HTTP). It is used for secure communication over a computer network, and is widely used on the Internet. In HTTPS, the communication protocol is encrypted using Transport Layer Security (TLS) or, formerly, Secure Sockets Layer (SSL). The protocol is therefore also referred to as HTTP over TLS, or HTTP over SSL.

K-Meleon Web browser

K-Meleon is an open-source, lightweight web browser for Microsoft Windows. K-Meleon can use the secure Goanna layout engine based on Mozilla's Gecko or the Gecko engine itself. K-Meleon was one of the first projects to use Gecko outside of Netscape, predating even Mozilla Firefox and SeaMonkey. K-Meleon runs on legacy hardware and operating systems that other modern web browsers no longer support. K-Meleon supports configuration files and macros to allow users to customize most aspects of the browser.

Load balancing (computing) Set of techniques to improve the distribution of workloads across multiple computing resources

In computing, load balancing refers to the process of distributing a set of tasks over a set of resources, with the aim of making their overall processing more efficient. Load balancing can optimize the response time and avoid unevenly overloading some compute nodes while other compute nodes are left idle.

Transport Layer Security (TLS), the successor of the now-deprecated Secure Sockets Layer (SSL), is a cryptographic protocol designed to provide communications security over a computer network. The protocol is widely used in applications such as email, instant messaging, and voice over IP, but its use in securing HTTPS remains the most publicly visible.

SOCKS is an Internet protocol that exchanges network packets between a client and server through a proxy server. SOCKS5 optionally provides authentication so only authorized users may access a server. Practically, a SOCKS server proxies TCP connections to an arbitrary IP address, and provides a means for UDP packets to be forwarded.

Content delivery network Layer in the internet ecosystem addressing bottlenecks

A content delivery network, or content distribution network (CDN), is a geographically distributed network of proxy servers and their data centers. The goal is to provide high availability and performance by distributing the service spatially relative to end users. CDNs came into existence in the late 1990s as a means for alleviating the performance bottlenecks of the Internet as the Internet was starting to become a mission-critical medium for people and enterprises. Since then, CDNs have grown to serve a large portion of the Internet content today, including web objects, downloadable objects, applications, live streaming media, on-demand streaming media, and social media sites.

lighttpd

lighttpd is an open-source web server optimized for speed-critical environments while remaining standards-compliant, secure and flexible. It was originally written by Jan Kneschke as a proof-of-concept of the c10k problem – how to handle 10,000 connections in parallel on one server, but has gained worldwide popularity. Its name is a portmanteau of "light" and "httpd".

Push technology or server push, is a style of Internet-based communication where the request for a given transaction is initiated by the publisher or central server. It is contrasted with pull/get, where the request for the transmission of information is initiated by the receiver or client.

A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.

Nginx, stylized as NGIИX, is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. The software was created by Igor Sysoev and publicly released in 2004. Nginx is free and open-source software, released under the terms of the 2-clause BSD license. A large fraction of web servers use Nginx, often as a load balancer.

Resin is a web server and Java application server from Caucho Technology. In addition to Resin (GPL), Resin Pro is available for enterprise and production environments with a license. Resin supports the Java EE standard as well as a mod_php/PHP like engine called Quercus.

SPDY is an obsolete open-specification communication protocol developed for transporting web content. SPDY became the basis for HTTP/2 specification. However, HTTP/2 diverged from SPDY and eventually HTTP/2 subsumed all usecases of SPDY. After HTTP/2 was ratified as a standard, major implementers, including Google, Mozilla, and Apple, deprecated SPDY in favor of HTTP/2. Since 2021, no modern browser supports SPDY.

Web performance refers to the speed in which web pages are downloaded and displayed on the user's web browser. Web performance optimization (WPO), or website optimization is the field of knowledge about increasing web performance.

FastCGI is a binary protocol for interfacing interactive programs with a web server. It is a variation on the earlier Common Gateway Interface (CGI). FastCGI's main aim is to reduce the overhead related to interfacing between web server and CGI programs, allowing a server to handle more web page requests per unit of time.

HTTP/2 is a major revision of the HTTP network protocol used by the World Wide Web. It was derived from the earlier experimental SPDY protocol, originally developed by Google. HTTP/2 was developed by the HTTP Working Group of the Internet Engineering Task Force (IETF). HTTP/2 is the first new version of HTTP since HTTP/1.1, which was standardized in RFC 2068 in 1997. The Working Group presented HTTP/2 to the Internet Engineering Steering Group (IESG) for consideration as a Proposed Standard in December 2014, and IESG approved it to publish as Proposed Standard on February 17, 2015. The HTTP/2 specification was published as RFC 7540 on May 14, 2015.

QUIC is a general-purpose transport layer network protocol initially designed by Jim Roskind at Google, implemented, and deployed in 2012, announced publicly in 2013 as experimentation broadened, and described at an IETF meeting. QUIC is used by more than half of all connections from the Chrome web browser to Google's servers. Microsoft Edge and Firefox support it. Safari implements the protocol, however it is not enabled by default.

archive.today Online web archive

archive.today is a web archiving site, founded in 2012, that saves snapshots on demand, and has support for JavaScript-heavy sites such as Google Maps and progressive web applications such as Twitter. Archive.today records two snapshots: one replicates the original webpage including any functional live links; the other is binary image screenshot of the page.

Caddy (web server)

The Caddy web server is an extensible, cross-platform, open-source web server written in Go.

HTTP/2 Server Push allows an HTTP/2-compliant server to send resources to a HTTP/2-compliant client before the client requests them. Server Push is a performance technique aimed at reducing latency by loading resources preemptively, even before the client knows they will be needed. In practice, Server Push frequently results in wasted bandwidth because the server rarely knows which resources are already loaded by the client and transmits the same resource multiple times.

Angular (web framework) Open source web application framework

Angular is a TypeScript-based free and open-source web application framework led by the Angular Team at Google and by a community of individuals and corporations. Angular is a complete rewrite from the same team that built AngularJS.

References

  1. "Image Optimization for e-Commerce". ShimmerCat. Archived from the original on 2022-03-31. Retrieved 2022-04-13.
  2. "A closer look to HTTP/2 Push". ShimmerCat. Archived from the original on 2021-03-04. Retrieved 2022-04-13.
  3. "Easy net with SOCKS5". ShimmerCat. Archived from the original on 2019-07-19. Retrieved 2022-04-13.
  4. "TLS has exactly one performance problem: it is not used widely enough". Is TLS Fast Yet?. Archived from the original on 2022-04-01. Retrieved 2016-10-16.
  5. Grigorik, Ilya [@igrigorik] (2016-04-29). "leveraging HTTP/2 flow control + prioritization for optimized image loading: bit.ly/1T8ZasU - awesome" (Tweet) via Twitter.
  6. Smashing Magazine [@smashingmag] (2016-05-03). "ShimmerCat is the first web server to allow for manual allocation of bandwidth for images over HTTP/2 connections. shimmercat.com/en/info/articles/coordinated-image-loading/" (Tweet) via Twitter.