Difference between revisions of "WCHTTPServer"
From Free Pascal wiki
Jump to navigationJump to search (WCHTTPServer - HTTP/2+HTTP1.1 server) |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== What is WCHTTPServer == | == What is WCHTTPServer == | ||
− | |||
− | The project builds on [[fcl-web]] library and extends it to increase functionality: | + | WCHTTPServer is an HTTP/2 + HTTP 1.1 + WebSocket server written in Free Pascal.[[File:wclogo.png|right|300px|WCHTTPServer logo]] |
+ | |||
+ | The project builds on the [[fcl-web]] library and extends it to increase functionality: | ||
* Client management using cookies (saving and maintaining sessions). | * Client management using cookies (saving and maintaining sessions). | ||
* Saving information about clients and sessions in SQLite database. | * Saving information about clients and sessions in SQLite database. | ||
* Saving information about the latest requests and saving logs in SQLite database. | * Saving information about the latest requests and saving logs in SQLite database. | ||
− | * Multithreading preparation and execution of requests based on | + | * 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. | + | * 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. | * 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. | * 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). | + | * 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 == | ||
* [https://github.com/iLya2IK/wchttpserver WCHTTPServer project on github] | * [https://github.com/iLya2IK/wchttpserver WCHTTPServer project on github] | ||
+ | |||
+ | [[Category:FPC]] | ||
+ | [[Category:Libraries]] | ||
+ | [[Category:Networking]] |
Latest revision as of 17:17, 5 May 2021
What is WCHTTPServer
WCHTTPServer is an HTTP/2 + HTTP 1.1 + WebSocket server written in Free Pascal.
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