WCHTTPServer

From Lazarus wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

What is WCHTTPServer

WCHTTPServer is an HTTP/2 + HTTP 1.1 + WebSocket server written in Free Pascal.

WCHTTPServer logo

The project builds on the fcl-web library and extends it to increase functionality:

  • Client management using cookies (saving and maintaining sessions).
  • Saving information about clients and sessions in SQLite database.
  • Saving information about the latest requests and saving logs in SQLite database.
  • Multithreading preparation and execution of requests based on thread pools e.g. helpful classes to work with EventSources.
  • Client rankings based on the frequency of client requests.
  • Built-in support for gzip and deflate compression methods including decompression of client-side requests.
  • WebSocket protocol supported.
  • Ability to start the server both in HTTP/2 mode and in HTTP 1.1 mode.
  • Modified OpenSSL modules (added necessary TLS extensions) in order to create and maintain HTTP/2 connections.
  • Added the ability to save the master key and a random set of client data on the server-side (necessary for debugging TLS dumps using WireShark).
  • Works under both Windows and Linux.

Author

  • Ilya Medvedkov

Licence

  • GNU Lesser General Public License v2.1

Download