Так что не стесняйтесь не только отвечать на этот вопрос, но и выбрасывать предложения или улучшения. Я никогда не собирал крупномасштабное веб-приложение раньше. Вот мой мыслительный процесс:
- Уровень сохраняемости : Стандартная база данных (сейчас MySQL)
- Уровень бизнес-логики : REST-подобная структура (PHP, сервлеты Java и т. Д.)
- Уровень представления : веб-браузер, устройства Android (приложение, а не браузер) и другие
Причина, по которой я выбрал эту архитектуру, заключается в том, что устройства могут разрабатывать свои собственные пользовательские интерфейсы и подключаться к функциональности, подобной REST, используя GET, POST и что-либо, что не взаимодействует с сервером.
Задача 1:
Проблема в том, как вы защищаете информацию пользователя? Вы можете аутентифицировать пользователя через соединение SSL и вернуть специальный HASH, чтобы пользователь мог манипулировать своей учетной записью, но если кто-то прослушивает сеть, все, что ему нужно сделать, это прослушать вызов REST и украсть HASH. Одним из решений является то, что все REST-подобные вызовы должны выполняться по SSL, но это вызывает другую проблему.
Задача 2:
Если REST-процедуры выполняются в SSL, браузер должен использовать SSL для всего, что, на мой взгляд, может быть медленным и громоздким, когда в нем нет необходимости. Кроме того, SOP делает невозможным использование ajax-вызовов SSL для процедур REST из незащищенного браузера. HTTP и HTTPS считаются разными источниками, даже если это один и тот же источник, разные протоколы.
Является ли это решение жизнеспособным? Как бы я решил эти две проблемы? Или, возможно (возможно), есть ли лучшая архитектура, которую я должен изучить для моего веб-приложения. Заранее благодарим за все предложения.