Mam pewne pytania dotyczące socketów. Ogólna idea mojej aplikacji jest taka: Serwer aktualizuje kilka plików co jakiś czas, a aplikacja w telefonie(client) ma te pliki mieć zawsze aktualne, czyli zgodne z serwerem. I tutaj pojawiają się pytania.
-
Pliki mają kilka MB. Pobierać tyle z każdym włączeniem aplikacji nie jest chyba dobrym pomysłem. Na pewno nie byłoby, gdyby pliki urosły do rozmiaru 1GB. Pomysł mam taki, żeby każdej aktualizacji plików przez serwer przyporządkować numer odpowiadający dacie aktualizacji (sekundy, które upłynęły od 1970 roku czy coś) i ten numer wysyłać clientowi za każdym razem, gdy pobiera pliki. Przy włączeniu aplikacji client by wysyłał ten numer i gdy są równe to pliki nie zostaną wysłane i zaoszczędzimy kilka MB transferu. Pytanie: Jak realizować taki problem? Czy moje rozwiązanie jest sensowne i tak powinno się to robić?
-
Inna sprawa to bezpieczeństwo. Nie widzę potrzeby, aby owe pliki były w pełni publiczne. Czy powinienem zastosować jakieś szyfrowanie? Jak wygląda sprawa z możliwością przechwycenia tych plików przez "kogoś z zewnątrz"? Gdybym zamiast mało istotnych plików przesyłał login i hasło do serwisu działającego na serwerze to konieczne by było jakieś konkretne szyfrowanie, czy może prosty algorytm typu RSA byłby wystarczającym zabezpieczeniem?