IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Qt prépare un serveur HTTP minimaliste
Le module Qt HTTP Server est en cours de développement

Le , par dourouc05

109PARTAGES

14  0 
Bon nombre d'applications ont besoin d'un serveur HTTP léger, ne fût-ce que côté serveur pour répondre aux requêtes d'une API ReST ou pour afficher une interface déportée par WebGL. Il est assez rébarbatif d'implémenter, projet après projet, le même code pour lire des paquets HTTP, écrire les réponses, gérer les connexions et le routage entre une requête et le code correspondant. C'est pourquoi les développeurs de Qt se sont lancés dans le projet d'un nouveau module implémentant justement un serveur HTTP, le bien nommé Qt HTTP Server. Ce module se veut assez léger, plus qu'Apache ou nginx, probablement aussi que Cutelyst ou QttpServer — tout du moins, pour le moment. Certains envisagent d'inclure un moteur comme Jinja pour faciliter la création de pages HTML, voire un framework Web plus complet encore.

Le code est encore expérimental et est développé en parallèle des dernières versions de Qt. Pour le moment, un petit serveur HTTP pourrait être écrit comme ceci :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
#include <QtCore>
#include <QtHttpServer>
 
int main(int argc, char **argv) {
  QCoreApplication app(argc, argv);
  QHttpServer httpServer;
  httpServer.route("/", []() {
    return "Hello world";
  });
  httpServer.listen(QHostAddress::Any);
  return app.exec();
}
Pour le moment, Qt HTTP Server implémente déjà HTTP 1.0 et 1.1, HTTPS (en cours d'intégration), le routage (à l'aide de fonctions anonymes, apportées par C++11), les sockets Web (tout comme le module Qt Web Sockets) et la gestion des erreurs.

Voir aussi : le dépôt Git du projet, les discussions actuelles.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de JeanMorlet
Membre régulier https://www.developpez.com
Le 26/01/2019 à 18:47
Je ne dirais pas que je suis super content parce qu'ils le font car je n'en savais rien, mais du coup, je suis super impatient de tester ça . Je pense que c'est un module susceptible de faire gagner pas mal de temps.
0  0 
Avatar de requinham
Membre régulier https://www.developpez.com
Le 24/02/2021 à 11:35
Faut faire attention à la license qui est en GPLv3. Ainsi, tout votre code devrait l'être.
0  0