Я хотел бы использовать HTTPS для обеспечения связи между моим клиентом и сервером. Первое зашифрованное сообщение будет использоваться для аутентификации пользователя, то есть проверки его/ее имени пользователя и пароля.Использование HTTPS для связи клиент-сервер
После того, как учетные данные пользователя будут успешно проверены сервером, я хотел бы начать получать некоторые данные в последующих запросах. НО, как сервер будет определять, что последующий запрос отправляется пользователем, чьи учетные данные уже были проверены?
Поскольку соединение TCP может быть закрыто между логином и последующими HTTPS-запросами, это означает, что контекст SSL должен быть освобожден сервером, поэтому с новым запросом GET необходимо установить новое TCP-соединение и должно быть выполнено новое соединение SSL (TLS) (т.е. новый общий пароль для шифрования должен быть заменен обеими сторонами и т. д.)
Для этого я думаю, что серверу необходимо отправить обратно клиенту ответ 200 OK для первоначальная проверка подлинности требует некоторого произвольно сгенерированного nonce (который действителен в течение определенного времени), который я буду включать в каждый последующий запрос, поэтому сервер сможет обнаруживать на основе этого случайно сгенерированного nonce, какое имя пользователя находится за запросом и убедитесь, что этот пользователь уже вошел в систему. I Насколько я понимаю?
Большое спасибо за ответ BR Sten
Привет, большое спасибо за ваш комментарий! Все коммуникации проходят через HTTPS - без исключения. Я думал одинаково: либо отправить имя пользователя/пароль в каждом запросе, либо дать серверу ответить на первый запрос с помощью некоторой магии, которую я буду использовать в каждом запросе вместо повторения имени пользователя/прохода (мой клиент не является браузером , но пользовательское приложение.).Я думаю, что оба подхода более или менее одинаковы, в то время как для второго требуется больше работы на сервере. Могу ли я спросить вас, что такое отраслевой стандарт? Применяется ли приложение HTTPS таким образом, что они повторно отправляют имя пользователя/пароль в каждом запросе? Спасибо, BR STeN – STeN
@STeN: Существует несколько «отраслевых стандартов», в зависимости от ваших требований. Я перечислил два выше, которые являются очень распространенными и имеют несколько другие общие шаблоны использования. Существуют и другие (например, клиентские сертификаты на уровне SSL), но они менее распространены, и вы с большей вероятностью столкнетесь с проблемами с переносимыми реализациями или хорошими развертываниями. –
Спасибо - ваши советы действительно хороши! – STeN