Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau Discussion :

Qt prépare un serveur HTTP


Sujet :

Réseau

  1. #1
    Responsable Qt & Livres

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

    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 -Visualiser dans une fenêtre à part
    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.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  2. #2
    Membre du Club
    Intéressant
    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.