Sobes.tech
Middle

Πώς μεταφέρονται οι αλλαγές που γίνονται στον πελάτη στον διακομιστή και αποθηκεύονται στη βάση δεδομένων;

sobes.tech AI

Απάντηση από AI

Κατά κανόνα, οι αλλαγές που γίνονται από τον χρήστη σε μια web εφαρμογή (στον πελάτη) αποστέλλονται στον διακομιστή μέσω ενός αιτήματος HTTP.

Τύποι αιτημάτων HTTP:

  • POST: Χρησιμοποιείται για τη δημιουργία ενός νέου πόρου ή την αποστολή δεδομένων για επεξεργασία από τον διακομιστή. Συχνά χρησιμοποιείται για δεδομένα από φόρμες.
  • PUT: Χρησιμοποιείται για την ενημέρωση ενός υπάρχοντος πόρου. Μεταδίδεται η πλήρης κατάσταση του πόρου.
  • PATCH: Χρησιμοποιείται για μερική ενημέρωση του πόρου. Μεταδίδονται μόνο τα τροποποιημένα πεδία.
  • DELETE: Χρησιμοποιείται για τη διαγραφή πόρου.

Παράδειγμα ροής δεδομένων:

  1. Ο χρήστης εισάγει δεδομένα σε μια φόρμα σε μια ιστοσελίδα.
  2. Το JavaScript στην πλευρά του πελάτη συλλέγει αυτά τα δεδομένα (π.χ., σε ένα αντικείμενο JSON).
  3. Εκτελείται ένα αίτημα HTTP (π.χ., POST ή PUT) σε ένα συγκεκριμένο endpoint API του διακομιστή. Τα δεδομένα επισυνάπτονται στο σώμα του αιτήματος.
    // Παράδειγμα αποστολής δεδομένων στον διακομιστή με χρήση του fetch API
    const data = { username: 'newuser', email: 'newuser@example.com' };
    
    fetch('/api/users', {
      method: 'POST', // ή 'PUT', 'PATCH'
      headers: {
        'Content-Type': 'application/json',
        // Άλλες κεφαλίδες, π.χ., για αυθεντικοποίηση
      },
      body: JSON.stringify(data), // Μετατροπή του JavaScript αντικειμένου σε JSON
    })
    .then(response => response.json()) // Ανάγνωση της απάντησης από τον διακομιστή ως JSON
    .then(data => {
      console.log('Επιτυχία:', data);
      // Επεξεργασία της επιτυχούς απάντησης
    })
    .catch((error) => {
      console.error('Σφάλμα:', error);
      // Επεξεργασία σφάλματος
    });
    
  4. Η διακομιστική εφαρμογή λαμβάνει το αίτημα και το δρομολογεί στον κατάλληλο χειριστή (ελεγκτή).
  5. Ο ελεγκτής εξάγει τα δεδομένα από το σώμα του αιτήματος.
  6. Τα δεδομένα υπόκεινται σε επικύρωση και υγειονομική επεξεργασία στην πλευρά του διακομιστή για ασφάλεια και ακρίβεια.
  7. Η επιχειρηματική λογική επεξεργάζεται τα ληφθέντα δεδομένα (π.χ., ελέγχει την μοναδικότητα του ονόματος χρήστη, εκτελεί απαραίτητους υπολογισμούς).
  8. Ο ελεγκτής αλληλεπιδρά με το επίπεδο πρόσβασης στα δεδομένα (Data Access Layer - DAL) ή ORM (Object-Relational Mapper).
  9. Το DAL/ORM δημιουργεί SQL ερώτημα ή χρησιμοποιεί μεθόδους της βάσης δεδομένων για αποθήκευση, ενημέρωση ή διαγραφή δεδομένων.
    -- Παράδειγμα SQL INSERT
    INSERT INTO users (username, email) VALUES ('newuser', 'newuser@example.com');
    
    -- Παράδειγμα SQL UPDATE
    UPDATE users SET email = 'updated_email@example.com' WHERE username = 'newuser';
    
  10. Η βάση δεδομένων εκτελεί την ενέργεια και επιστρέφει το αποτέλεσμα (επιτυχία ή σφάλμα).
  11. Το DAL/ORM μεταφέρει το αποτέλεσμα στον ελεγκτή.
  12. Ο ελεγκτής διαμορφώνει την απάντηση προς τον πελάτη (π.χ., JSON με επιβεβαίωση επιτυχίας, HTTP status code 200 OK, ή σφάλμα με status code 400 Bad Request, 500 Internal Server Error κ.λπ.).
  13. Ο διακομιστής στέλνει την απάντηση στον πελάτη.
  14. Το JavaScript στην πλευρά του πελάτη επεξεργάζεται την απάντηση (π.χ., εμφανίζει μήνυμα επιτυχούς αποθήκευσης, ενημερώνει το UI ή εμφανίζει σφάλμα).

Οι τεχνολογίες που χρησιμοποιούνται εξαρτώνται από το συγκεκριμένο στοίβα:

  • Πελάτης: HTML, CSS, JavaScript (React, Angular, Vue.js κ.λπ.)
  • Διακομιστής: Frameworks (Node.js/Express, Python/Django/Flask, Ruby/Rails, Java/Spring, PHP/Laravel κ.λπ.)
  • Βάση δεδομένων: SQL (PostgreSQL, MySQL, SQL Server), NoSQL (MongoDB, Cassandra)

Ολόκληρη η διαδικασία πρέπει να είναι ασφαλής (HTTPS, αυθεντικοποίηση, εξουσιοδότηση, επικύρωση) και να χειρίζεται πιθανά σφάλματα σε κάθε στάδιο.