Θα μπορούσες να συνδιάσεις το 3 και το 4:
Σε ένα web request δεν έχουμε μόνο για απάντηση το "200-Ok, successful connection" και το "404-Not found". Μπορούμε να χρησιμοποιήσουμε και την σειρά 300. Στην σειρά 300 έχουμε τα μηνύμα "301-Moved permanently", "302-Moved temporarily" και "304-Not modified". Αν ο server πάρει ένα request για ένα dataset και δει ότι δεν έχει ανανεωθεί, μπορεί να απαντήσει με ένα λάθος 304. O client, με error handling, μπορεί να καταλάβει ότι δεν έλαβε data και το λάθος αυτό σημαίνει ότι τα δεδομένα δεν άλλαξαν.
Ο παραπάνω τρόπος χρησιμοποιήται ευρέως με τα πρωτόκολλα που βασίζονται στο http, όπως στο RSS...
Βέβαια θα μπορούσε να υλοποιήσεις το παραπάνω και πιο απλά, δηλαδή κάθε φορά που θα κάνεις ένα request να περνάς και ένα timestamp - πότε έλαβες την τελευταία φορά δεδομένα. Όταν δεν υπάρχουν αλλαγές στα δεδομένα, ο server μπορεί να απαντά στο request, με ένα άδειο dataset για να υποδηλώσει ότι δεν έχεις αλλαγές στα δεδομένα.
George J.