Sobes.tech
Middle

Чӣ гуна тағиротҳое, ки дар мизоҷ анҷом дода шудаанд, ба сервер интиқол ёфта, дар базаи додаҳо сабт мешаванд?

sobes.tech AI

Ҷавоб аз AI

Тавре, тағйиротҳое, ки корбар дар веб-барнома (дар тарафи муштарӣ) мекунад, тавассути дархости HTTP ба сервер фиристода мешаванд.

Намудҳои дархости HTTP:

  • POST: Барои эҷоди манбаи нав ё фиристодани маълумот барои коркард ба сервер истифода мешавад. Баъзан барои маълумот аз формҳо истифода мешавад.
  • PUT: Барои навсозии манбаи мавҷуда истифода мешавад. Ҳолати пурраи манбаъ интиқол дода мешавад.
  • PATCH: Барои навсозии қисман манбаъ истифода мешавад. Танҳо майдонҳои тағирёфта интиқол дода мешаванд.
  • DELETE: Барои нобуд кардани манбаъ истифода мешавад.

Маслиҳати раванд:

  1. Корбар маълумотро дар формаи веб ворид мекунад.
  2. JavaScript дар тарафи муштарӣ ин маълумотҳоро ҷамъоварӣ мекунад (масалан, дар объект JSON).
  3. Як дархости HTTP (масалан, POST ё PUT) ба нуқтаи охири 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 200 OK, ё хато бо коди статуси 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, тасдиқ, иҷозат, валидация) ва бояд хатогиҳоро дар ҳар қадам баррасӣ кунад.