Russian Qt Forum

Qt => Работа с сетью => Тема начата: Yegor от Январь 05, 2017, 18:51



Название: [РЕШЕНО] Создание своего Web-Server
Отправлено: Yegor от Январь 05, 2017, 18:51
Всем здравствуйте!

Каким образом можно создать свой примитивный web-server? Используя классы Qt5. Чтобы к нему можно было подключаться по локальной сети популярными веб-браузерами. Для заполнения на странице из браузеров текстовые поля например.
Сервер простой.

Что для этого есть в Qt5? Какие модули, классы?
Спасибо!


Название: Re: Создание своего Web-Server
Отправлено: Old от Январь 05, 2017, 19:33
QTcpServer и QTcpSocket.


Название: Re: Создание своего Web-Server
Отправлено: Yegor от Январь 05, 2017, 20:33
Понятно, спасибо! То есть можно с помощью tcp сокетов принимать запросы, отправлять результат. А какие есть классы более высокого уровня для такой задачи? Смотрел, в модуле QtCore есть класс QNetworkAccessManager и его прилагающие. Но он подходит  лишь для клиента. Может что полезного можно взять из Qt WebKit, Qt WebSocket, Qt Web Channel ?


Название: Re: Создание своего Web-Server
Отправлено: Old от Январь 05, 2017, 21:12
Первым делом вам нужно почитать спецификацию http протокола, и первый сервер вы напишете за 15 минут. :)


Название: Re: Создание своего Web-Server
Отправлено: Yegor от Январь 05, 2017, 22:11
Спасибо большое, Old!


Название: Re: [РЕШЕНО] Создание своего Web-Server
Отправлено: Alex Custov от Январь 06, 2017, 00:28
нужно написать всё самому? Если нет, то есть QHTTP (скачивается отдельно из git).


Название: Re: [РЕШЕНО] Создание своего Web-Server
Отправлено: qate от Январь 06, 2017, 16:59
не первая тема о написании своего http сервера
я никак не пойму зачем ?
ведь есть же готовые открытые - бери и решай свою основную задачу ими


Название: Re: [РЕШЕНО] Создание своего Web-Server
Отправлено: Bepec от Январь 06, 2017, 23:26
Вот рили, простого аля "отдать страничку" я так и не нашел :)
Есть крутосупернавороченнонастраиваемыефронтежбакэнд серверы. А отдать статичный HTML - нетушки :)


Название: Re: [РЕШЕНО] Создание своего Web-Server
Отправлено: Old от Январь 07, 2017, 00:10
Вот рили, простого аля "отдать страничку" я так и не нашел :)
Есть крутосупернавороченнонастраиваемыефронтежбакэнд серверы. А отдать статичный HTML - нетушки :)
Такое на коленке делается за 10 минут.


Название: Та
Отправлено: Yegor от Январь 08, 2017, 12:47
нужно написать всё самому? Если нет, то есть QHTTP (скачивается отдельно из git).

Отличное решение на https://github.com/azadkuh/qhttp
Как раз идеально для такой задачи.

Спасибо большое, Alex Custov!


Название: Re: [РЕШЕНО] Создание своего Web-Server
Отправлено: sergek от Январь 08, 2017, 13:11
Каким образом можно создать свой примитивный web-server?
У вас задача самому сделать реализацию веб-сервера, или же поднять веб-сервер с минимальными затратами? Если второе, то лучшее решение, которое я нашел для себя - QtWebApp http://stefanfrings.de/qtwebapp/index-en.html (http://stefanfrings.de/qtwebapp/index-en.html). Отличный мануал, невероятная гибкость, умный и контактный автор  :)
Рекомендую. У меня работает на Ubuntu, в том числе на Raspberry Pi и Odroid C3.
Кстати, если будете реализовывать на нем server side events (есть такая возможность), поделитесь примером сюда ;) - самому пока нет времени, но в будущем будет нужен.


Название: Re: [РЕШЕНО] Создание своего Web-Server
Отправлено: Alex Custov от Январь 08, 2017, 22:08
У вас задача самому сделать реализацию веб-сервера, или же поднять веб-сервер с минимальными затратами? Если второе, то лучшее решение, которое я нашел для себя - QtWebApp http://stefanfrings.de/qtwebapp/index-en.html (http://stefanfrings.de/qtwebapp/index-en.html). Отличный мануал, невероятная гибкость, умный и контактный автор  :)

Если сравнить с QHTTP,  в чём отличие?


Название: Re: [РЕШЕНО] Создание своего Web-Server
Отправлено: sergek от Январь 08, 2017, 23:34
Если сравнить с QHTTP,  в чём отличие?
Трудно судить, к сожалению, QHTTP я не пробовал, посоветовал то, что у меня прекрасно работает.
Если навскидку, по описанию: поддержка https, html-шаблоны и статические файлы, поддержка куков и пользовательских сессий, журналирование (4 уровня).



Название: Re: [РЕШЕНО] Создание своего Web-Server
Отправлено: Alex Custov от Январь 10, 2017, 00:10
Если сравнить с QHTTP,  в чём отличие?
Трудно судить, к сожалению, QHTTP я не пробовал, посоветовал то, что у меня прекрасно работает.
Если навскидку, по описанию: поддержка https, html-шаблоны и статические файлы, поддержка куков и пользовательских сессий, журналирование (4 уровня).

Basic Auth поддерживается?


Название: Re: [РЕШЕНО] Создание своего Web-Server
Отправлено: sergek от Январь 10, 2017, 10:58
Basic Auth поддерживается?
Упоминания об этом механизме я не нашел. Пример организации аутентификации в библиотеке приводится на основе сохранения данных в сессии пользователя.
Я не большой специалист в области веб-приложений, а он нужен, этот BA?


Название: Re: [РЕШЕНО] Создание своего Web-Server
Отправлено: Alex Custov от Январь 23, 2017, 18:36
Я не большой специалист в области веб-приложений, а он нужен, этот BA?

Конечно Basic Auth достаточно примитивен, но для задач примитивной авторизации подходит отлично. Думаю да, нужен.