Sobes.tech
Middle

HTTP usullari va ularning idempotentligi haqida gapiring.

sobes.tech AI

AIdan javob

HTTP-методлар мижозга ресурс устида амалга оширишни истаган ҳаракатни аниқлайди. Асосий методлар:

  • GET: Ресурсни олиш. Идempotент (такрорланадиган сўровлар серверда ҳолатни ўзгартирмайди).
  • POST: Маълумотларни ишлаш учун юбориш (масалан, янги ресурс яратиш, форма маълумотларини юбориш). Одатда, идempotент эмас.
  • PUT: Белгиланган URI бўйича ресурс яратиш ёки янгилаш. Идempotент (ҳамма маълумотлар билан такрорланадиган сўров ҳам шу ресурс ҳолатини олиб келади).
  • DELETE: Белгиланган URI бўйича ресурсни ўчириш. Идempotент (биринчи муваффақиятли сўровдан кейин, такрорланадиган сўровлар ресурс ҳолатини ўзгартирмайди, чунки у аллақачон ўчирилган).
  • PATCH: Ресурсни қисман ўзгартириш. Одатда, идempotент эмас, чунки амалиётлар тартиби аҳамиятга эга бўлиши мумкин.
  • HEAD: Жавоб сарлавҳаларини GETдан олиш, жавоб матнисиз. Идempotент.
  • OPTIONS: Ресурс учун қўлланилаётган методлар рўйхатини олиш. Идempotент.

Идempotентлик, бир хил сўровни кўп марта амалга ошириш натижасида тизимнинг охирги ҳолати бир марта амалга ошириш билан бир хил бўлишини англатади. Бу фақат сервердаги қўшимча таъсирларга тегишли. Сервер жавоблари фарқланиши мумкин (масалан, биринчи DELETE сўрови 200 OK қайтариши мумкин, кейинги — 404 Not Found).

Идempotент бўлмаган амалиётларга мисоллар:

  • POST ёрдамида товарни корзинага бир неча марта қўшиш.
  • POST ёки PATCH билан ҳисоблагични ошириш.

Идempotент амалиётларга мисоллар:

  • GET билан маълумотларни бир неча марта олиш.
  • Аниқ бир ID билан фойдаланувчини яратиш ёки янгилаш (PUT).
  • Аниқ бир ID билан фойдаланувчини ўчириш (DELETE).

Идempotентлик, сўровларни қайта юбориш зарур бўлганда (масалан, тармоқ хато бўлганда) муҳимдир. Сервер, идempotент сўровни бир неча марта хавфсизлик билан бажара олади, ниятга номувофиқ ўзгартиришларсиз.