Postgres CLI дахь CTRL-C нь асуулгыг цуцлах арга бол үнэхээр хакердсан юм.
Сэтгэгдэл
Mewayz Team
Editorial Team
SIGINT-ийн удаан үргэлжилсэн сүнс: Postgres CLI Query цуцлах нь яагаад хакердсан мэт санагддаг вэ
Хөгжүүлэгчид болон мэдээллийн сангийн администраторуудын хувьд PostgreSQL командын интерфейс (psql) нь найдвартай өдөр тутмын драйвер юм. Энэ нь хүчирхэг, нарийвчлалтай, хаа сайгүй байдаг. Гэсэн хэдий ч түүний хамгийн үндсэн харилцан үйлчлэлийн нэг болох CTRL-C товчлолын тусламжтайгаар оргосон асуулгыг цуцлах нь хачирхалтай санагдаж байна. Энэ тушаал нь одоогийн үйлдлийг зүгээр л зогсоодог орчин үеийн олон програмуудаас ялгаатай нь psql дээр CTRL-C нь сервер дээрх асуулгыг цуцалдаггүй. Үүний оронд үр дүнгийн үйлчлүүлэгчийн хүлээлтийг цуцалж, өгөгдлийн сангийн сервер дээр асуулга алдагдах магадлалтай. Энэ зан үйл нь алдаа биш юм; Энэ бол бидний багаж хэрэгслийн давхаргат, заримдаа хэврэг архитектурыг харуулсан дизайны олдвор юм. Mewayz гэх мэт модульчлагдсан системүүд дээр суурилсан бизнесүүдийн хувьд эдгээр үндсэн бодит байдлыг ойлгох нь бат бөх, хэрэглэгч төвтэй үйл ажиллагааны давхаргыг зохиоход чухал ач холбогдолтой юм.
Хоёр процессын үлгэр: Үйлчлүүлэгч болон Сервер
"Hack-y" мэдрэмжийн цөм нь psql-ийн архитектураас үүдэлтэй. Таныг psql дээр асуулга ажиллуулах үед хоёр бие даасан процесс ажиллаж байна: таны локал машин дээрх psql клиент процесс болон өгөгдлийн сангийн хост дээрх postgres серверийн процесс. CTRL-C товчлуурыг дарснаар psql клиент процесс рүү тусгайлан SIGINT (тасалдах дохио) илгээдэг. Үйлчлүүлэгчийн нэн даруй хийх ажил бол хүлээхээ больж, шуурхай мэдээлэл рүү буцах явдал юм. Гэсэн хэдий ч сервер нь үйлчлүүлэгч талын дохионы талаар ямар ч мэдлэггүй. Үүний үүднээс асуулга нь хүчинтэй, ажиллаж байгаа үйл ажиллагаа хэвээр байна. Цуцлах хүсэлтийг тусдаа, шинэ заавар болгон илгээх ёстой.
"PSQL дээрх CTRL-C нь "зогсоох" товч биш бөгөөд "миний өмнөх хүсэлтийг үл тоомсорлоно уу" гэсэн тэмдэгт нь завгүй номын санчийг стекийн тал руугаа явж байхад нь хүлээлгэж өгнө."
Цуцлах протокол: Хоёрдогч хүсэлт
Тэгвэл асуулга хэрхэн цуцлагддаг вэ? SIGINT-тэй харьцсаны дараа сайн зантай psql үйлчлүүлэгч PostgreSQL-ийн албан ёсны цуцлах протоколыг эхлүүлдэг. Энэ нь серверт цоо шинэ холболт нээж, таны асуулга явуулж буй тодорхой backend процессыг тодорхойлсон нууц түлхүүр агуулсан тусгай "хүсэлт цуцлах" мессежийг илгээх явдал юм. Энэ хүсэлтийг чухал ач холбогдолгүй байдлаар боловсруулж байгаа бөгөөд шууд амжилтанд хүрэх баталгаа байхгүй. Энэхүү олон шат дамжлагатай, шатааж, мартдаг үйл явц нь зан авирыг шууд бусаар мэдрэх шалтгаан болдог. Энэ нь шууд тасалдал биш юм; Энэ бол арын сувгаар илгээсэн эелдэг, асинхрон гуйлт юм.
Хэрэглэгчийн туршлагын зөрүү ба захын тохиолдлууд
Энэ загвар нь хэрэглэгчдэд хэд хэдэн бодит үрэлтийн цэгүүдэд хүргэдэг:
- Хариу өгөхгүй байна: Та CTRL-C товчийг дарж, хүсэлтээ даруй буцааж авах боловч сервер ажиллаж байгаа тул системийн ачаалал өндөр хэвээр байна.
- Тодорхойгүй үр дүн: Хэрэв цуцлах хүсэлтийг сервер хүлээн авсан эсвэл хүлээн авсан эсэхийг шууд баталгаажуулах боломжгүй.
- Холболтоос хамааралтай алдаа: Хэрэв сервер галт ханатай эсвэл цуцлах хүсэлтийн шинэ холболт амжилтгүй болбол анхны асуулга тодорхойгүй хугацаагаар асна.
- Сэтгэл зүйн таарамжгүй байдал: Бүх нийтийн "тацлах" команд нь синхрон цуцлалтыг гүйцэтгэдэггүй бөгөөд энэ нь тооцоолох орчны бусад хэсэгт бий болсон хэрэглэгчийн хүлээлтийг эвддэг.
Mewayz-ийн тусламжтайгаар ухамсартай суурь дээр тулгуурлах нь
Орчин үеийн бизнесийн үйлдлийн системүүд нь хязгаарлалтыг хүндэтгэхийн зэрэгцээ эдгээр үндсэн нарийн төвөгтэй байдлыг арилгах ёстой. Модульчлагдсан бизнесийн үйлдлийн систем болох Mewayz гэх мэт платформ нь удирддаг үйлчилгээний модулиудад мэдээллийн сангийн харилцан үйлчлэлийг багтаах болно. Жишээлбэл, Mewayz өгөгдлийн асуулгын модуль нь зөвхөн SQL-ийн эх сурвалжийг харуулахгүй; Энэ нь хэрэглэгчдэд ээлтэй удирдлагатай, үнэн зөв, шалгах боломжтой "зогсоох" товчлуур, асуулгын завсарлага, сервер дээр яг юу ажиллаж байгааг харуулдаг бодит цагийн статусын хяналтын самбаруудаар бүрхэнэ. Энэ нь протоколын гажуудлыг шийдвэрлэх туршлагаас тодорхой, хэрэгжүүлэх боломжтой бизнесийн үйл ажиллагааг удирдахад хүргэдэг. Psql-ийн CTRL-C-ийн сургамж бол гайхалтай хэрэгслүүд нь зөвхөн хүчирхэг чадавхийг ил гаргадаггүй; Тэд өөрсдийнхөө хувьд ойлгомжтой, найдвартай интерфэйсийг зохион бүтээж, архитектурын өвийг тасралтгүй ажлын урсгал болгон хувиргадаг. Хакердсаныг ойлгох нь илүү сайн зүйлийг бүтээх боломжийг нээж өгдөг.
💡 DID YOU KNOW?
Mewayz replaces 8+ business tools in one platform
CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.
Start Free →