Получение http запросов с помощью winsock - PullRequest
0 голосов
/ 06 октября 2018

В образовательных целях я пытаюсь сделать веб-API на C ++.Веб-API должен иметь возможность прослушивать HTTP-запросы (GET, POST и т. д.), когда он получает http-запрос, он должен иметь возможность отправлять данные обратно клиенту.Потому что именно для образовательных целей я бы хотел сделать это без лишних библиотек.Теперь первое, что мне нужно сделать, это сделать API способным получать запросы и отвечать на них, после некоторого исследования в Google, я обнаружил, что winsock, вероятно, является самым основным способом настройки сокетов для окон, но я мог найти очень мало при полученииhttp запросы.

Мой вопрос : возможно ли с помощью winsock получить http-запрос из браузера и отправить данные обратно в браузер?.

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Это потому, что HTTP - это протокол, который (обычно) использует TCP в качестве основного транспортного протокола.

Но попытка построить настоящий HTTP-слой поверх простого сокета win32 - это слишком много, даже для опытного разработчика C ++.

Многие неопытные разработчики C ++, вероятно, отказались бы от этой задачикак «ну, вам просто нужно прочитать некоторые данные, разобрать заголовки, собрать свой собственный HTTP-ответ и отправить его обратно».

но .. Вам нужно будет поддерживать

  • TLS, со всеми противными реализациями закрытых ключей / открытых ключей
  • Перенаправление
  • Chunked Transfer
  • G-Zip передача

и списокпродолжается и продолжается ..

Таким образом, на практике, если вы просто хотите принять сокет, прочитайте некоторые данные и отправьте базовый HTTP-ответ, чем да.Если вам нужна надежная профессиональная библиотека HTTP - скорее всего, нет.

0 голосов
/ 06 октября 2018

Мой вопрос: возможно ли с помощью winsock получить http-запрос из браузера и отправить данные обратно в браузер?

Да.^^

...