1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\ingroup qthttpserver-examples
\title Simple HTTP Server
\examplecategory {Web Technologies}
\brief Simple example of how to set up an HTTP server.
\image browserwindow.png
The Simple HTTP Server shows how to set up an HTTP server using the
QHttpServer class. It listens to two sockets: one TCP socket and one
SSL socket. Different callbacks are set up to demonstrate how to use
the \l{QHttpServer::}{route()} function.
A QHttpServer object is created, and a simple \l{QHttpServer::}{route()}
handles the path \c "/" by returning \c{Hello world}:
\snippet simple/main.cpp Setting up HTTP server
Then we register a callback that serves the server's assets to the client:
\snippet simple/main.cpp Returning assets
Here we use the QHttpServerRequest object to return the client's IP address:
\snippet simple/main.cpp Using QHttpServerRequest
For one of the paths, \c {"/auth"}, \l{RFC 7617}{Basic HTTP Authentication}
is used:
\snippet simple/main.cpp Using basic authentication
Then we use the \l{QHttpServer::}{addAfterRequestHandler()} function to
change the QHttpServerResponse object after it has been handled by the
callbacks registered by \l{QHttpServer::}{route()} by adding HTTP headers
to the response:
\snippet simple/main.cpp Using addAfterRequestHandler()
A QTcpServer listening to a port is bound to the HTTP server using the
\l{QAbstractHttpServer::}{bind()} function:
\snippet simple/main.cpp Binding the TCP server
And then \l QSslConfiguration is used to create an SSL configuration for a
QHttpServer to serve HTTPS traffic:
\snippet simple/main.cpp HTTPS Configuration example
After everything is set up, all that remains is to start handling incoming
requests:
\snippet simple/main.cpp Start handling requests
\example simple
*/
|