{"id":82577,"date":"2024-12-19T09:33:59","date_gmt":"2024-12-19T02:33:59","guid":{"rendered":"https:\/\/itviec.com\/blog\/?p=82577"},"modified":"2025-09-28T00:22:01","modified_gmt":"2025-09-27T17:22:01","slug":"cau-hoi-phong-van-backend","status":"publish","type":"post","link":"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/","title":{"rendered":"Top 30+ c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend th\u01b0\u1eddng g\u1eb7p"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed9i dung b\u00e0i vi\u1ebft<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#Backend_la_gi_Backend_Developer_lam_gi\" >Backend l\u00e0 g\u00ec? Backend Developer l\u00e0m g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#Cau_hoi_phong_van_Backend_ve_kien_thuc_co_ban\" >C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 ki\u1ebfn th\u1ee9c c\u01a1 b\u1ea3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#Cau_hoi_phong_van_Backend_ve_co_so_du_lieu\" >C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 c\u01a1 s\u1edf d\u1eef li\u1ec7u<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#Cau_hoi_phong_van_Backend_ve_Performance_va_Scalability\" >C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 Performance v\u00e0 Scalability<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#Cau_hoi_phong_van_Backend_ve_bao_mat\" >C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 b\u1ea3o m\u1eadt<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#Cau_hoi_phong_van_Backend_ve_cac_ky_thuat_lap_trinh_va_cong_cu\" >C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 c\u00e1c k\u1ef9 thu\u1eadt l\u1eadp tr\u00ecnh v\u00e0 c\u00f4ng c\u1ee5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#Cau_hoi_phong_van_Backend_ve_ngon_ngu_lap_trinh\" >C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#Cau_hoi_phong_van_Backend_ve_he_thong_phan_tan\" >C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 h\u1ec7 th\u1ed1ng ph\u00e2n t\u00e1n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#Tong_ket_cau_hoi_phong_van_Backend\" >T\u1ed5ng k\u1ebft c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend<\/a><\/li><\/ul><\/nav><\/div>\n\n<p><em><strong>B\u1ea1n \u0111\u00e3 s\u1eb5n s\u00e0ng cho bu\u1ed5i ph\u1ecfng v\u1ea5n v\u1ecb tr\u00ed l\u1eadp tr\u00ecnh vi\u00ean Backend (Backend Developer) s\u1eafp t\u1edbi? T\u01b0\u1edfng t\u01b0\u1ee3ng ng\u1ed3i tr\u01b0\u1edbc m\u1eb7t b\u1ea1n hi\u1ec7n t\u1ea1i l\u00e0 Ban tuy\u1ec3n d\u1ee5ng. H\u00e3y tr\u1ea3 l\u1eddi c\u00e1c c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend c\u00f3 trong b\u00e0i vi\u1ebft n\u00e0y tr\u01b0\u1edbc khi nh\u00ecn \u0111\u00e1p \u00e1n, \u0111\u1ec3 ki\u1ec3m tra ki\u1ebfn th\u1ee9c c\u1ee7a b\u1ea1n nh\u00e9.<\/strong><\/em><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">\u0110\u1ecdc b\u00e0i vi\u1ebft \u0111\u1ec3 hi\u1ec3u r\u00f5 h\u01a1n v\u1ec1:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Backend l\u00e0 g\u00ec? Vai tr\u00f2 c\u00f4ng vi\u1ec7c c\u1ee7a Backend Developer<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 ki\u1ebfn th\u1ee9c c\u01a1 b\u1ea3n<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n backend v\u1ec1 c\u01a1 s\u1edf d\u1eef li\u1ec7u<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 Performance v\u00e0 Scalability<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n backend v\u1ec1 b\u1ea3o m\u1eadt<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n backend v\u1ec1 c\u00e1c k\u1ef9 thu\u1eadt l\u1eadp tr\u00ecnh v\u00e0 c\u00f4ng c\u1ee5<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n backend v\u1ec1 ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n backend v\u1ec1 h\u1ec7 th\u1ed1ng ph\u00e2n t\u00e1n<\/span><\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>Tr\u01b0\u1edbc khi b\u1eaft \u0111\u1ea7u luy\u1ec7n t\u1eadp c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n, h\u00e3y tham kh\u1ea3o v\u00e0 \u1ee9ng tuy\u1ec3n <strong><a href=\"https:\/\/itviec.com\/it-jobs\/backend?utm_medium=anchor_text_high&amp;utm_source=blog&amp;utm_campaign=viec_lam_backend&amp;utm_content=cau_hoi_phong_van_backend\" target=\"_blank\" rel=\"noreferrer noopener\">vi\u1ec7c l\u00e0m Backend<\/a><\/strong> m\u1edbi nh\u1ea5t tr\u00ean to\u00e0n qu\u1ed1c \u0111\u1ec3 m\u1edf r\u1ed9ng c\u01a1 h\u1ed9i vi\u1ec7c l\u00e0m.<\/em><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-backend-la-gi-backend-developer-lam-gi\"><span class=\"ez-toc-section\" id=\"Backend_la_gi_Backend_Developer_lam_gi\"><\/span><b>Backend l\u00e0 g\u00ec? Backend Developer l\u00e0m g\u00ec?<\/b><i><\/i><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400;\">L\u1eadp tr\u00ecnh backend l\u00e0 c\u00f4ng vi\u1ec7c t\u1eadp trung v\u00e0o ph\u1ea7n m\u1ec1m ph\u00eda m\u00e1y ch\u1ee7, ch\u1ecbu tr\u00e1ch nhi\u1ec7m cho nh\u1eefng ph\u1ea7n \u201c\u1ea9n\u201d &#8211; nh\u1eefng g\u00ec m\u00e0 ng\u01b0\u1eddi d\u00f9ng kh\u00f4ng th\u1ec3 nh\u00ecn th\u1ea5y, c\u1ee7a m\u1ed9t trang web ho\u1eb7c \u1ee9ng d\u1ee5ng web.&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">C\u00f4ng vi\u1ec7c ch\u00ednh c\u1ee7a <a href=\"https:\/\/itviec.com\/blog\/backend-developer-la-gi\/\" target=\"_blank\" rel=\"noopener\"><strong>Backend Developer<\/strong><\/a> l\u00e0 x\u00e2y d\u1ef1ng v\u00e0 duy tr\u00ec trang web b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh, framework, c\u00f4ng c\u1ee5 kh\u00e1c nhau \u0111\u1ec3 vi\u1ebft code ch\u1ea5t l\u01b0\u1ee3ng cao (s\u1ea1ch, d\u1ec5 b\u1ea3o tr\u00ec), qu\u1ea3n l\u00fd c\u01a1 s\u1edf d\u1eef li\u1ec7u, logic ph\u00eda m\u00e1y ch\u1ee7, API,&#8230;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Ngo\u00e0i ra, \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o trang web \u0111\u01b0\u1ee3c v\u1eadn h\u00e0nh tr\u01a1n tru, c\u00e1c Backend Developer c\u00f2n th\u1ef1c hi\u1ec7n c\u00e1c c\u00f4ng vi\u1ec7c kh\u00e1c nh\u01b0:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Th\u1ef1c hi\u1ec7n ki\u1ec3m tra ch\u1ea5t l\u01b0\u1ee3ng (QA): L\u1eadp k\u1ebf ho\u1ea1ch v\u00e0 gi\u00e1m s\u00e1t c\u00e1c l\u1ecbch tr\u00ecnh ki\u1ec3m th\u1eed nh\u1eb1m t\u1ed1i \u01b0u h\u00f3a giao di\u1ec7n v\u00e0 tr\u1ea3i nghi\u1ec7m ng\u01b0\u1eddi d\u00f9ng, \u0111\u1ea3m b\u1ea3o hi\u1ec3n th\u1ecb t\u1ed1t tr\u00ean nhi\u1ec1u tr\u00ecnh duy\u1ec7t v\u00e0 thi\u1ebft b\u1ecb kh\u00e1c nhau.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0110\u00e1nh gi\u00e1 hi\u1ec7u qu\u1ea3 v\u00e0 t\u1ed1c \u0111\u1ed9: Sau khi trang web ho\u1ea1t \u0111\u1ed9ng, c\u0169ng nh\u01b0 trong qu\u00e1 tr\u00ecnh c\u1eadp nh\u1eadt v\u00e0 ch\u1ec9nh s\u1eeda, nh\u00e0 ph\u00e1t tri\u1ec3n c\u1ea7n \u0111\u00e1nh gi\u00e1 hi\u1ec7u su\u1ea5t v\u00e0 kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng, \u0111\u1ed3ng th\u1eddi \u0111i\u1ec1u ch\u1ec9nh m\u00e3 khi c\u1ea7n thi\u1ebft.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Kh\u1eafc ph\u1ee5c s\u1ef1 c\u1ed1 v\u00e0 g\u1ee1 l\u1ed7i: C\u00f3 kh\u1ea3 n\u0103ng x\u1eed l\u00fd c\u00e1c v\u1ea5n \u0111\u1ec1, kh\u1eafc ph\u1ee5c l\u1ed7i v\u00e0 th\u00f4ng b\u00e1o ch\u00fang cho qu\u1ea3n l\u00fd d\u1ef1 \u00e1n, c\u00e1c b\u00ean li\u00ean quan v\u00e0 \u0111\u1ed9i QA.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0110\u00e0o t\u1ea1o v\u00e0 h\u1ed7 tr\u1ee3: Duy tr\u00ec quy tr\u00ecnh l\u00e0m vi\u1ec7c v\u1edbi c\u00e1c nh\u00f3m kh\u00e1ch h\u00e0ng \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o h\u1ed7 tr\u1ee3 li\u00ean t\u1ee5c, \u0111\u1ed3ng th\u1eddi h\u01b0\u1edbng d\u1eabn v\u00e0 \u0111\u00e0o t\u1ea1o c\u00e1c Backend Developer c\u1ea5p d\u01b0\u1edbi.<\/span><\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc th\u00eam: <a href=\"https:\/\/itviec.com\/blog\/lo-trinh-hoc-backend\/\" target=\"_blank\" rel=\"noopener\"><strong>L\u1ed9 tr\u00ecnh h\u1ecdc Backend to\u00e0n di\u1ec7n A-Z cho ng\u01b0\u1eddi m\u1edbi b\u1eaft \u0111\u1ea7u<\/strong><\/a><\/em><\/p>\n<\/blockquote>\n\n\n\n<p>Sau \u0111\u00e2y l\u00e0 chi ti\u1ebft 30+ c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend c\u01a1 b\u1ea3n c\u1ea7n bi\u1ebft!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cau-h\u1ecfi-ph\u1ecfng-v\u1ea5n-backend-v\u1ec1-ki\u1ebfn-th\u1ee9c-c\u01a1-b\u1ea3n\"><span class=\"ez-toc-section\" id=\"Cau_hoi_phong_van_Backend_ve_kien_thuc_co_ban\"><\/span><b>C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 ki\u1ebfn th\u1ee9c c\u01a1 b\u1ea3n<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-api-la-gi\"><b>API l\u00e0 g\u00ec?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">API (Application Programming Interface &#8211; Giao di\u1ec7n l\u1eadp tr\u00ecnh \u1ee9ng d\u1ee5ng) l\u00e0 m\u1ed9t t\u1eadp h\u1ee3p c\u00e1c quy t\u1eafc ho\u1eb7c giao th\u1ee9c cho ph\u00e9p c\u00e1c \u1ee9ng d\u1ee5ng ph\u1ea7n m\u1ec1m kh\u00e1c nhau giao ti\u1ebfp v\u00e0 t\u01b0\u01a1ng t\u00e1c v\u1edbi nhau.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Hi\u1ec3u \u0111\u01a1n gi\u1ea3n h\u01a1n, API gi\u1ed1ng nh\u01b0 m\u1ed9t &#8220;th\u1ef1c \u0111\u01a1n&#8221; trong nh\u00e0 h\u00e0ng, n\u01a1i b\u1ea1n c\u00f3 th\u1ec3 y\u00eau c\u1ea7u c\u00e1c m\u00f3n \u0103n (d\u1eef li\u1ec7u ho\u1eb7c ch\u1ee9c n\u0103ng) m\u00e0 b\u1ea1n c\u1ea7n v\u00e0 b\u1ebfp (h\u1ec7 th\u1ed1ng backend) s\u1ebd chu\u1ea9n b\u1ecb v\u00e0 g\u1eedi ch\u00fang \u0111\u1ebfn b\u1ea1n. B\u1ea1n kh\u00f4ng c\u1ea7n bi\u1ebft c\u00e1ch m\u00f3n \u0103n \u0111\u01b0\u1ee3c n\u1ea5u nh\u01b0 th\u1ebf n\u00e0o (chi ti\u1ebft k\u1ef9 thu\u1eadt ph\u00eda sau), ch\u1ec9 c\u1ea7n y\u00eau c\u1ea7u \u0111\u00fang m\u00f3n d\u1ef1a tr\u00ean th\u1ef1c \u0111\u01a1n (API).<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">C\u00e1c vai tr\u00f2 ch\u00ednh c\u1ee7a API bao g\u1ed3m:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>T\u01b0\u01a1ng t\u00e1c: <\/b><span style=\"font-weight: 400;\">K\u1ebft n\u1ed1i v\u00e0 trao \u0111\u1ed5i d\u1eef li\u1ec7u gi\u1eefa c\u00e1c h\u1ec7 th\u1ed1ng kh\u00e1c nhau.<\/span><\/li>\n\n\n\n<li><b>T\u1ef1 \u0111\u1ed9ng h\u00f3a: <\/b><span style=\"font-weight: 400;\">Gi\u00fap c\u00e1c \u1ee9ng d\u1ee5ng t\u1ef1 \u0111\u1ed9ng th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 m\u00e0 kh\u00f4ng c\u1ea7n s\u1ef1 can thi\u1ec7p c\u1ee7a con ng\u01b0\u1eddi.<\/span><\/li>\n\n\n\n<li><b>T\u00edch h\u1ee3p:<\/b><span style=\"font-weight: 400;\"> Cho ph\u00e9p t\u00edch h\u1ee3p gi\u1eefa c\u00e1c \u1ee9ng d\u1ee5ng, v\u00ed d\u1ee5: t\u00edch h\u1ee3p Google Maps v\u00e0o \u1ee9ng d\u1ee5ng \u0111\u1eb7t xe.<\/span><\/li>\n\n\n\n<li><b>T\u0103ng hi\u1ec7u qu\u1ea3: <\/b>C\u00e1c l\u1eadp tr\u00ecnh vi\u00ean c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng API c\u00f3 s\u1eb5n \u0111\u1ec3 ti\u1ebft ki\u1ec7m th\u1eddi gian v\u00e0 c\u00f4ng s\u1ee9<span style=\"font-weight: 400;\">c.<\/span><\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc th\u00eam: <a href=\"https:\/\/itviec.com\/blog\/api-la-gi\/\" target=\"_blank\" rel=\"noopener\"><strong>API l\u00e0 g\u00ec? 4 \u0111\u1eb7c \u0111i\u1ec3m n\u1ed5i b\u1eadt c\u1ee7a API<\/strong><\/a><\/em><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-api-endpoint-la-gi\"><b>API endpoint l\u00e0 g\u00ec?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">API endpoint l\u00e0 m\u1ed9t URL c\u1ee5 th\u1ec3 tr\u00ean m\u1ed9t m\u00e1y ch\u1ee7. Th\u00f4ng qua API endpoint, c\u00e1c \u1ee9ng d\u1ee5ng kh\u00e1ch c\u00f3 th\u1ec3 t\u01b0\u01a1ng t\u00e1c v\u1edbi m\u00e1y ch\u1ee7 b\u1eb1ng c\u00e1ch g\u1eedi y\u00eau c\u1ea7u (\u0111\u00f4i khi k\u00e8m theo d\u1eef li\u1ec7u d\u01b0\u1edbi d\u1ea1ng payload) v\u00e0 nh\u1eadn ph\u1ea3n h\u1ed3i t\u1eeb m\u00e1y ch\u1ee7. Th\u00f4ng th\u01b0\u1eddng, m\u1ed7i endpoint \u0111\u01b0\u1ee3c \u00e1nh x\u1ea1 t\u1edbi m\u1ed9t ch\u1ee9c n\u0103ng duy nh\u1ea5t trong m\u00e1y ch\u1ee7.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">B\u1ea1n c\u00f3 th\u1ec3 h\u00ecnh dung endpoint gi\u1ed1ng nh\u01b0 \u0111\u1ecba ch\u1ec9 nh\u00e0 c\u1ee7a b\u1ea1n. Khi b\u1ea1n mu\u1ed1n \u0111\u1ebfn nh\u00e0 ai \u0111\u00f3, b\u1ea1n c\u1ea7n c\u00f3 \u0111\u1ecba ch\u1ec9 ch\u00ednh x\u00e1c. T\u01b0\u01a1ng t\u1ef1, khi m\u1ed9t \u1ee9ng d\u1ee5ng mu\u1ed1n truy xu\u1ea5t d\u1eef li\u1ec7u ho\u1eb7c th\u1ef1c hi\u1ec7n m\u1ed9t h\u00e0nh \u0111\u1ed9ng n\u00e0o \u0111\u00f3 th\u00f4ng qua m\u1ed9t API, n\u00f3 c\u1ea7n bi\u1ebft ch\u00ednh x\u00e1c \u0111\u1ecba ch\u1ec9 endpoint c\u1ee7a API \u0111\u00f3.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5: B\u1ea1n mu\u1ed1n l\u1ea5y th\u00f4ng tin v\u1ec1 s\u1ea3n ph\u1ea9m magic keyboard t\u1eeb m\u1ed9t c\u1eeda h\u00e0ng tr\u1ef1c tuy\u1ebfn. C\u1eeda h\u00e0ng n\u00e0y s\u1ebd cung c\u1ea5p m\u1ed9t API \u0111\u1ec3 c\u00e1c \u1ee9ng d\u1ee5ng kh\u00e1c c\u00f3 th\u1ec3 truy c\u1eadp d\u1eef li\u1ec7u c\u1ee7a h\u1ecd.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Endpoint c\u00f3 th\u1ec3 l\u00e0: <\/span><span style=\"font-weight: 400;\">https:\/\/api.cuahangtructuyen.com\/products\/123<\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Trong \u0111\u00f3:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">https:\/\/api.cuahangtructuyen.com: L\u00e0 \u0111\u1ecba ch\u1ec9 c\u1ee7a m\u00e1y ch\u1ee7 cung c\u1ea5p API.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\/products\/123: L\u00e0 ph\u1ea7n \u0111\u01b0\u1eddng d\u1eabn ch\u1ec9 ra r\u1eb1ng b\u1ea1n mu\u1ed1n truy xu\u1ea5t th\u00f4ng tin v\u1ec1 s\u1ea3n ph\u1ea9m c\u00f3 ID l\u00e0 123.<\/span><\/li>\n<\/ul>\n\n\n\n<p><span style=\"font-weight: 400;\">Khi b\u1ea1n g\u1eedi m\u1ed9t y\u00eau c\u1ea7u \u0111\u1ebfn endpoint n\u00e0y, m\u00e1y ch\u1ee7 s\u1ebd x\u1eed l\u00fd y\u00eau c\u1ea7u v\u00e0 tr\u1ea3 v\u1ec1 th\u00f4ng tin v\u1ec1 s\u1ea3n ph\u1ea9m \u0111\u00f3.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-gi\u1ea3i-thich-cach-thi\u1ebft-k\u1ebf-m\u1ed9t-restful-api-chu\u1ea9n\"><b>Gi\u1ea3i th\u00edch c\u00e1ch thi\u1ebft k\u1ebf m\u1ed9t RESTful API chu\u1ea9n<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">\u0110\u1ec3 m\u1ed9t API \u0111\u01b0\u1ee3c xem l\u00e0 RESTful (tu\u00e2n th\u1ee7 c\u00e1c nguy\u00ean t\u1eafc REST), n\u00f3 c\u1ea7n \u0111\u00e1p \u1ee9ng c\u00e1c ti\u00eau ch\u00ed sau:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Ki\u1ebfn tr\u00fac client-server (m\u00e1y kh\u00e1ch &#8211; m\u00e1y ch\u1ee7): API ph\u1ea3i tu\u00e2n theo m\u00f4 h\u00ecnh ki\u1ebfn tr\u00fac client-server, n\u01a1i m\u00e1y kh\u00e1ch v\u00e0 m\u00e1y ch\u1ee7 \u0111\u01b0\u1ee3c t\u00e1ch bi\u1ec7t r\u00f5 r\u00e0ng (\u0111i\u1ec1u n\u00e0y \u00e1p d\u1ee5ng cho t\u1ea5t c\u1ea3 c\u00e1c d\u1ecbch v\u1ee5 d\u1ef1a tr\u00ean HTTP).<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Giao di\u1ec7n th\u1ed1ng nh\u1ea5t: C\u00f3 c\u00e1ch x\u00e1c \u0111\u1ecbnh t\u1eebng t\u00e0i nguy\u00ean m\u1ed9t c\u00e1ch duy nh\u1ea5t th\u00f4ng qua URI (Unique Resource Identification). Bao g\u1ed3m c\u00e1c ph\u01b0\u01a1ng th\u1ee9c HTTP (GET, POST, PUT, DELETE) \u0111\u1ec3 t\u01b0\u01a1ng t\u00e1c v\u1edbi t\u00e0i nguy\u00ean theo c\u00e1c c\u00e1ch kh\u00e1c nhau (l\u1ea5y th\u00f4ng tin, t\u1ea1o m\u1edbi, c\u1eadp nh\u1eadt, x\u00f3a).<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u00f3 c\u00e1ch \u0111\u1ec3 ch\u1ec9nh s\u1eeda t\u00e0i nguy\u00ean th\u00f4ng qua bi\u1ec3u di\u1ec5n (representation) c\u1ee7a n\u00f3.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u00e1c th\u00f4ng \u0111i\u1ec7p ph\u1ea3i t\u1ef1 m\u00f4 t\u1ea3, ngh\u0129a l\u00e0 m\u1ed7i th\u00f4ng \u0111i\u1ec7p c\u1ea7n ch\u1ee9a \u0111\u1ee7 th\u00f4ng tin \u0111\u1ec3 hi\u1ec3u c\u00e1ch x\u1eed l\u00fd ch\u00fang.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">M\u00e1y kh\u00e1ch s\u1eed d\u1ee5ng API c\u1ea7n c\u00f3 kh\u1ea3 n\u0103ng kh\u00e1m ph\u00e1 c\u00e1c h\u00e0nh \u0111\u1ed9ng c\u00f3 th\u1ec3 th\u1ef1c hi\u1ec7n tr\u00ean t\u00e0i nguy\u00ean hi\u1ec7n t\u1ea1i d\u1ef1a tr\u00ean ph\u1ea3n h\u1ed3i t\u1eeb m\u00e1y ch\u1ee7 (nguy\u00ean t\u1eafc n\u00e0y \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 HATEOAS &#8211; Hypermedia as the Engine of Application State).<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">T\u00ednh ch\u1ea5t stateless (kh\u00f4ng tr\u1ea1ng th\u00e1i): M\u1ed7i y\u00eau c\u1ea7u g\u1eedi t\u1edbi m\u00e1y ch\u1ee7 ph\u1ea3i ch\u1ee9a to\u00e0n b\u1ed9 th\u00f4ng tin c\u1ea7n thi\u1ebft \u0111\u1ec3 x\u1eed l\u00fd y\u00eau c\u1ea7u, kh\u00f4ng ph\u1ee5 thu\u1ed9c v\u00e0o tr\u1ea1ng th\u00e1i tr\u01b0\u1edbc \u0111\u00f3.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">H\u1ec7 th\u1ed1ng ph\u00e2n l\u1edbp (layered system): M\u00e1y kh\u00e1ch v\u00e0 m\u00e1y ch\u1ee7 kh\u00f4ng c\u1ea7n k\u1ebft n\u1ed1i tr\u1ef1c ti\u1ebfp v\u1edbi nhau. C\u00f3 th\u1ec3 c\u00f3 c\u00e1c trung gian (nh\u01b0 b\u1ed9 nh\u1edb \u0111\u1ec7m, proxy), nh\u01b0ng \u0111i\u1ec1u n\u00e0y kh\u00f4ng \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn giao ti\u1ebfp gi\u1eefa m\u00e1y kh\u00e1ch v\u00e0 m\u00e1y ch\u1ee7.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u00f3 kh\u1ea3 n\u0103ng cache: C\u00e1c t\u00e0i nguy\u00ean n\u00ean c\u00f3 kh\u1ea3 n\u0103ng \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef t\u1ea1m th\u1eddi (caching) b\u1edfi m\u00e1y kh\u00e1ch ho\u1eb7c m\u00e1y ch\u1ee7 \u0111\u1ec3 t\u1ed1i \u01b0u h\u00f3a hi\u1ec7u su\u1ea5t.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Code on Demand (t\u00f9y ch\u1ecdn): M\u00e1y ch\u1ee7 c\u00f3 th\u1ec3 g\u1eedi m\u00e3 \u0111\u1ec3 m\u00e1y kh\u00e1ch th\u1ef1c thi (ch\u1eb3ng h\u1ea1n nh\u01b0 m\u00e3 JavaScript), m\u1eb7c d\u00f9 \u0111i\u1ec1u n\u00e0y kh\u00f4ng b\u1eaft bu\u1ed9c.<\/span><\/li>\n<\/ul>\n\n\n\n<p><span style=\"font-weight: 400;\">Nh\u1eefng nguy\u00ean t\u1eafc n\u00e0y gi\u00fap API RESTful linh ho\u1ea1t, d\u1ec5 s\u1eed d\u1ee5ng v\u00e0 hi\u1ec7u qu\u1ea3 h\u01a1n trong vi\u1ec7c x\u00e2y d\u1ef1ng v\u00e0 v\u1eadn h\u00e0nh c\u00e1c h\u1ec7 th\u1ed1ng ph\u1ea7n m\u1ec1m.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-oop-la-gi-oop-co-\u01b0u-di\u1ec3m-gi-so-v\u1edbi-pp\"><b>OOP l\u00e0 g\u00ec? OOP c\u00f3 \u01b0u \u0111i\u1ec3m g\u00ec so v\u1edbi PP?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/itviec.com\/blog\/oop-la-gi\/\" target=\"_blank\" rel=\"noopener\"><strong>OOP<\/strong><\/a> l\u00e0 vi\u1ebft t\u1eaft c\u1ee7a Object-Oriented Programming &#8211; L\u1eadp tr\u00ecnh h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng. \u0110\u00e2y l\u00e0 m\u1ed9t ph\u01b0\u01a1ng ph\u00e1p l\u1eadp tr\u00ecnh d\u1ef1a tr\u00ean kh\u00e1i ni\u1ec7m \u0111\u1ed1i t\u01b0\u1ee3ng. Thay v\u00ec t\u1eadp trung v\u00e0o c\u00e1c logic v\u00e0 thu\u1eadt to\u00e1n, OOP t\u1eadp trung v\u00e0o vi\u1ec7c m\u00f4 h\u00ecnh h\u00f3a th\u1ebf gi\u1edbi th\u1ef1c th\u00e0nh c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng, m\u1ed7i \u0111\u1ed1i t\u01b0\u1ee3ng c\u00f3 c\u00e1c thu\u1ed9c t\u00ednh (t\u00ednh ch\u1ea5t) v\u00e0 c\u00e1c ph\u01b0\u01a1ng th\u1ee9c (h\u00e0nh \u0111\u1ed9ng).<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">PP l\u00e0 vi\u1ebft t\u1eaft c\u1ee7a Procedural Programming &#8211;&nbsp; L\u1eadp tr\u00ecnh h\u01b0\u1edbng th\u1ee7 t\u1ee5c. Ph\u01b0\u01a1ng ph\u00e1p n\u00e0y t\u1eadp trung v\u00e0o vi\u1ec7c vi\u1ebft c\u00e1c th\u1ee7 t\u1ee5c ho\u1eb7c ph\u01b0\u01a1ng th\u1ee9c \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c thao t\u00e1c tr\u00ean d\u1eef li\u1ec7u.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">So v\u1edbi PP, OOP mang l\u1ea1i nhi\u1ec1u \u01b0u \u0111i\u1ec3m v\u01b0\u1ee3t tr\u1ed9i h\u01a1n h\u1eb3n trong l\u1eadp tr\u00ecnh Backend:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Nhanh h\u01a1n v\u00e0 d\u1ec5 th\u1ef1c thi h\u01a1n: OOP gi\u00fap t\u0103ng t\u1ed1c \u0111\u1ed9 v\u00e0 \u0111\u01a1n gi\u1ea3n h\u00f3a qu\u00e1 tr\u00ecnh th\u1ef1c thi ch\u01b0\u01a1ng tr\u00ecnh.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Cung c\u1ea5p c\u1ea5u tr\u00fac r\u00f5 r\u00e0ng cho ch\u01b0\u01a1ng tr\u00ecnh: C\u00e1c ch\u01b0\u01a1ng tr\u00ecnh vi\u1ebft b\u1eb1ng OOP d\u1ec5 t\u1ed5 ch\u1ee9c v\u00e0 hi\u1ec3u h\u01a1n nh\u1edd v\u00e0o c\u00e1ch ph\u00e2n chia logic theo \u0111\u1ed1i t\u01b0\u1ee3ng.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Gi\u1eef m\u00e3 ngu\u1ed3n DRY (&#8220;Don&#8217;t Repeat Yourself&#8221;): OOP gi\u00fap tr\u00e1nh vi\u1ec7c l\u1eb7p l\u1ea1i m\u00e3, l\u00e0m cho m\u00e3 ngu\u1ed3n d\u1ec5 b\u1ea3o tr\u00ec, s\u1eeda \u0111\u1ed5i v\u00e0 g\u1ee1 l\u1ed7i h\u01a1n.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">T\u00e1i s\u1eed d\u1ee5ng m\u00e3 hi\u1ec7u qu\u1ea3: V\u1edbi OOP, c\u00f3 th\u1ec3 t\u1ea1o ra c\u00e1c \u1ee9ng d\u1ee5ng t\u00e1i s\u1eed d\u1ee5ng to\u00e0n di\u1ec7n v\u1edbi \u00edt m\u00e3 h\u01a1n v\u00e0 r\u00fat ng\u1eafn th\u1eddi gian ph\u00e1t tri\u1ec3n.<\/span><\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc th\u00eam: <strong><a href=\"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-oop-phan-1\/\" target=\"_blank\" rel=\"noopener\">Top 50+ c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n OOP v\u00e0 tr\u1ea3 l\u1eddi m\u1edbi nh\u1ea5t (Ph\u1ea7n 1)<\/a><\/strong><\/em><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-http-status-codes-la-gi-k\u1ec3-ten-va-mo-t\u1ea3-cac-ma-tr\u1ea1ng-thai-ph\u1ed5-bi\u1ebfn-nh\u01b0-400-404-500\"><b>HTTP status codes l\u00e0 g\u00ec? K\u1ec3 t\u00ean v\u00e0 m\u00f4 t\u1ea3 c\u00e1c m\u00e3 tr\u1ea1ng th\u00e1i ph\u1ed5 bi\u1ebfn nh\u01b0 400, 404, 500<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">HTTP status codes (M\u00e3 tr\u1ea1ng th\u00e1i HTTP) l\u00e0 m\u1ed9t th\u00f4ng b\u00e1o m\u00e0 m\u00e1y ch\u1ee7 web g\u1eedi v\u1ec1 cho client (th\u01b0\u1eddng l\u00e0 tr\u00ecnh duy\u1ec7t) \u0111\u1ec3 th\u00f4ng b\u00e1o v\u1ec1 k\u1ebft qu\u1ea3 c\u1ee7a m\u1ed9t y\u00eau c\u1ea7u HTTP. M\u1ed7i m\u00e3 tr\u1ea1ng th\u00e1i s\u1ebd t\u01b0\u01a1ng \u1ee9ng v\u1edbi m\u1ed9t t\u00ecnh tr\u1ea1ng c\u1ee5 th\u1ec3 c\u1ee7a y\u00eau c\u1ea7u \u0111\u00f3, cho bi\u1ebft y\u00eau c\u1ea7u \u0111\u00e3 \u0111\u01b0\u1ee3c x\u1eed l\u00fd th\u00e0nh c\u00f4ng, g\u1eb7p l\u1ed7i hay c\u1ea7n th\u1ef1c hi\u1ec7n h\u00e0nh \u0111\u1ed9ng b\u1ed5 sung.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">400, 404, 500 l\u00e0 nh\u1eefng HTTP status codes \u0111i\u1ec3n h\u00ecnh, th\u1ec3 hi\u1ec7n c\u00e1c \u00fd ngh\u0129a sau:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">400 &#8211; Bad request: M\u00e1y ch\u1ee7 kh\u00f4ng th\u1ec3 hi\u1ec3u y\u00eau c\u1ea7u c\u1ee7a tr\u00ecnh duy\u1ec7t do sai c\u00fa ph\u00e1p. \u0110\u00e2y l\u00e0 l\u1ed7i ph\u00eda ng\u01b0\u1eddi d\u00f9ng, th\u01b0\u1eddng x\u1ea3y ra khi URL b\u1ecb sai ho\u1eb7c d\u1eef li\u1ec7u g\u1eedi l\u00ean kh\u00f4ng h\u1ee3p l\u1ec7.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">404 &#8211; Not found: Trang web ho\u1eb7c t\u00e0i nguy\u00ean y\u00eau c\u1ea7u kh\u00f4ng t\u00ecm th\u1ea5y tr\u00ean m\u00e1y ch\u1ee7. \u0110\u00e2y l\u00e0 m\u00e3 tr\u1ea1ng th\u00e1i khi ng\u01b0\u1eddi d\u00f9ng truy c\u1eadp v\u00e0o m\u1ed9t trang kh\u00f4ng t\u1ed3n t\u1ea1i.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">500 &#8211; Internal Server Error: L\u1ed7i x\u1ea3y ra tr\u00ean m\u00e1y ch\u1ee7 khi x\u1eed l\u00fd y\u00eau c\u1ea7u. \u0110\u00e2y l\u00e0 l\u1ed7i ph\u00eda m\u00e1y ch\u1ee7, c\u00f3 th\u1ec3 do s\u1ef1 c\u1ed1 h\u1ec7 th\u1ed1ng ho\u1eb7c c\u00e1c l\u1ed7i kh\u00f4ng x\u00e1c \u0111\u1ecbnh.<\/span><\/li>\n<\/ul>\n\n\n\n<p><span style=\"font-weight: 400;\">Ngo\u00e0i ra c\u00f2n r\u1ea5t nhi\u1ec1u m\u00e3 l\u1ed7i m\u00e0 b\u1ea1n c\u00f2n th\u1ec3 t\u1ef1 t\u00ecm hi\u1ec3u th\u00eam v\u00ed d\u1ee5: 401, <a href=\"https:\/\/itviec.com\/blog\/502-bad-gateway-la-gi\/\" target=\"_blank\" rel=\"noopener\">502<\/a>, 200,&#8230;<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-hay-mo-t\u1ea3-m\u1ed9t-yeu-c\u1ea7u-http-di\u1ec3n-hinh\"><b>H\u00e3y m\u00f4 t\u1ea3 m\u1ed9t y\u00eau c\u1ea7u HTTP \u0111i\u1ec3n h\u00ecnh<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Giao th\u1ee9c HTTP c\u00f3 c\u1ea5u tr\u00fac r\u1ea5t ch\u1eb7t ch\u1ebd, bao g\u1ed3m m\u1ed9t t\u1eadp h\u1ee3p c\u00e1c b\u01b0\u1edbc \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh r\u1ea5t r\u00f5 r\u00e0ng:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">M\u1edf k\u1ebft n\u1ed1i: M\u00e1y kh\u00e1ch m\u1edf k\u1ebft n\u1ed1i TCP t\u1edbi m\u00e1y ch\u1ee7. C\u1ed5ng s\u1ebd l\u00e0 c\u1ed5ng 80 cho k\u1ebft n\u1ed1i HTTP v\u00e0 c\u1ed5ng 443 cho k\u1ebft n\u1ed1i HTTPS (b\u1ea3o m\u1eadt).<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">G\u1eedi y\u00eau c\u1ea7u: M\u00e1y kh\u00e1ch s\u1ebd g\u1eedi y\u00eau c\u1ea7u HTTP t\u1edbi m\u00e1y ch\u1ee7. Y\u00eau c\u1ea7u c\u00e1c th\u00f4ng tin g\u1ed3m ph\u01b0\u01a1ng th\u1ee9c HTTP, URI, phi\u00ean b\u1ea3n HTTP, m\u1ed9t t\u1eadp h\u1ee3p c\u00e1c ti\u00eau \u0111\u1ec1, ph\u1ea7n th\u00e2n (body) tu\u1ef3 ch\u1ecdn.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Y\u00eau c\u1ea7u \u0111\u01b0\u1ee3c x\u1eed l\u00fd b\u1edfi m\u00e1y ch\u1ee7: \u1ede giai \u0111o\u1ea1n n\u00e0y, m\u00e1y ch\u1ee7 s\u1ebd x\u1eed l\u00fd y\u00eau c\u1ea7u v\u00e0 chu\u1ea9n b\u1ecb ph\u1ea3n h\u1ed3i.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">G\u1eedi ph\u1ea3n h\u1ed3i HTTP tr\u1edf l\u1ea1i m\u00e1y kh\u00e1ch: Th\u00f4ng qua k\u00eanh m\u1edf, m\u00e1y ch\u1ee7 g\u1eedi l\u1ea1i ph\u1ea3n h\u1ed3i HTTP. Ph\u1ea3n h\u1ed3i s\u1ebd ch\u1ee9a c\u00e1c th\u00e0nh ph\u1ea7n: Phi\u00ean b\u1ea3n HTTP; M\u00e3 tr\u1ea1ng th\u00e1i; M\u1ed9t t\u1eadp h\u1ee3p c\u00e1c ti\u00eau \u0111\u1ec1 c\u00f3 d\u1eef li\u1ec7u b\u1ed5 sung; N\u1ed9i dung t\u00f9y ch\u1ecdn.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">K\u1ebft n\u1ed1i \u0111\u00e3 \u0111\u00f3ng: \u0110\u00e2y th\u01b0\u1eddng l\u00e0 b\u01b0\u1edbc cu\u1ed1i c\u00f9ng, m\u1eb7c d\u00f9 v\u1edbi c\u00e1c phi\u00ean b\u1ea3n giao th\u1ee9c m\u1edbi h\u01a1n, c\u00f3 c\u00e1c t\u00f9y ch\u1ecdn \u0111\u1ec3 gi\u1eef k\u00eanh m\u1edf v\u00e0 ti\u1ebfp t\u1ee5c g\u1eedi y\u00eau c\u1ea7u v\u00e0 ph\u1ea3n h\u1ed3i qua l\u1ea1i.<\/span><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-cac-ph\u01b0\u01a1ng-th\u1ee9c-http-get-post-put-delete-la-gi\"><b>C\u00e1c ph\u01b0\u01a1ng th\u1ee9c HTTP (GET, POST, PUT, DELETE) l\u00e0 g\u00ec?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">C\u00e1c ph\u01b0\u01a1ng th\u1ee9c HTTP (HTTP Methods) \u0111\u1ecbnh ngh\u0129a c\u00e1c h\u00e0nh \u0111\u1ed9ng m\u00e0 ng\u01b0\u1eddi d\u00f9ng ho\u1eb7c client y\u00eau c\u1ea7u th\u1ef1c hi\u1ec7n tr\u00ean t\u00e0i nguy\u00ean c\u1ee7a m\u00e1y ch\u1ee7.&nbsp;<\/span><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-ph\u01b0\u01a1ng-th\u1ee9c-get\"><b>Ph\u01b0\u01a1ng th\u1ee9c GET<\/b><\/h4>\n\n\n\n<p><span style=\"font-weight: 400;\">D\u00f9ng \u0111\u1ec3 y\u00eau c\u1ea7u m\u1ed9t t\u00e0i nguy\u00ean t\u1eeb m\u00e1y ch\u1ee7. \u0110\u00e2y l\u00e0 ph\u01b0\u01a1ng th\u1ee9c ph\u1ed5 bi\u1ebfn nh\u1ea5t v\u00e0 th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng khi ng\u01b0\u1eddi d\u00f9ng truy c\u1eadp c\u00e1c trang web.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5: GET <\/span><a href=\"https:\/\/api.example.com\/users?page=1\"><span style=\"font-weight: 400;\">https:\/\/api.example.com\/users?page=1<\/span><\/a><span style=\"font-weight: 400;\"> \u2192 Y\u00eau c\u1ea7u n\u00e0y s\u1ebd l\u1ea5y danh s\u00e1ch ng\u01b0\u1eddi d\u00f9ng t\u1eeb trang th\u1ee9 nh\u1ea5t.<\/span><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-ph\u01b0\u01a1ng-th\u1ee9c-post\"><b>Ph\u01b0\u01a1ng th\u1ee9c POST<\/b><\/h4>\n\n\n\n<p><span style=\"font-weight: 400;\">\u0110\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 g\u1eedi d\u1eef li\u1ec7u \u0111\u1ebfn m\u00e1y ch\u1ee7, ch\u1eb3ng h\u1ea1n nh\u01b0 khi ng\u01b0\u1eddi d\u00f9ng \u0111i\u1ec1n v\u00e0o bi\u1ec3u m\u1eabu ho\u1eb7c t\u1ea3i l\u00ean m\u1ed9t t\u1ec7p.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5: Khi b\u1ea1n \u0111i\u1ec1n th\u00f4ng tin v\u00e0o m\u1ed9t form \u0111\u0103ng k\u00fd v\u00e0 nh\u1ea5n n\u00fat &#8220;\u0110\u0103ng k\u00fd&#8221;, tr\u00ecnh duy\u1ec7t s\u1ebd g\u1eedi m\u1ed9t y\u00eau c\u1ea7u POST \u0111\u1ebfn m\u00e1y ch\u1ee7 v\u1edbi d\u1eef li\u1ec7u c\u1ee7a form.<\/span><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-ph\u01b0\u01a1ng-th\u1ee9c-put\"><b>Ph\u01b0\u01a1ng th\u1ee9c PUT<\/b><\/h4>\n\n\n\n<p><span style=\"font-weight: 400;\">\u0110\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 c\u1eadp nh\u1eadt t\u00e0i nguy\u00ean \u0111\u00e3 c\u00f3 tr\u00ean m\u00e1y ch\u1ee7 ho\u1eb7c t\u1ea1o m\u1edbi m\u1ed9t t\u00e0i nguy\u00ean n\u1ebfu t\u00e0i nguy\u00ean \u0111\u00f3 ch\u01b0a t\u1ed3n t\u1ea1i. PUT thay th\u1ebf to\u00e0n b\u1ed9 t\u00e0i nguy\u00ean t\u1ea1i \u0111\u1ecba ch\u1ec9 URL \u0111\u00e3 ch\u1ec9 \u0111\u1ecbnh.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5: PUT <\/span><a href=\"https:\/\/api.example.com\/users\/123\"><span style=\"font-weight: 400;\">https:\/\/api.example.com\/users\/123<\/span><\/a><span style=\"font-weight: 400;\"> \u2192 Y\u00eau c\u1ea7u n\u00e0y s\u1ebd c\u1eadp nh\u1eadt to\u00e0n b\u1ed9 th\u00f4ng tin c\u1ee7a ng\u01b0\u1eddi d\u00f9ng c\u00f3 ID l\u00e0 123.<\/span><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-ph\u01b0\u01a1ng-th\u1ee9c-delete\"><b>Ph\u01b0\u01a1ng th\u1ee9c DELETE<\/b><\/h4>\n\n\n\n<p><span style=\"font-weight: 400;\">\u0110\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 y\u00eau c\u1ea7u m\u00e1y ch\u1ee7 x\u00f3a t\u00e0i nguy\u00ean t\u1ea1i m\u1ed9t URL c\u1ee5 th\u1ec3.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">DELETE <\/span><a href=\"https:\/\/api.example.com\/users\/456\"><span style=\"font-weight: 400;\">https:\/\/api.example.com\/users\/456<\/span><\/a><span style=\"font-weight: 400;\"> \u2192 Y\u00eau c\u1ea7u n\u00e0y s\u1ebd x\u00f3a to\u00e0n b\u1ed9 ng\u01b0\u1eddi d\u00f9ng c\u00f3 ID l\u00e0 456.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-cors-cross-origin-resource-sharing-la-gi\"><b>CORS (Cross-Origin Resource Sharing) l\u00e0 g\u00ec?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">CORS l\u00e0 t\u1eeb vi\u1ebft t\u1eaft c\u1ee7a Cross-Origin Resource Sharing &#8211; Chia s\u1ebb t\u00e0i nguy\u00ean gi\u1eefa c\u00e1c ngu\u1ed3n kh\u00e1c nhau. \u0110\u00e2y l\u00e0 m\u1ed9t c\u01a1 ch\u1ebf d\u1ef1a tr\u00ean ti\u00eau \u0111\u1ec1 HTTP, cho ph\u00e9p m\u00e1y ch\u1ee7 ch\u1ec9 \u0111\u1ecbnh c\u00e1c ngu\u1ed3n g\u1ed1c (t\u00ean mi\u1ec1n, giao th\u1ee9c, ho\u1eb7c c\u1ed5ng) kh\u00e1c ngo\u00e0i ch\u00ednh n\u00f3 m\u00e0 tr\u00ecnh duy\u1ec7t c\u00f3 th\u1ec3 t\u1ea3i t\u00e0i nguy\u00ean t\u1eeb \u0111\u00f3.&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">CORS c\u0169ng y\u00eau c\u1ea7u tr\u00ecnh duy\u1ec7t th\u1ef1c hi\u1ec7n m\u1ed9t y\u00eau c\u1ea7u &#8220;ki\u1ec3m tra tr\u01b0\u1edbc&#8221; (preflight) \u0111\u1ebfn m\u00e1y ch\u1ee7 l\u01b0u tr\u1eef t\u00e0i nguy\u00ean t\u1eeb ngu\u1ed3n g\u1ed1c kh\u00e1c, \u0111\u1ec3 x\u00e1c nh\u1eadn xem m\u00e1y ch\u1ee7 c\u00f3 cho ph\u00e9p y\u00eau c\u1ea7u th\u1ef1c s\u1ef1 hay kh\u00f4ng. Trong y\u00eau c\u1ea7u ki\u1ec3m tra n\u00e0y, tr\u00ecnh duy\u1ec7t g\u1eedi c\u00e1c ti\u00eau \u0111\u1ec1 th\u00f4ng b\u00e1o v\u1ec1 ph\u01b0\u01a1ng th\u1ee9c HTTP v\u00e0 c\u00e1c ti\u00eau \u0111\u1ec1 s\u1ebd s\u1eed d\u1ee5ng trong y\u00eau c\u1ea7u th\u1ef1c t\u1ebf.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cau-h\u1ecfi-ph\u1ecfng-v\u1ea5n-backend-v\u1ec1-c\u01a1-s\u1edf-d\u1eef-li\u1ec7u\"><span class=\"ez-toc-section\" id=\"Cau_hoi_phong_van_Backend_ve_co_so_du_lieu\"><\/span><b>C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 c\u01a1 s\u1edf d\u1eef li\u1ec7u<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-c\u01a1-s\u1edf-d\u1eef-li\u1ec7u-database-la-gi\"><b>C\u01a1 s\u1edf d\u1eef li\u1ec7u (database) l\u00e0 g\u00ec?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">C\u01a1 s\u1edf d\u1eef li\u1ec7u (database) l\u00e0 n\u01a1i l\u01b0u tr\u1eef th\u00f4ng tin. C\u00e1c \u1ee9ng d\u1ee5ng backend s\u1eed d\u1ee5ng c\u01a1 s\u1edf d\u1eef li\u1ec7u \u0111\u1ec3 l\u01b0u tr\u1eef v\u00e0 truy xu\u1ea5t d\u1eef li\u1ec7u, ch\u1eb3ng h\u1ea1n th\u00f4ng tin ng\u01b0\u1eddi d\u00f9ng ho\u1eb7c d\u1eef li\u1ec7u \u1ee9ng d\u1ee5ng. C\u01a1 s\u1edf d\u1eef li\u1ec7u th\u01b0\u1eddng \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd b\u1edfi h\u1ec7 th\u1ed1ng qu\u1ea3n l\u00fd c\u01a1 s\u1edf d\u1eef li\u1ec7u (DBMS), cung c\u1ea5p giao di\u1ec7n cho c\u00e1c qu\u1ea3n tr\u1ecb vi\u00ean \u0111\u1ec3 qu\u1ea3n l\u00fd d\u1eef li\u1ec7u.&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">C\u00f3 nhi\u1ec1u lo\u1ea1i c\u01a1 s\u1edf d\u1eef li\u1ec7u kh\u00e1c nhau, nh\u01b0ng c\u00e1c c\u01a1 s\u1edf d\u1eef li\u1ec7u ph\u1ed5 bi\u1ebfn nh\u1ea5t m\u00e0 \u1ee9ng d\u1ee5ng backend s\u1eed d\u1ee5ng l\u00e0 c\u01a1 s\u1edf d\u1eef li\u1ec7u quan h\u1ec7 nh\u01b0 MySQL, PostgreSQL v\u00e0 Oracle. M\u1ed9t s\u1ed1 \u1ee9ng d\u1ee5ng backend c\u0169ng s\u1eed d\u1ee5ng c\u01a1 s\u1edf d\u1eef li\u1ec7u NoSQL, l\u00e0 lo\u1ea1i c\u01a1 s\u1edf d\u1eef li\u1ec7u phi quan h\u1ec7 v\u00e0 th\u01b0\u1eddng c\u00f3 kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng t\u1ed1t h\u01a1n so v\u1edbi c\u01a1 s\u1edf d\u1eef li\u1ec7u quan h\u1ec7.<\/span><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc th\u00eam: <a href=\"https:\/\/itviec.com\/blog\/co-so-du-lieu-la-gi\/\" target=\"_blank\" rel=\"noopener\"><strong>C\u01a1 s\u1edf d\u1eef li\u1ec7u l\u00e0 g\u00ec: Th\u00e0nh ph\u1ea7n, \u1ee9ng d\u1ee5ng, ph\u00e2n lo\u1ea1i<\/strong><\/a><\/em><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-s\u1ef1-khac-bi\u1ec7t-gi\u1eefa-sql-va-nosql-la-gi-tr\u01b0\u1eddng-h\u1ee3p-s\u1eed-d\u1ee5ng-t\u1eebng-lo\u1ea1i-nh\u01b0-th\u1ebf-nao\"><b>S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa SQL v\u00e0 NoSQL l\u00e0 g\u00ec? Tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng t\u1eebng lo\u1ea1i nh\u01b0 th\u1ebf n\u00e0o?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\"><strong>SQL<\/strong> l\u00e0 vi\u1ebft t\u1eaft c\u1ee7a Structured Query Language &#8211; Ng\u00f4n ng\u1eef truy v\u1ea5n c\u00f3 c\u1ea5u tr\u00fac. \u0110\u00e2y l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef ti\u00eau chu\u1ea9n \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 t\u01b0\u01a1ng t\u00e1c v\u1edbi c\u00e1c h\u1ec7 qu\u1ea3n tr\u1ecb c\u01a1 s\u1edf d\u1eef li\u1ec7u quan h\u1ec7 (Relational Database Management System &#8211; RDBMS). SQL cung c\u1ea5p m\u1ed9t c\u00e1ch th\u1ee9c th\u1ed1ng nh\u1ea5t \u0111\u1ec3 truy v\u1ea5n, thao t\u00e1c v\u00e0 qu\u1ea3n l\u00fd d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong c\u00e1c b\u1ea3ng.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\"><strong>NoSQL<\/strong> l\u00e0 vi\u1ebft t\u1eaft c\u1ee7a Not Only SQL &#8211; Kh\u00f4ng ch\u1ec9 c\u00f3 SQL. \u0110\u00e2y l\u00e0 m\u1ed9t lo\u1ea1i c\u01a1 s\u1edf d\u1eef li\u1ec7u kh\u00f4ng quan h\u1ec7, \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 x\u1eed l\u00fd l\u01b0\u1ee3ng l\u1edbn d\u1eef li\u1ec7u c\u00f3 c\u1ea5u tr\u00fac, b\u00e1n c\u1ea5u tr\u00fac ho\u1eb7c kh\u00f4ng c\u1ea5u tr\u00fac m\u00e0 c\u00e1c c\u01a1 s\u1edf d\u1eef li\u1ec7u quan h\u1ec7 truy\u1ec1n th\u1ed1ng (SQL) g\u1eb7p kh\u00f3 kh\u0103n trong vi\u1ec7c qu\u1ea3n l\u00fd.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa SQL v\u00e0 NoSQL \u0111\u01b0\u1ee3c th\u1ec3 hi\u1ec7n qua c\u00e1c ti\u00eau ch\u00ed nh\u01b0:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><b>Ti\u00eau ch\u00ed<\/b><\/td><td><b>SQL<\/b><\/td><td><b>NoSQL<\/b><\/td><\/tr><tr><td><b>C\u1ea5u tr\u00fac d\u1eef li\u1ec7u<\/b><\/td><td><span style=\"font-weight: 400;\">D\u1eef li\u1ec7u \u0111\u01b0\u1ee3c t\u1ed5 ch\u1ee9c theo b\u1ea3ng v\u1edbi c\u00e1c h\u00e0ng v\u00e0 c\u1ed9t. C\u00e1c b\u1ea3ng n\u00e0y c\u00f3 m\u1ed1i quan h\u1ec7 r\u00f5 r\u00e0ng v\u1edbi nhau th\u00f4ng qua c\u00e1c kh\u00f3a ngo\u1ea1i.&nbsp;<\/span>\n<p><span style=\"font-weight: 400;\">SQL s\u1eed d\u1ee5ng ng\u00f4n ng\u1eef truy v\u1ea5n chu\u1ea9n \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c thao t\u00e1c.<\/span><\/p>\n<\/td><td><span style=\"font-weight: 400;\">C\u00f3 th\u1ec3 l\u01b0u tr\u1eef d\u1eef li\u1ec7u d\u01b0\u1edbi nhi\u1ec1u d\u1ea1ng nh\u01b0 t\u00e0i li\u1ec7u (document), c\u1eb7p kh\u00f3a-gi\u00e1 tr\u1ecb (key-value), \u0111\u1ed3 th\u1ecb (graph), ho\u1eb7c c\u1ed9t (columnar).&nbsp;<\/span>\n<p><span style=\"font-weight: 400;\">NoSQL linh ho\u1ea1t h\u01a1n v\u00e0 kh\u00f4ng y\u00eau c\u1ea7u c\u1ea5u tr\u00fac c\u1ed1 \u0111\u1ecbnh nh\u01b0 SQL.<\/span><\/p>\n<\/td><\/tr><tr><td><b>T\u00ednh linh ho\u1ea1t trong m\u1edf r\u1ed9ng<\/b><\/td><td><span style=\"font-weight: 400;\">M\u1edf r\u1ed9ng theo chi\u1ec1u d\u1ecdc (vertical scaling), t\u1ee9c l\u00e0 c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t b\u1eb1ng c\u00e1ch n\u00e2ng c\u1ea5p ph\u1ea7n c\u1ee9ng c\u1ee7a m\u00e1y ch\u1ee7 (th\u00eam b\u1ed9 nh\u1edb, CPU,&#8230;).&nbsp;<\/span>\n<p><span style=\"font-weight: 400;\">\u2192 C\u00f3 th\u1ec3 g\u1eb7p kh\u00f3 kh\u0103n v\u00e0 t\u1ed1n k\u00e9m khi c\u1ea7n m\u1edf r\u1ed9ng quy m\u00f4 l\u1edbn.<\/span><\/p>\n<\/td><td><span style=\"font-weight: 400;\">M\u1edf r\u1ed9ng theo chi\u1ec1u ngang (horizontal scaling), t\u1ee9c l\u00e0 t\u0103ng kh\u1ea3 n\u0103ng x\u1eed l\u00fd b\u1eb1ng c\u00e1ch th\u00eam c\u00e1c m\u00e1y ch\u1ee7 m\u1edbi v\u00e0o h\u1ec7 th\u1ed1ng.&nbsp;<\/span>\n<p><span style=\"font-weight: 400;\">\u2192 D\u1ec5 d\u00e0ng m\u1edf r\u1ed9ng v\u1edbi c\u00e1c y\u00eau c\u1ea7u l\u1edbn v\u00e0 d\u1eef li\u1ec7u ph\u00e2n t\u00e1n.<\/span><\/p>\n<\/td><\/tr><tr><td><b>T\u00ednh to\u00e0n v\u1eb9n d\u1eef li\u1ec7u<\/b><\/td><td><span style=\"font-weight: 400;\">\u0110\u1ea3m b\u1ea3o t\u00ednh to\u00e0n v\u1eb9n d\u1eef li\u1ec7u th\u00f4ng qua c\u00e1c \u0111\u1eb7c t\u00ednh ACID (Atomicity, Consistency, Isolation, Durability), gi\u00fap \u0111\u1ea3m b\u1ea3o d\u1eef li\u1ec7u lu\u00f4n ch\u00ednh x\u00e1c v\u00e0 nh\u1ea5t qu\u00e1n ngay c\u1ea3 trong tr\u01b0\u1eddng h\u1ee3p c\u00f3 l\u1ed7i h\u1ec7 th\u1ed1ng.<\/span><\/td><td><span style=\"font-weight: 400;\">D\u00f9ng m\u00f4 h\u00ecnh BASE (Basically Available, Soft state, Eventual consistency), kh\u00f4ng \u0111\u1ea3m b\u1ea3o t\u00ednh nh\u1ea5t qu\u00e1n d\u1eef li\u1ec7u tuy\u1ec7t \u0111\u1ed1i nh\u01b0 ACID, nh\u01b0ng cho ph\u00e9p hi\u1ec7u su\u1ea5t cao v\u00e0 d\u1ec5 d\u00e0ng m\u1edf r\u1ed9ng.<\/span><\/td><\/tr><tr><td><b>Qu\u1ea3n l\u00fd v\u00e0 truy v\u1ea5n d\u1eef li\u1ec7u<\/b><\/td><td><span style=\"font-weight: 400;\">C\u00f3 ng\u00f4n ng\u1eef truy v\u1ea5n m\u1ea1nh m\u1ebd v\u1edbi c\u00fa ph\u00e1p r\u00f5 r\u00e0ng v\u00e0 c\u00e1c ph\u00e9p to\u00e1n ph\u1ee9c t\u1ea1p c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n d\u1ec5 d\u00e0ng. Tuy nhi\u00ean, vi\u1ec7c thay \u0111\u1ed5i c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u00f3 th\u1ec3 g\u1eb7p kh\u00f3 kh\u0103n khi d\u1eef li\u1ec7u l\u1edbn v\u00e0 c\u00f3 s\u1ef1 thay \u0111\u1ed5i th\u01b0\u1eddng xuy\u00ean.<\/span><\/td><td><span style=\"font-weight: 400;\">Kh\u00f4ng s\u1eed d\u1ee5ng ng\u00f4n ng\u1eef truy v\u1ea5n chu\u1ea9n nh\u01b0 SQL, thay v\u00e0o \u0111\u00f3 s\u1eed d\u1ee5ng c\u00e1c API ho\u1eb7c truy v\u1ea5n t\u00f9y ch\u1ec9nh. M\u1eb7c d\u00f9 linh ho\u1ea1t v\u00e0 d\u1ec5 thay \u0111\u1ed5i, nh\u01b0ng vi\u1ec7c th\u1ef1c hi\u1ec7n c\u00e1c ph\u00e9p to\u00e1n ph\u1ee9c t\u1ea1p c\u00f3 th\u1ec3 kh\u00f3 kh\u0103n h\u01a1n.<\/span><\/td><\/tr><tr><td><b>Tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng<\/b><\/td><td><span style=\"font-weight: 400;\">Ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c \u1ee9ng d\u1ee5ng y\u00eau c\u1ea7u t\u00ednh nh\u1ea5t qu\u00e1n d\u1eef li\u1ec7u cao, v\u00ed d\u1ee5 nh\u01b0 h\u1ec7 th\u1ed1ng ng\u00e2n h\u00e0ng, h\u1ec7 th\u1ed1ng qu\u1ea3n l\u00fd kh\u00e1ch h\u00e0ng (CRM), c\u00e1c \u1ee9ng d\u1ee5ng t\u00e0i ch\u00ednh ho\u1eb7c c\u00e1c \u1ee9ng d\u1ee5ng c\u00f3 c\u01a1 s\u1edf d\u1eef li\u1ec7u quan h\u1ec7 ph\u1ee9c t\u1ea1p.<\/span>\n<p><span style=\"font-weight: 400;\">C\u00e1c \u1ee9ng d\u1ee5ng c\u00f3 d\u1eef li\u1ec7u c\u00f3 c\u1ea5u tr\u00fac r\u00f5 r\u00e0ng v\u00e0 kh\u00f4ng thay \u0111\u1ed5i th\u01b0\u1eddng xuy\u00ean.<\/span><\/p>\n<\/td><td><span style=\"font-weight: 400;\">Ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c \u1ee9ng d\u1ee5ng c\u1ea7n kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng nhanh, ch\u1eb3ng h\u1ea1n nh\u01b0 c\u00e1c \u1ee9ng d\u1ee5ng web, \u1ee9ng d\u1ee5ng m\u1ea1ng x\u00e3 h\u1ed9i, h\u1ec7 th\u1ed1ng x\u1eed l\u00fd d\u1eef li\u1ec7u l\u1edbn (Big Data), hay c\u00e1c d\u1ecbch v\u1ee5 \u0111\u00e1m m\u00e2y.<\/span>\n<p><span style=\"font-weight: 400;\">C\u00e1c \u1ee9ng d\u1ee5ng c\u00f3 d\u1eef li\u1ec7u phi c\u1ea5u tr\u00fac, d\u1eef li\u1ec7u thay \u0111\u1ed5i nhanh ch\u00f3ng, ho\u1eb7c y\u00eau c\u1ea7u l\u01b0u tr\u1eef v\u00e0 x\u1eed l\u00fd d\u1eef li\u1ec7u kh\u1ed1i l\u01b0\u1ee3ng l\u1edbn v\u00e0 ph\u00e2n t\u00e1n.<\/span><\/p>\n<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u0110\u1ecdc th\u00eam: <a href=\"https:\/\/itviec.com\/blog\/sql-vs-nosql\/\" target=\"_blank\" rel=\"noopener\"><strong>SQL vs NoSQL: C\u00e1ch ch\u1ecdn h\u1ec7 qu\u1ea3n tr\u1ecb c\u01a1 s\u1edf d\u1eef li\u1ec7u ph\u00f9 h\u1ee3p<\/strong><\/a><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-acid-la-gi-t\u1ea1i-sao-no-quan-tr\u1ecdng-v\u1edbi-c\u01a1-s\u1edf-d\u1eef-li\u1ec7u\"><b>ACID l\u00e0 g\u00ec? T\u1ea1i sao n\u00f3 quan tr\u1ecdng v\u1edbi c\u01a1 s\u1edf d\u1eef li\u1ec7u?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">ACID l\u00e0 vi\u1ebft t\u1eaft c\u1ee7a Atomicity (T\u00ednh nguy\u00ean t\u1eed), Consistency (T\u00ednh nh\u1ea5t qu\u00e1n), Isolation (T\u00ednh c\u00e1ch ly) v\u00e0 Durability (T\u00ednh b\u1ec1n v\u1eefng). \u0110\u00e2y l\u00e0 m\u1ed9t t\u1eadp h\u1ee3p c\u00e1c t\u00ednh ch\u1ea5t \u0111\u1ea3m b\u1ea3o vi\u1ec7c x\u1eed l\u00fd giao d\u1ecbch trong c\u01a1 s\u1edf d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n m\u1ed9t c\u00e1ch ch\u1eb7t ch\u1ebd, hi\u1ec7u qu\u1ea3.<\/span><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-atomicity-tinh-nguyen-t\u1eed\"><span style=\"font-weight: 400;\"><strong>Atomicity (T\u00ednh nguy\u00ean t\u1eed)<\/strong><\/span><\/h4>\n\n\n\n<p><span style=\"font-weight: 400;\">M\u1ed9t giao d\u1ecbch trong c\u01a1 s\u1edf d\u1eef li\u1ec7u l\u00e0 nguy\u00ean t\u1eed, ngh\u0129a l\u00e0 n\u00f3 \u0111\u01b0\u1ee3c coi l\u00e0 m\u1ed9t \u0111\u01a1n v\u1ecb c\u00f4ng vi\u1ec7c kh\u00f4ng th\u1ec3 chia nh\u1ecf. \u0110\u00e2y l\u00e0 m\u1ed9t quy t\u1eafc &#8220;t\u1ea5t c\u1ea3 ho\u1eb7c kh\u00f4ng c\u00f3 g\u00ec&#8221;. N\u1ebfu b\u1ea5t k\u1ef3 ph\u1ea7n n\u00e0o c\u1ee7a giao d\u1ecbch th\u1ea5t b\u1ea1i, to\u00e0n b\u1ed9 giao d\u1ecbch s\u1ebd th\u1ea5t b\u1ea1i v\u00e0 m\u1ecdi thay \u0111\u1ed5i s\u1ebd b\u1ecb ho\u00e0n l\u1ea1i.<\/span><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-consistency-tinh-nh\u1ea5t-quan\"><span style=\"font-weight: 400;\"><strong>Consistency (T\u00ednh nh\u1ea5t qu\u00e1n)<\/strong><\/span><\/h4>\n\n\n\n<p><span style=\"font-weight: 400;\">\u0110\u1ea3m b\u1ea3o s\u1ef1 to\u00e0n v\u1eb9n c\u1ee7a c\u01a1 s\u1edf d\u1eef li\u1ec7u b\u1eb1ng c\u00e1ch \u0111\u1ea3m b\u1ea3o b\u1ea5t k\u1ef3 giao d\u1ecbch n\u00e0o c\u0169ng s\u1ebd \u0111\u01b0a c\u01a1 s\u1edf d\u1eef li\u1ec7u t\u1eeb m\u1ed9t tr\u1ea1ng th\u00e1i nh\u1ea5t qu\u00e1n n\u00e0y sang m\u1ed9t tr\u1ea1ng th\u00e1i nh\u1ea5t qu\u00e1n kh\u00e1c. C\u00e1c ki\u1ec3m tra x\u00e1c th\u1ef1c, nh\u01b0 kh\u00f3a duy nh\u1ea5t ho\u1eb7c ki\u1ec3m tra gi\u00e1 tr\u1ecb null, \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 duy tr\u00ec t\u00ednh nh\u1ea5t qu\u00e1n.<\/span><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-isolation-tinh-cach-ly\"><span style=\"font-weight: 400;\"><strong>Isolation (T\u00ednh c\u00e1ch ly)<\/strong><\/span><\/h4>\n\n\n\n<p><span style=\"font-weight: 400;\">T\u00ednh ch\u1ea5t n\u00e0y \u0111\u1ea3m b\u1ea3o r\u1eb1ng vi\u1ec7c th\u1ef1c thi \u0111\u1ed3ng th\u1eddi c\u00e1c giao d\u1ecbch s\u1ebd kh\u00f4ng \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn s\u1ef1 nh\u1ea5t qu\u00e1n c\u1ee7a c\u01a1 s\u1edf d\u1eef li\u1ec7u, gi\u1ed1ng nh\u01b0 c\u00e1c giao d\u1ecbch \u0111\u00f3 \u0111\u01b0\u1ee3c th\u1ef1c thi theo th\u1ee9 t\u1ef1 tu\u1ea7n t\u1ef1. N\u00f3i c\u00e1ch kh\u00e1c, k\u1ebft qu\u1ea3 m\u1ed9t ph\u1ea7n c\u1ee7a m\u1ed9t giao d\u1ecbch ch\u01b0a ho\u00e0n th\u00e0nh s\u1ebd kh\u00f4ng b\u1ecb t\u00e1c \u0111\u1ed9ng b\u1edfi c\u00e1c giao d\u1ecbch kh\u00e1c, \u0111\u1ea3m b\u1ea3o r\u1eb1ng c\u00e1c thao t\u00e1c \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n an to\u00e0n v\u00e0 theo th\u1ee9 t\u1ef1.<\/span><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-durability-tinh-b\u1ec1n-v\u1eefng\"><span style=\"font-weight: 400;\"><strong>Durability (T\u00ednh b\u1ec1n v\u1eefng)<\/strong><\/span><\/h4>\n\n\n\n<p><span style=\"font-weight: 400;\">\u0110\u1ea3m b\u1ea3o c\u00e1c giao d\u1ecbch \u0111\u00e3 \u0111\u01b0\u1ee3c cam k\u1ebft s\u1ebd t\u1ed3n t\u1ea1i v\u0129nh vi\u1ec5n. M\u1ed9t khi m\u1ed9t giao d\u1ecbch \u0111\u00e3 \u0111\u01b0\u1ee3c cam k\u1ebft, n\u00f3 s\u1ebd kh\u00f4ng thay \u0111\u1ed5i, b\u1ea5t k\u1ec3 c\u00f3 s\u1ef1 c\u1ed1 h\u1ec7 th\u1ed1ng x\u1ea3y ra nh\u01b0 m\u1ea5t \u0111i\u1ec7n hay s\u1ef1 c\u1ed1 m\u00e1y t\u00ednh.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">C\u00e1c t\u00ednh ch\u1ea5t ACID r\u1ea5t quan tr\u1ecdng \u0111\u1ed1i v\u1edbi b\u1ea5t k\u1ef3 h\u1ec7 th\u1ed1ng n\u00e0o y\u00eau c\u1ea7u \u0111\u1ed9 tin c\u1eady cao trong giao d\u1ecbch c\u01a1 s\u1edf d\u1eef li\u1ec7u, ch\u1eb3ng h\u1ea1n h\u1ec7 th\u1ed1ng ng\u00e2n h\u00e0ng hay h\u1ec7 th\u1ed1ng \u0111\u1eb7t v\u00e9 m\u00e1y bay. Ch\u00fang cung c\u1ea5p m\u1ed9t c\u00e1ch th\u1ee9c \u0111\u1ec3 lo\u1ea1i b\u1ecf c\u00e1c v\u1ea5n \u0111\u1ec1 ti\u1ec1m \u1ea9n v\u00e0 \u0111\u1ea3m b\u1ea3o t\u00ednh to\u00e0n v\u1eb9n c\u1ee7a d\u1eef li\u1ec7u.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-th\u1ebf-nao-la-m\u1ed9t-ch\u1ec9-m\u1ee5c-index-khi-nao-nen-s\u1eed-d\u1ee5ng-ch\u1ec9-m\u1ee5c\"><b>Th\u1ebf n\u00e0o l\u00e0 m\u1ed9t ch\u1ec9 m\u1ee5c (index)? Khi n\u00e0o n\u00ean s\u1eed d\u1ee5ng ch\u1ec9 m\u1ee5c?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Ch\u1ec9 m\u1ee5c (Index) trong c\u01a1 s\u1edf d\u1eef li\u1ec7u l\u00e0 m\u1ed9t c\u1ea5u tr\u00fac d\u1eef li\u1ec7u gi\u00fap t\u0103ng t\u1ed1c qu\u00e1 tr\u00ecnh t\u00ecm ki\u1ebfm v\u00e0 truy xu\u1ea5t d\u1eef li\u1ec7u trong c\u00e1c b\u1ea3ng c\u01a1 s\u1edf d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c t\u1ea1o tr\u00ean m\u1ed9t ho\u1eb7c nhi\u1ec1u c\u1ed9t c\u1ee7a m\u1ed9t b\u1ea3ng trong c\u01a1 s\u1edf d\u1eef li\u1ec7u. Ch\u1ec9 m\u1ee5c ho\u1ea1t \u0111\u1ed9ng gi\u1ed1ng nh\u01b0 m\u1ee5c l\u1ee5c trong s\u00e1ch, gi\u00fap t\u00ecm th\u00f4ng tin m\u1ed9t c\u00e1ch nhanh ch\u00f3ng m\u00e0 kh\u00f4ng c\u1ea7n ph\u1ea3i qu\u00e9t to\u00e0n b\u1ed9 b\u1ea3ng d\u1eef li\u1ec7u.&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">C\u00f3 th\u1ec3 s\u1eed d\u1ee5ng ch\u1ec9 m\u1ee5c trong nh\u1eefng tr\u01b0\u1eddng h\u1ee3p sau:&nbsp;<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">Khi c\u00f3 truy v\u1ea5n t\u00ecm ki\u1ebfm th\u01b0\u1eddng xuy\u00ean<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Khi c\u1ea7n duy tr\u00ec t\u00ednh duy nh\u1ea5t<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Khi c\u00f3 truy v\u1ea5n v\u1edbi ph\u00e9p k\u1ebft n\u1ed1i (JOIN) ho\u1eb7c s\u1eafp x\u1ebfp (ORDER BY)<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Khi c\u00f3 c\u00e1c b\u1ea3ng d\u1eef li\u1ec7u l\u1edbn<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u00e1c c\u1ed9t th\u01b0\u1eddng xuy\u00ean \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng trong \u0111i\u1ec1u ki\u1ec7n WHERE<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u00e1c c\u1ed9t \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng trong m\u1ec7nh \u0111\u1ec1 GROUP BY<\/span><\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc th\u00eam: <a href=\"https:\/\/itviec.com\/blog\/index-trong-database\/\" target=\"_blank\" rel=\"noopener\"><strong>Index trong database: H\u01b0\u1edbng d\u1eabn c\u00e1ch s\u1eed d\u1ee5ng chi ti\u1ebft<\/strong><\/a><\/em><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-join-trong-sql-la-gi\"><b>JOIN trong SQL l\u00e0 g\u00ec?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">M\u1ec7nh \u0111\u1ec1 SQL JOIN \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 truy v\u1ea5n v\u00e0 truy c\u1eadp d\u1eef li\u1ec7u t\u1eeb nhi\u1ec1u b\u1ea3ng b\u1eb1ng c\u00e1ch thi\u1ebft l\u1eadp m\u1ed1i quan h\u1ec7 logic gi\u1eefa ch\u00fang. Backend Developer c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng SQL JOIN v\u1edbi nhi\u1ec1u b\u1ea3ng. N\u00f3 c\u0169ng c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c gh\u00e9p n\u1ed1i v\u1edbi c\u00e1c m\u1ec7nh \u0111\u1ec1 kh\u00e1c \u0111\u1ec3 l\u1ecdc d\u1eef li\u1ec7u truy xu\u1ea5t, ph\u1ed5 bi\u1ebfn nh\u1ea5t l\u00e0 s\u1eed d\u1ee5ng JOIN v\u1edbi m\u1ec7nh \u0111\u1ec1 WHERE.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">C\u00f3 nhi\u1ec1u lo\u1ea1i JOIN kh\u00e1c nhau trong SQL d\u01b0\u1edbi d\u00e2y l\u00e0 m\u1ed9t v\u00e0i v\u00ed d\u1ee5:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">INNER JOIN: Tr\u1ea3 v\u1ec1 c\u00e1c b\u1ea3n ghi c\u00f3 gi\u00e1 tr\u1ecb kh\u1edbp trong c\u1ea3 hai b\u1ea3ng.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">LEFT OUTER JOIN: Tr\u1ea3 v\u1ec1 t\u1ea5t c\u1ea3 c\u00e1c b\u1ea3n ghi t\u1eeb b\u1ea3ng b\u00ean tr\u00e1i v\u00e0 c\u00e1c b\u1ea3n ghi kh\u1edbp t\u1eeb b\u1ea3ng b\u00ean ph\u1ea3i.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">RIGHT OUTER JOIN: Tr\u1ea3 v\u1ec1 t\u1ea5t c\u1ea3 c\u00e1c b\u1ea3n ghi t\u1eeb b\u1ea3ng b\u00ean ph\u1ea3i v\u00e0 c\u00e1c b\u1ea3n ghi kh\u1edbp t\u1eeb b\u1ea3ng b\u00ean tr\u00e1i.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">FULL OUTER JOIN: Tr\u1ea3 v\u1ec1 t\u1ea5t c\u1ea3 c\u00e1c b\u1ea3n ghi khi c\u00f3 s\u1ef1 kh\u1edbp trong b\u1ea3ng b\u00ean tr\u00e1i ho\u1eb7c b\u1ea3ng b\u00ean ph\u1ea3i.<\/span><\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u0110\u1ecdc th\u00eam: <a href=\"https:\/\/itviec.com\/blog\/join-trong-sql\/\" target=\"_blank\" rel=\"noopener\"><strong>JOIN trong SQL: C\u00fa ph\u00e1p v\u00e0 c\u00e1ch s\u1eed d\u1ee5ng c\u00e1c ph\u00e9p JOIN<\/strong><\/a><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-lam-th\u1ebf-nao-d\u1ec3-truy-v\u1ea5n-d\u1eef-li\u1ec7u-t\u1eeb-mongodb\"><b>L\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 truy v\u1ea5n d\u1eef li\u1ec7u t\u1eeb MongoDB?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">MongoDB s\u1eed d\u1ee5ng ng\u00f4n ng\u1eef truy v\u1ea5n \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 MongoDB Query Language (MQL). \u0110\u1ec3 truy v\u1ea5n d\u1eef li\u1ec7u trong MongoDB, b\u1ea1n s\u1eed d\u1ee5ng ph\u01b0\u01a1ng th\u1ee9c <\/span><span style=\"font-weight: 400;\">find()<\/span><span style=\"font-weight: 400;\"> tr\u00ean m\u1ed9t collection (t\u01b0\u01a1ng \u0111\u01b0\u01a1ng v\u1edbi m\u1ed9t b\u1ea3ng trong SQL). C\u00fa ph\u00e1p c\u01a1 b\u1ea3n nh\u01b0 sau:<\/span><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span style=\"font-weight: 400;\">db.collection_name.find(query)<\/span><\/pre>\n\n\n\n<p><span style=\"font-weight: 400;\">Trong \u0111\u00f3:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">db: \u0110\u1ed1i t\u01b0\u1ee3ng \u0111\u1ea1i di\u1ec7n cho database \u0111ang \u0111\u01b0\u1ee3c k\u1ebft n\u1ed1i.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">collection_name: T\u00ean c\u1ee7a collection m\u00e0 b\u1ea1n mu\u1ed1n truy v\u1ea5n.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">query: \u0110\u1ed1i t\u01b0\u1ee3ng ch\u1ee9a c\u00e1c \u0111i\u1ec1u ki\u1ec7n l\u1ecdc.<\/span><\/li>\n<\/ul>\n\n\n\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5: T\u00ecm t\u1ea5t c\u1ea3 c\u00e1c t\u00e0i li\u1ec7u trong b\u1ed9 s\u01b0u t\u1eadp &#8220;users&#8221; c\u00f3 &#8220;firstName&#8221; l\u00e0 &#8220;John&#8221; \u2192 C\u00fa ph\u00e1p truy v\u1ea5n s\u1ebd vi\u1ebft nh\u01b0 sau: db.users.find({&#8220;firstName&#8221;: &#8220;John&#8221;}).<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cau-h\u1ecfi-ph\u1ecfng-v\u1ea5n-backend-v\u1ec1-performance-va-scalability\"><span class=\"ez-toc-section\" id=\"Cau_hoi_phong_van_Backend_ve_Performance_va_Scalability\"><\/span><b>C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 Performance v\u00e0 Scalability<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-b\u1ea1n-hi\u1ec3u-nh\u01b0-th\u1ebf-nao-v\u1ec1-performance-va-scalability\"><b>B\u1ea1n hi\u1ec3u nh\u01b0 th\u1ebf n\u00e0o v\u1ec1 Performance v\u00e0 Scalability?<\/b><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Performance &#8211; Hi\u1ec7u su\u1ea5t <\/span><span style=\"font-weight: 400;\">\u0111\u1ec1 c\u1eadp \u0111\u1ebfn m\u1ee9c \u0111\u1ed9 h\u1ec7 th\u1ed1ng th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 ho\u1eb7c quy tr\u00ecnh t\u1ed1t nh\u01b0 th\u1ebf n\u00e0o trong m\u1ed9t khung th\u1eddi gian nh\u1ea5t \u0111\u1ecbnh. N\u00f3 bao g\u1ed3m c\u00e1c y\u1ebfu t\u1ed1 nh\u01b0 t\u1ed1c \u0111\u1ed9, kh\u1ea3 n\u0103ng ph\u1ea3n h\u1ed3i, th\u00f4ng l\u01b0\u1ee3ng v\u00e0 s\u1eed d\u1ee5ng t\u00e0i nguy\u00ean.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Scalability &#8211; Kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng \u0111\u1ec1 c\u1eadp \u0111\u1ebfn kh\u1ea3 n\u0103ng c\u1ee7a m\u1ed9t h\u1ec7 th\u1ed1ng khi duy tr\u00ec ho\u1eb7c c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t khi kh\u1ed1i l\u01b0\u1ee3ng c\u00f4ng vi\u1ec7c ho\u1eb7c s\u1ed1 l\u01b0\u1ee3ng ng\u01b0\u1eddi d\u00f9ng t\u0103ng l\u00ean. H\u1ec7 th\u1ed1ng c\u00f3 kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng t\u1ed1t s\u1ebd x\u1eed l\u00fd \u0111\u01b0\u1ee3c s\u1ed1 l\u01b0\u1ee3ng l\u1edbn y\u00eau c\u1ea7u m\u00e0 kh\u00f4ng b\u1ecb s\u1ee5t gi\u1ea3m hi\u1ec7u su\u1ea5t \u0111\u00e1ng k\u1ec3.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Performance v\u00e0 Scalability l\u00e0 2 y\u1ebfu t\u1ed1 kh\u00e1c nhau nh\u01b0ng b\u1ed5 tr\u1ee3 cho nhau trong vi\u1ec7c x\u00e2y d\u1ef1ng v\u00e0 ph\u00e1t tri\u1ec3n trang web hi\u1ec7u qu\u1ea3.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><b>T\u00ednh ch\u1ea5t<\/b><\/td><td><b>Hi\u1ec7u su\u1ea5t<\/b><\/td><td><b>Kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng<\/b><\/td><\/tr><tr><td><b>\u0110\u1ecbnh ngh\u0129a<\/b><\/td><td><span style=\"font-weight: 400;\">T\u1eadp trung v\u00e0o vi\u1ec7c t\u1ed1i \u01b0u h\u00f3a t\u1ed1c \u0111\u1ed9 v\u00e0 kh\u1ea3 n\u0103ng ph\u1ea3n h\u1ed3i<\/span><\/td><td><span style=\"font-weight: 400;\">T\u1eadp trung v\u00e0o vi\u1ec7c x\u1eed l\u00fd kh\u1ed1i l\u01b0\u1ee3ng c\u00f4ng vi\u1ec7c ho\u1eb7c ng\u01b0\u1eddi d\u00f9ng ng\u00e0y c\u00e0ng t\u0103ng<\/span><\/td><\/tr><tr><td><b>M\u1ee5c ti\u00eau<\/b><\/td><td><span style=\"font-weight: 400;\">\u0110\u1ea1t \u0111\u01b0\u1ee3c hi\u1ec7u qu\u1ea3 t\u1ed1i \u0111a cho c\u00e1c nhi\u1ec7m v\u1ee5 hi\u1ec7n t\u1ea1i<\/span><\/td><td><span style=\"font-weight: 400;\">\u0110\u00e1p \u1ee9ng nhu c\u1ea7u ng\u00e0y c\u00e0ng t\u0103ng m\u00e0 kh\u00f4ng b\u1ecb ch\u1eadm l\u1ea1i<\/span><\/td><\/tr><tr><td><b>M\u1ed1i quan t\u00e2m<\/b><\/td><td><span style=\"font-weight: 400;\">T\u1ed1c \u0111\u1ed9, \u0111\u1ed9 tr\u1ec5, th\u00f4ng l\u01b0\u1ee3ng, s\u1eed d\u1ee5ng t\u00e0i nguy\u00ean<\/span><\/td><td><span style=\"font-weight: 400;\">N\u0103ng l\u1ef1c, t\u00ednh kh\u1ea3 d\u1ee5ng, ph\u00e2n b\u1ed5 kh\u1ed1i l\u01b0\u1ee3ng c\u00f4ng vi\u1ec7c<\/span><\/td><\/tr><tr><td><b>K\u1ef9 thu\u1eadt ch\u00ednh<\/b><\/td><td><span style=\"font-weight: 400;\">T\u1ed1i \u01b0u h\u00f3a m\u00e3, l\u01b0u tr\u1eef \u0111\u1ec7m, c\u00e2n b\u1eb1ng t\u1ea3i<\/span><\/td><td><span style=\"font-weight: 400;\">M\u1edf r\u1ed9ng theo chi\u1ec1u ngang, ki\u1ebfn \u200b\u200btr\u00fac kh\u00f4ng tr\u1ea1ng th\u00e1i, d\u1ecbch v\u1ee5 vi m\u00f4<\/span><\/td><\/tr><tr><td><b>Ph\u01b0\u01a1ng ph\u00e1p ti\u1ebfp c\u1eadn m\u1edf r\u1ed9ng<\/b><\/td><td><span style=\"font-weight: 400;\">M\u1edf r\u1ed9ng theo chi\u1ec1u d\u1ecdc (m\u1edf r\u1ed9ng quy m\u00f4)<\/span><\/td><td><span style=\"font-weight: 400;\">T\u1ef7 l\u1ec7 theo chi\u1ec1u ngang (thu nh\u1ecf)<\/span><\/td><\/tr><tr><td><b>Hi\u1ec7u su\u1ea5t<\/b><\/td><td><span style=\"font-weight: 400;\">Suy gi\u1ea3m khi kh\u1ed1i l\u01b0\u1ee3ng c\u00f4ng vi\u1ec7c t\u0103ng l\u00ean<\/span><\/td><td><span style=\"font-weight: 400;\">Duy tr\u00ec hi\u1ec7u su\u1ea5t v\u1edbi kh\u1ed1i l\u01b0\u1ee3ng c\u00f4ng vi\u1ec7c t\u0103ng l\u00ean<\/span><\/td><\/tr><tr><td><b>Ph\u00e2n b\u1ed5 ngu\u1ed3n l\u1ef1c<\/b><\/td><td><span style=\"font-weight: 400;\">C\u1ea7n n\u00e2ng c\u1ea5p ph\u1ea7n c\u1ee9ng \u0111\u1ec3 c\u1ea3i thi\u1ec7n<\/span><\/td><td><span style=\"font-weight: 400;\">Th\u00eam nhi\u1ec1u tr\u01b0\u1eddng h\u1ee3p ho\u1eb7c n\u00fat h\u01a1n \u0111\u1ec3 c\u1ea3i thi\u1ec7n<\/span><\/td><\/tr><tr><td><b>\u0110\u1ed9 ph\u1ee9c t\u1ea1p c\u1ee7a b\u1ea3o tr\u00ec<\/b><\/td><td><span style=\"font-weight: 400;\">\u0110\u1ed9 ph\u1ee9c t\u1ea1p th\u1ea5p h\u01a1n<\/span><\/td><td><span style=\"font-weight: 400;\">\u0110\u1ed9 ph\u1ee9c t\u1ea1p cao h\u01a1n do b\u1ea3n ch\u1ea5t ph\u00e2n t\u00e1n<\/span><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-load-balancer-la-gi-khi-nao-nen-s\u1eed-d\u1ee5ng-load-balancer\"><b>Load Balancer l\u00e0 g\u00ec? Khi n\u00e0o n\u00ean s\u1eed d\u1ee5ng load balancer?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Load Balancer (b\u1ed9 c\u00e2n b\u1eb1ng t\u1ea3i) l\u00e0 m\u1ed9t thi\u1ebft b\u1ecb m\u1ea1ng ho\u1eb7c ph\u1ea7n m\u1ec1m d\u00f9ng \u0111\u1ec3 ph\u00e2n ph\u1ed1i l\u01b0u l\u01b0\u1ee3ng truy c\u1eadp t\u1eeb client \u0111\u1ebfn c\u00e1c m\u00e1y ch\u1ee7 trong h\u1ec7 th\u1ed1ng, gi\u00fap gi\u1ea3m t\u1ea3i tr\u00ean c\u00e1c m\u00e1y ch\u1ee7, tr\u00e1nh t\u00ecnh tr\u1ea1ng qu\u00e1 t\u1ea3i ho\u1eb7c s\u1eadp h\u1ec7 th\u1ed1ng khi l\u01b0u l\u01b0\u1ee3ng truy c\u1eadp t\u0103ng cao.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">N\u00f3 ho\u1ea1t \u0111\u1ed9ng nh\u01b0 m\u1ed9t \u201cc\u1ea3nh s\u00e1t giao th\u00f4ng,\u201d \u0111\u1ecbnh tuy\u1ebfn c\u00e1c y\u00eau c\u1ea7u t\u1eeb ng\u01b0\u1eddi d\u00f9ng \u0111\u1ebfn c\u00e1c m\u00e1y ch\u1ee7 kh\u00e1c nhau, \u0111\u1ea3m b\u1ea3o c\u00e1c m\u00e1y ch\u1ee7 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng hi\u1ec7u qu\u1ea3, h\u1ec7 th\u1ed1ng c\u00f3 hi\u1ec7u su\u1ea5t cao v\u00e0 d\u1ecbch v\u1ee5 lu\u00f4n s\u1eb5n s\u00e0ng v\u00e0 \u1ed5n \u0111\u1ecbnh.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">C\u00e1c tr\u01b0\u1eddng h\u1ee3p c\u1ee5 th\u1ec3 n\u00ean s\u1eed d\u1ee5ng load balancer nh\u01b0 \u1ee9ng d\u1ee5ng web (\u1ee9ng d\u1ee5ng th\u01b0\u01a1ng m\u1ea1i \u0111i\u1ec7n t\u1eed, game online, m\u1ea1ng x\u00e3 h\u1ed9i), c\u00e1c d\u1ecbch v\u1ee5 \u0111\u00e1m m\u00e2y, c\u00e1c \u1ee9ng d\u1ee5ng di \u0111\u1ed9ng, c\u00e1c h\u1ec7 th\u1ed1ng c\u01a1 s\u1edf d\u1eef li\u1ec7u.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-caching-la-gi-t\u1ea7m-quan-tr\u1ecdng-c\u1ee7a-caching-trong-l\u1eadp-trinh-backend\"><b>Caching l\u00e0 g\u00ec? T\u1ea7m quan tr\u1ecdng c\u1ee7a caching trong l\u1eadp tr\u00ecnh backend?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Caching (b\u1ed9 nh\u1edb \u0111\u1ec7m) l\u00e0 m\u1ed9t k\u1ef9 thu\u1eadt l\u01b0u tr\u1eef t\u1ea1m th\u1eddi c\u00e1c b\u1ea3n sao d\u1eef li\u1ec7u ho\u1eb7c t\u00e0i nguy\u00ean th\u01b0\u1eddng xuy\u00ean \u0111\u01b0\u1ee3c truy c\u1eadp \u0111\u1ec3 t\u0103ng t\u1ed1c \u0111\u1ed9 truy xu\u1ea5t v\u00e0 gi\u1ea3m t\u1ea3i cho h\u1ec7 th\u1ed1ng. Thay v\u00ec truy xu\u1ea5t d\u1eef li\u1ec7u t\u1eeb ngu\u1ed3n g\u1ed1c (nh\u01b0 c\u01a1 s\u1edf d\u1eef li\u1ec7u ho\u1eb7c m\u00e1y ch\u1ee7 t\u1eeb xa), h\u1ec7 th\u1ed1ng s\u1ebd l\u1ea5y d\u1eef li\u1ec7u t\u1eeb b\u1ed9 nh\u1edb \u0111\u1ec7m g\u1ea7n h\u01a1n v\u00e0 nhanh h\u01a1n.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Trong l\u1eadp tr\u00ecnh backend, vi\u1ec7c s\u1eed d\u1ee5ng caching mang l\u1ea1i l\u1ee3i \u00edch \u0111\u00e1ng \u0111\u1ec3 v\u1ec1 t\u1ed1c \u0111\u1ed9, th\u1eddi gian, hi\u1ec7u su\u1ea5t v\u00e0 c\u1ea3 chi ph\u00ed \u0111\u1ec3 ph\u00e1t tri\u1ec3n v\u00e0 duy tr\u00ec trang web.<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">H\u1ec7 th\u1ed1ng c\u00f3 th\u1ec3 l\u1ea5y d\u1eef li\u1ec7u t\u1eeb cache, v\u1ed1n c\u00f3 t\u1ed1c \u0111\u1ed9 truy xu\u1ea5t nhanh h\u01a1n r\u1ea5t nhi\u1ec1u gi\u00fap c\u1ea3i thi\u1ec7n \u0111\u00e1ng k\u1ec3 th\u1eddi gian \u0111\u00e1p \u1ee9ng c\u1ee7a \u1ee9ng d\u1ee5ng.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">T\u0103ng tu\u1ed5i th\u1ecd c\u1ee7a c\u01a1 s\u1edf d\u1eef li\u1ec7u, gi\u1ea3m thi\u1ec3u nguy c\u01a1 qu\u00e1 t\u1ea3i v\u00e0 t\u0103ng kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Gi\u1ea3m thi\u1ec3u th\u1eddi gian x\u1eed l\u00fd c\u00e1c y\u00eau c\u1ea7u, t\u1eeb \u0111\u00f3 t\u0103ng kh\u1ea3 n\u0103ng x\u1eed l\u00fd \u0111\u1ed3ng th\u1eddi c\u1ee7a h\u1ec7 th\u1ed1ng v\u00e0 n\u00e2ng cao tr\u1ea3i nghi\u1ec7m ng\u01b0\u1eddi d\u00f9ng.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Cache phi\u00ean b\u1ea3n duy nh\u1ea5t c\u00f3 th\u1ec3 ph\u1ee5c v\u1ee5 h\u00e0ng tr\u0103m ngh\u00ecn y\u00eau c\u1ea7u m\u1ed7i gi\u00e2y gi\u00fap c\u1ea3i thi\u1ec7n \u0111\u00e1ng k\u1ec3 hi\u1ec7u su\u1ea5t h\u1ec7 th\u1ed1ng v\u00e0 kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng trong c\u00e1c \u0111\u1ee3t user t\u0103ng \u0111\u1ed9t bi\u1ebfn.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">C\u00f3 kh\u1ea3 n\u0103ng thay th\u1ebf nhu c\u1ea7u v\u1ec1 nhi\u1ec1u phi\u00ean b\u1ea3n c\u01a1 s\u1edf d\u1eef li\u1ec7u, do \u0111\u00f3 gi\u1ea3m chi ph\u00ed c\u01a1 s\u1edf d\u1eef li\u1ec7u.<\/span><\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>Tham kh\u1ea3o <strong><a href=\"https:\/\/itviec.com\/it-jobs\/backend?utm_medium=anchor_text_mid&amp;utm_source=blog&amp;utm_campaign=viec_lam_backend&amp;utm_content=cau_hoi_phong_van_backend\" target=\"_blank\" rel=\"noreferrer noopener\">vi\u1ec7c l\u00e0m Backend<\/a><\/strong> m\u1edbi nh\u1ea5t v\u00e0 to\u00e0n qu\u1ed1c tr\u00ean ITviec.<\/em><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cau-h\u1ecfi-ph\u1ecfng-v\u1ea5n-backend-v\u1ec1-b\u1ea3o-m\u1eadt\"><span class=\"ez-toc-section\" id=\"Cau_hoi_phong_van_Backend_ve_bao_mat\"><\/span><b>C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 b\u1ea3o m\u1eadt<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-authentication-va-authorization-khac-nhau-nh\u01b0-th\u1ebf-nao\"><b>Authentication v\u00e0 Authorization kh\u00e1c nhau nh\u01b0 th\u1ebf n\u00e0o?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Authentication v\u00e0 Authorization l\u00e0 hai kh\u00e1i ni\u1ec7m th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng trong b\u1ea3o m\u1eadt h\u1ec7 th\u1ed1ng, \u0111\u1eb7c bi\u1ec7t l\u00e0 trong c\u00e1c \u1ee9ng d\u1ee5ng web v\u00e0 c\u01a1 s\u1edf d\u1eef li\u1ec7u. M\u1eb7c d\u00f9 ch\u00fang c\u00f3 li\u00ean quan ch\u1eb7t ch\u1ebd v\u1edbi nhau nh\u01b0ng ch\u00fang th\u1ef1c hi\u1ec7n c\u00e1c ch\u1ee9c n\u0103ng kh\u00e1c nhau.<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\"><strong>Authentication<\/strong> (x\u00e1c th\u1ef1c) l\u00e0 qu\u00e1 tr\u00ecnh x\u00e1c minh danh t\u00ednh c\u1ee7a ng\u01b0\u1eddi d\u00f9ng ho\u1eb7c h\u1ec7 th\u1ed1ng th\u00f4ng qua th\u00f4ng tin \u0111\u0103ng nh\u1eadp nh\u01b0 t\u00ean ng\u01b0\u1eddi d\u00f9ng, m\u1eadt kh\u1ea9u, ho\u1eb7c sinh tr\u1eafc h\u1ecdc (v\u00e2n tay, nh\u1eadn di\u1ec7n khu\u00f4n m\u1eb7t). Qu\u00e1 tr\u00ecnh n\u00e0y \u0111\u1ea3m b\u1ea3o quy\u1ec1n truy c\u1eadp an to\u00e0n, ng\u0103n ch\u1eb7n x\u00e2m nh\u1eadp tr\u00e1i ph\u00e9p v\u00e0 b\u1ea3o v\u1ec7 th\u00f4ng tin nh\u1ea1y c\u1ea3m.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><strong>Authorization<\/strong> (\u1ee7y quy\u1ec1n) l\u00e0 qu\u00e1 tr\u00ecnh c\u1ea5p quy\u1ec1n cho ng\u01b0\u1eddi d\u00f9ng ho\u1eb7c h\u1ec7 th\u1ed1ng \u0111\u00e3 x\u00e1c th\u1ef1c, x\u00e1c \u0111\u1ecbnh h\u1ecd c\u00f3 th\u1ec3 truy c\u1eadp v\u00e0 th\u1ef1c hi\u1ec7n nh\u1eefng h\u00e0nh \u0111\u1ed9ng n\u00e0o. Di\u1ec5n ra sau x\u00e1c th\u1ef1c, \u1ee7y quy\u1ec1n \u0111\u1ea3m b\u1ea3o quy\u1ec1n truy c\u1eadp ph\u00f9 h\u1ee3p, ng\u0103n ch\u1eb7n ho\u1ea1t \u0111\u1ed9ng tr\u00e1i ph\u00e9p v\u00e0 h\u1ed7 tr\u1ee3 ki\u1ec3m so\u00e1t b\u1ea3o m\u1eadt h\u1ec7 th\u1ed1ng.<\/span><\/li>\n<\/ul>\n\n\n\n<p><span style=\"font-weight: 400;\">S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa Authentication v\u00e0 Authorization:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><b>Ti\u00eau ch\u00ed<\/b><\/td><td><b>Authentication<\/b><\/td><td><b>Authorization<\/b><\/td><\/tr><tr><td><b>M\u1ee5c ti\u00eau<\/b><\/td><td><span style=\"font-weight: 400;\">Danh t\u00ednh c\u1ee7a ng\u01b0\u1eddi d\u00f9ng s\u1ebd \u0111\u01b0\u1ee3c ki\u1ec3m tra \u0111\u1ec3 cung c\u1ea5p quy\u1ec1n truy c\u1eadp v\u00e0o h\u1ec7 th\u1ed1ng.<\/span><\/td><td><span style=\"font-weight: 400;\">Quy\u1ec1n h\u1ea1n c\u1ee7a c\u00e1 nh\u00e2n ho\u1eb7c ng\u01b0\u1eddi d\u00f9ng s\u1ebd \u0111\u01b0\u1ee3c ki\u1ec3m tra \u0111\u1ec3 truy c\u1eadp v\u00e0o t\u00e0i nguy\u00ean.<\/span><\/td><\/tr><tr><td><b>Th\u1ee9 t\u1ef1<\/b><\/td><td><span style=\"font-weight: 400;\">\u0110\u01b0\u1ee3c th\u1ef1c hi\u1ec7n tr\u01b0\u1edbc qu\u00e1 tr\u00ecnh c\u1ea5p ph\u00e9p.<\/span><\/td><td><span style=\"font-weight: 400;\">\u0110\u01b0\u1ee3c th\u1ef1c hi\u1ec7n sau qu\u00e1 tr\u00ecnh x\u00e1c th\u1ef1c.<\/span><\/td><\/tr><tr><td><b>Y\u00eau c\u1ea7u th\u00f4ng tin<\/b><\/td><td><span style=\"font-weight: 400;\">C\u1ea7n th\u00f4ng tin \u0111\u0103ng nh\u1eadp c\u1ee7a ng\u01b0\u1eddi d\u00f9ng.<\/span><\/td><td><span style=\"font-weight: 400;\">C\u1ea7n c\u00f3 \u0111\u1eb7c quy\u1ec1n ho\u1eb7c m\u1ee9c \u0111\u1ed9 b\u1ea3o m\u1eadt c\u1ee7a ng\u01b0\u1eddi d\u00f9ng.<\/span><\/td><\/tr><tr><td><b>M\u1ee5c \u0111\u00edch<\/b><\/td><td><span style=\"font-weight: 400;\">X\u00e1c \u0111\u1ecbnh xem ng\u01b0\u1eddi \u0111\u00f3 c\u00f3 ph\u1ea3i l\u00e0 ng\u01b0\u1eddi d\u00f9ng hay kh\u00f4ng.<\/span><\/td><td><span style=\"font-weight: 400;\">X\u00e1c \u0111\u1ecbnh Ng\u01b0\u1eddi d\u00f9ng c\u00f3 quy\u1ec1n g\u00ec?<\/span><\/td><\/tr><tr><td><b>K\u00eanh truy\u1ec1n<\/b><\/td><td><span style=\"font-weight: 400;\">Truy\u1ec1n th\u00f4ng tin th\u00f4ng qua ID Token.<\/span><\/td><td><span style=\"font-weight: 400;\">Truy\u1ec1n th\u00f4ng tin th\u00f4ng qua M\u00e3 th\u00f4ng b\u00e1o truy c\u1eadp.<\/span><\/td><\/tr><tr><td><b>Giao th\u1ee9c<\/b><\/td><td><span style=\"font-weight: 400;\">Giao th\u1ee9c OpenID Connect (OIDC) l\u00e0 giao th\u1ee9c x\u00e1c th\u1ef1c th\u01b0\u1eddng ch\u1ecbu tr\u00e1ch nhi\u1ec7m v\u1ec1 quy tr\u00ecnh x\u00e1c th\u1ef1c ng\u01b0\u1eddi d\u00f9ng.&nbsp;<\/span><\/td><td><span style=\"font-weight: 400;\">Giao th\u1ee9c OAuth 2.0 qu\u1ea3n l\u00fd to\u00e0n b\u1ed9 h\u1ec7 th\u1ed1ng quy tr\u00ecnh c\u1ea5p ph\u00e9p ng\u01b0\u1eddi d\u00f9ng.<\/span><\/td><\/tr><tr><td><b>K\u1ef9 thu\u1eadt ph\u1ed5 bi\u1ebfn<\/b><\/td><td><span style=\"font-weight: 400;\">&#8211; X\u00e1c th\u1ef1c d\u1ef1a tr\u00ean m\u1eadt kh\u1ea9u<\/span>\n<p><span style=\"font-weight: 400;\">&#8211; X\u00e1c th\u1ef1c kh\u00f4ng c\u1ea7n m\u1eadt kh\u1ea9u<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&#8211; 2FA\/MFA (X\u00e1c th\u1ef1c hai y\u1ebfu t\u1ed1 \/ X\u00e1c th\u1ef1c \u0111a y\u1ebfu t\u1ed1)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&#8211; \u0110\u0103ng nh\u1eadp m\u1ed9t l\u1ea7n (SSO)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&#8211; X\u00e1c th\u1ef1c x\u00e3 h\u1ed9i<\/span><\/p>\n<\/td><td><span style=\"font-weight: 400;\">&#8211; Ki\u1ec3m so\u00e1t truy c\u1eadp d\u1ef1a tr\u00ean vai tr\u00f2 (RBAC)<\/span>\n<p><span style=\"font-weight: 400;\">&#8211; X\u00e1c th\u1ef1c m\u00e3 th\u00f4ng b\u00e1o web JSON (JWT)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&#8211; \u1ee6y quy\u1ec1n SAML<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&#8211; \u1ee6y quy\u1ec1n OpenID<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&#8211; \u1ee6y quy\u1ec1n OAuth 2.0<\/span><\/p>\n<\/td><\/tr><tr><td><b>Kh\u1ea3 n\u0103ng thay \u0111\u1ed5i th\u00f4ng tin<\/b><\/td><td><span style=\"font-weight: 400;\">Th\u00f4ng tin x\u00e1c th\u1ef1c c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c thay \u0111\u1ed5i m\u1ed9t ph\u1ea7n khi ng\u01b0\u1eddi d\u00f9ng c\u1ea7n.<\/span><\/td><td><span style=\"font-weight: 400;\">Ng\u01b0\u1eddi d\u00f9ng kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i quy\u1ec1n \u1ee7y quy\u1ec1n v\u00ec ch\u00fang \u0111\u01b0\u1ee3c c\u1ea5p b\u1edfi ch\u1ee7 s\u1edf h\u1eefu h\u1ec7 th\u1ed1ng v\u00e0 ch\u1ec9 c\u00f3 ng\u01b0\u1eddi \u0111\u00f3 m\u1edbi c\u00f3 quy\u1ec1n thay \u0111\u1ed5i.<\/span><\/td><\/tr><tr><td><b>Kh\u1ea3 n\u0103ng nh\u00ecn th\u1ea5y<\/b><\/td><td><span style=\"font-weight: 400;\">C\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c nh\u00ecn th\u1ea5y \u1edf ph\u00eda ng\u01b0\u1eddi d\u00f9ng.<\/span><\/td><td><span style=\"font-weight: 400;\">Quy\u1ec1n c\u1ee7a ng\u01b0\u1eddi d\u00f9ng kh\u00f4ng hi\u1ec3n th\u1ecb \u1edf ph\u00eda ng\u01b0\u1eddi d\u00f9ng.<\/span><\/td><\/tr><tr><td><b>C\u00e1ch x\u00e1c th\u1ef1c<\/b><\/td><td><span style=\"font-weight: 400;\">X\u00e1c th\u1ef1c ng\u01b0\u1eddi d\u00f9ng \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh b\u1eb1ng t\u00ean ng\u01b0\u1eddi d\u00f9ng, m\u1eadt kh\u1ea9u, nh\u1eadn d\u1ea1ng khu\u00f4n m\u1eb7t, qu\u00e9t v\u00f5ng m\u1ea1c, d\u1ea5u v\u00e2n tay,&#8230;<\/span><\/td><td><span style=\"font-weight: 400;\">\u0110\u01b0\u1ee3c th\u1ef1c hi\u1ec7n th\u00f4ng qua quy\u1ec1n truy c\u1eadp v\u00e0o t\u00e0i nguy\u00ean b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng c\u00e1c vai tr\u00f2 \u0111\u00e3 \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh tr\u01b0\u1edbc.<\/span><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-s\u1ef1-khac-nhau-gi\u1eefa-cookie-va-session-la-gi\"><b>S\u1ef1 kh\u00e1c nhau gi\u1eefa cookie v\u00e0 session l\u00e0 g\u00ec?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\"><a href=\"https:\/\/itviec.com\/blog\/cookies-la-gi\/\" target=\"_blank\" rel=\"noopener\"><strong>Cookies<\/strong><\/a> l\u00e0 t\u1ec7p v\u0103n b\u1ea3n nh\u1ecf (th\u01b0\u1eddng t\u1ed1i \u0111a 4KB tu\u1ef3 thu\u1ed9c v\u00e0o tr\u00ecnh duy\u1ec7t v\u00e0 m\u00e1y ch\u1ee7) \u0111\u01b0\u1ee3c l\u01b0u tr\u00ean m\u00e1y t\u00ednh ng\u01b0\u1eddi d\u00f9ng khi h\u1ecd truy c\u1eadp trang web. N\u00f3 ch\u1ee9a d\u1eef li\u1ec7u do trang web g\u1eedi \u0111\u1ec3 h\u1ed7 tr\u1ee3 nh\u1eadn di\u1ec7n v\u00e0 l\u01b0u tr\u1eef th\u00f4ng tin.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\"><strong>Session<\/strong> l\u00e0 kho\u1ea3ng th\u1eddi gian l\u01b0u tr\u1eef t\u1ea1m th\u1eddi th\u00f4ng tin tr\u00ean m\u00e1y ch\u1ee7, h\u1ed7 tr\u1ee3 ng\u01b0\u1eddi d\u00f9ng duy tr\u00ec tr\u1ea1ng th\u00e1i gi\u1eefa c\u00e1c trang web. Phi\u00ean b\u1eaft \u0111\u1ea7u khi ng\u01b0\u1eddi d\u00f9ng \u0111\u0103ng nh\u1eadp v\u00e0 k\u1ebft th\u00fac khi h\u1ecd \u0111\u0103ng xu\u1ea5t ho\u1eb7c t\u1eaft m\u00e1y.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">S\u1ef1 kh\u00e1c nhau gi\u1eefa cookie v\u00e0 session:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><b>Ti\u00eau ch\u00ed<\/b><\/td><td><b>Cookie<\/b><\/td><td><b>Session<\/b><\/td><\/tr><tr><td><b>Th\u1eddi \u0111i\u1ec3m k\u1ebft th\u00fac<\/b><\/td><td><span style=\"font-weight: 400;\">K\u1ebft th\u00fac theo th\u1eddi h\u1ea1n t\u1ed3n t\u1ea1i do ng\u01b0\u1eddi d\u00f9ng thi\u1ebft l\u1eadp.<\/span><\/td><td><span style=\"font-weight: 400;\">Khi ng\u01b0\u1eddi d\u00f9ng tho\u00e1t kh\u1ecfi tr\u00ecnh duy\u1ec7t ho\u1eb7c \u0111\u0103ng xu\u1ea5t kh\u1ecfi ch\u01b0\u01a1ng tr\u00ecnh, phi\u00ean l\u00e0m vi\u1ec7c s\u1ebd k\u1ebft th\u00fac.<\/span><\/td><\/tr><tr><td><b>Kh\u1ea3 n\u0103ng&nbsp; l\u01b0u tr\u1eef<\/b><\/td><td><span style=\"font-weight: 400;\">Ch\u1ec9 c\u00f3 th\u1ec3 l\u01b0u tr\u1eef m\u1ed9t l\u01b0\u1ee3ng th\u00f4ng tin nh\u1ea5t \u0111\u1ecbnh.<\/span><\/td><td><span style=\"font-weight: 400;\">C\u00f3 th\u1ec3 l\u01b0u tr\u1eef m\u1ed9t l\u01b0\u1ee3ng d\u1eef li\u1ec7u kh\u00f4ng x\u00e1c \u0111\u1ecbnh.<\/span><\/td><\/tr><tr><td><b>Dung l\u01b0\u1ee3ng<\/b><\/td><td><span style=\"font-weight: 400;\">Cookie c\u1ee7a tr\u00ecnh duy\u1ec7t c\u00f3 dung l\u01b0\u1ee3ng t\u1ed1i \u0111a l\u00e0 4 KB. Tu\u1ef3 theo tr\u00ecnh duy\u1ec7t ho\u1eb7c m\u00e1y ch\u1ee7.<\/span><\/td><td><span style=\"font-weight: 400;\">C\u00f3 th\u1ec3 l\u01b0u tr\u1eef bao nhi\u00eau d\u1eef li\u1ec7u t\u00f9y th\u00edch trong m\u1ed9t phi\u00ean. Tuy nhi\u00ean gi\u1edbi h\u1ea1n b\u1ed9 nh\u1edb t\u1ed1i \u0111a m\u1ed9t t\u1eadp l\u1ec7nh c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00f9ng m\u1ed9t l\u00fac l\u00e0 128MB<\/span><\/td><\/tr><tr><td><b>C\u00e1ch kh\u1edfi \u0111\u1ed9ng<\/b><\/td><td><span style=\"font-weight: 400;\">V\u00ec cookie \u0111\u01b0\u1ee3c l\u01b0u tr\u00ean m\u00e1y t\u00ednh c\u1ee5c b\u1ed9 n\u00ean kh\u00f4ng c\u1ea7n ch\u1ea1y h\u00e0m \u0111\u1ec3 kh\u1edfi \u0111\u1ed9ng ch\u00fang.<\/span><\/td><td><span style=\"font-weight: 400;\">\u0110\u1ec3 b\u1eaft \u0111\u1ea7u phi\u00ean, ph\u1ea3i s\u1eed d\u1ee5ng ph\u01b0\u01a1ng th\u1ee9c session start().<\/span><\/td><\/tr><tr><td><b>B\u1ea3o m\u1eadt<\/b><\/td><td><span style=\"font-weight: 400;\">Kh\u00f4ng \u0111\u01b0\u1ee3c b\u1ea3o m\u1eadt.<\/span><\/td><td><span style=\"font-weight: 400;\">L\u00e0m vi\u1ec7c an to\u00e0n h\u01a1n nhi\u1ec1u so v\u1edbi cookie.<\/span><\/td><\/tr><tr><td><b>C\u00e1ch l\u01b0u tr\u1eef d\u1eef li\u1ec7u<\/b><\/td><td><span style=\"font-weight: 400;\">L\u01b0u tr\u1eef d\u1eef li\u1ec7u trong t\u1ec7p v\u0103n b\u1ea3n.<\/span><\/td><td><span style=\"font-weight: 400;\">D\u1eef li\u1ec7u l\u01b0u d\u01b0\u1edbi m\u00e1y ch\u1ee7.<\/span><\/td><\/tr><tr><td><b>L\u1ea5y d\u1eef li\u1ec7u trong PHP<\/b><\/td><td><span style=\"font-weight: 400;\">$_COOKIES bi\u1ebfn to\u00e0n c\u1ee5c \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng<\/span><\/td><td><span style=\"font-weight: 400;\">Bi\u1ebfn to\u00e0n c\u1ee5c $_SESSION \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng<\/span><\/td><\/tr><tr><td><b>X\u00f3a \/ H\u1ee7y d\u1eef li\u1ec7u<\/b><\/td><td><span style=\"font-weight: 400;\">C\u00f3 th\u1ec3 thi\u1ebft l\u1eadp ng\u00e0y h\u1ebft h\u1ea1n \u0111\u1ec3 x\u00f3a d\u1eef li\u1ec7u cookie. Cookie s\u1ebd t\u1ef1 \u0111\u1ed9ng x\u00f3a d\u1eef li\u1ec7u v\u00e0o th\u1eddi \u0111i\u1ec3m c\u1ee5 th\u1ec3 \u0111\u00f3.&nbsp;<\/span><\/td><td><span style=\"font-weight: 400;\">\u0110\u1ec3 h\u1ee7y ho\u1eb7c x\u00f3a d\u1eef li\u1ec7u, c\u00f3 th\u1ec3 d\u00f9ng h\u00e0m session_destroy().&nbsp;<\/span>\n<p><span style=\"font-weight: 400;\">\u0110\u1ec3 h\u1ee7y c\u00e0i \u0111\u1eb7t m\u1ed9t bi\u1ebfn c\u1ee5 th\u1ec3, c\u00f3 th\u1ec3 d\u00f9ng h\u00e0m unset().<\/span><\/p>\n<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-http-va-https-co-gi-khac-nhau\"><b>HTTP v\u00e0 HTTPS c\u00f3 g\u00ec kh\u00e1c nhau?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">HTTP (Hypertext Transfer Protocol) l\u00e0 giao th\u1ee9c truy\u1ec1n d\u1eef li\u1ec7u tr\u00ean web, \u0111\u01b0\u1ee3c Tim Berners-Lee ph\u00e1t minh. N\u00f3 thi\u1ebft l\u1eadp chu\u1ea9n giao ti\u1ebfp gi\u1eefa tr\u00ecnh duy\u1ec7t v\u00e0 m\u00e1y ch\u1ee7 web, cho ph\u00e9p truy\u1ec1n d\u1eef li\u1ec7u nh\u01b0 v\u0103n b\u1ea3n, h\u00ecnh \u1ea3nh v\u00e0 \u0111a ph\u01b0\u01a1ng ti\u1ec7n qua World Wide Web. HTTP \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng m\u1ed7i khi ng\u01b0\u1eddi d\u00f9ng truy c\u1eadp tr\u00ecnh duy\u1ec7t, h\u1ed7 tr\u1ee3 h\u1ec7 th\u1ed1ng th\u00f4ng tin si\u00eau ph\u01b0\u01a1ng ti\u1ec7n ph\u00e2n t\u00e1n.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">HTTPS (Hypertext Transfer Protocol Secure) l\u00e0 phi\u00ean b\u1ea3n b\u1ea3o m\u1eadt c\u1ee7a HTTP, s\u1eed d\u1ee5ng SSL\/TLS \u0111\u1ec3 m\u00e3 h\u00f3a v\u00e0 b\u1ea3o v\u1ec7 th\u00f4ng tin li\u00ean l\u1ea1c tr\u00ean web. C\u00e1c trang web s\u1eed d\u1ee5ng HTTPS an to\u00e0n h\u01a1n v\u00ec \u0111\u01b0\u1ee3c ch\u1ee9ng nh\u1eadn b\u1edfi SSL. Ng\u01b0\u1ee3c l\u1ea1i, c\u00e1c trang web ch\u1ec9 d\u00f9ng HTTP kh\u00f4ng \u0111\u1ea3m b\u1ea3o t\u00ednh an to\u00e0n.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">So s\u00e1nh \u0111i\u1ec3m kh\u00e1c nhau gi\u1eefa HTTP v\u00e0 HTTPS:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><b>Ti\u00eau ch\u00ed<\/b><\/td><td><b>HTTP<\/b><\/td><td><b>HTTPS<\/b><\/td><\/tr><tr><td><b>URL<\/b><\/td><td><span style=\"font-weight: 400;\">URL b\u1eaft \u0111\u1ea7u b\u1eb1ng \u201chttp:\/\/\u201d.&nbsp;<\/span><\/td><td><span style=\"font-weight: 400;\">URL b\u1eaft \u0111\u1ea7u b\u1eb1ng \u201chttps:\/\/\u201d.<\/span><\/td><\/tr><tr><td><b>C\u1ed5ng giao ti\u1ebfp<\/b><\/td><td><span style=\"font-weight: 400;\">C\u1ed5ng s\u1ed1 80<\/span><\/td><td><span style=\"font-weight: 400;\">C\u1ed5ng s\u1ed1 443<\/span><\/td><\/tr><tr><td><b>\u0110\u1ed9 an to\u00e0n<\/b><\/td><td><span style=\"font-weight: 400;\">Kh\u00f4ng an to\u00e0n. V\u00ec si\u00eau v\u0103n b\u1ea3n \u0111\u01b0\u1ee3c trao \u0111\u1ed5i d\u01b0\u1edbi d\u1ea1ng v\u0103n b\u1ea3n thu\u1ea7n t\u00fay, ngh\u0129a l\u00e0 n\u1ebfu ai \u0111\u00f3 ch\u1eb7n \u0111\u01b0\u1ee3c d\u1eef li\u1ec7u n\u00e0y trong qu\u00e1 tr\u00ecnh trao \u0111\u1ed5i gi\u1eefa tr\u00ecnh duy\u1ec7t v\u00e0 m\u00e1y ch\u1ee7, h\u1ecd c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng \u0111\u1ecdc \u0111\u01b0\u1ee3c th\u00f4ng tin.<\/span><\/td><td><span style=\"font-weight: 400;\">An to\u00e0n h\u01a1n v\u00ec s\u1eed d\u1ee5ng m\u00e3 h\u00f3a.<\/span><\/td><\/tr><tr><td><b>L\u1edbp ho\u1ea1t \u0111\u1ed9ng<\/b><\/td><td><span style=\"font-weight: 400;\">L\u1edbp \u1ee9ng d\u1ee5ng<\/span><\/td><td><span style=\"font-weight: 400;\">L\u1edbp truy\u1ec1n t\u1ea3i<\/span><\/td><\/tr><tr><td><b>T\u1ed1c \u0111\u1ed9<\/b><\/td><td><span style=\"font-weight: 400;\">Nhanh h\u01a1n HTTPS<\/span><\/td><td><span style=\"font-weight: 400;\">Ch\u1eadm h\u01a1n HTTP<\/span><\/td><\/tr><tr><td><b>B\u1ea3o m\u1eadt d\u1eef li\u1ec7u<\/b><\/td><td><span style=\"font-weight: 400;\">D\u1eef li\u1ec7u truy\u1ec1n \u0111i gi\u1eefa m\u00e1y ch\u1ee7 v\u00e0 tr\u00ecnh duy\u1ec7t kh\u00f4ng \u0111\u01b0\u1ee3c m\u00e3 h\u00f3a.<\/span><\/td><td><span style=\"font-weight: 400;\">S\u1eed d\u1ee5ng giao th\u1ee9c SSL\/TLS \u0111\u1ec3 m\u00e3 h\u00f3a d\u1eef li\u1ec7u truy\u1ec1n \u0111i. \u0110i\u1ec1u n\u00e0y \u0111\u1ea3m b\u1ea3o r\u1eb1ng ch\u1ec9 m\u00e1y ch\u1ee7 v\u00e0 tr\u00ecnh duy\u1ec7t m\u1edbi c\u00f3 th\u1ec3 \u0111\u1ecdc \u0111\u01b0\u1ee3c d\u1eef li\u1ec7u, ng\u0103n ch\u1eb7n vi\u1ec7c \u0111\u00e1nh c\u1eafp th\u00f4ng tin b\u1edfi c\u00e1c b\u00ean th\u1ee9 ba.<\/span><\/td><\/tr><tr><td><b>K\u00eanh truy\u1ec1n<\/b><\/td><td><span style=\"font-weight: 400;\">\u0110\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 truy\u1ec1n t\u1ea3i v\u0103n b\u1ea3n, video v\u00e0 h\u00ecnh \u1ea3nh qua c\u00e1c trang web.<\/span><\/td><td><span style=\"font-weight: 400;\">\u0110\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 truy\u1ec1n d\u1eef li\u1ec7u an to\u00e0n qua m\u1ea1ng.<\/span><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-jwt-json-web-token-la-gi-nh\u1eefng-tr\u01b0\u1eddng-h\u1ee3p-nao-nen-s\u1eed-d\u1ee5ng-jwt\"><b>JWT (JSON Web Token) l\u00e0 g\u00ec? Nh\u1eefng tr\u01b0\u1eddng h\u1ee3p n\u00e0o n\u00ean s\u1eed d\u1ee5ng JWT?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">JSON Web Token (JWT) l\u00e0 m\u1ed9t ti\u00eau chu\u1ea9n m\u00e3 ngu\u1ed3n m\u1edf \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 truy\u1ec1n th\u00f4ng tin m\u1ed9t c\u00e1ch an to\u00e0n v\u00e0 g\u1ecdn nh\u1eb9 gi\u1eefa c\u00e1c h\u1ec7 th\u1ed1ng. N\u00f3 th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng trong c\u00e1c h\u1ec7 th\u1ed1ng ph\u00e2n t\u00e1n \u0111\u1ec3 x\u00e1c th\u1ef1c ng\u01b0\u1eddi d\u00f9ng, trao \u0111\u1ed5i d\u1eef li\u1ec7u v\u00e0 c\u00e1c quy\u1ec1n truy c\u1eadp.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">JWT th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng trong nh\u1eefng tr\u01b0\u1eddng h\u1ee3p nh\u01b0:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">X\u00e1c th\u1ef1c v\u00e0 \u1ee7y quy\u1ec1n trong c\u00e1c \u1ee9ng d\u1ee5ng web v\u00e0 API<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">H\u1ec7 th\u1ed1ng ph\u00e2n t\u00e1n ho\u1eb7c microservices<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u1ee8ng d\u1ee5ng di \u0111\u1ed9ng (Mobile App)<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Single Sign-On (SSO)<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">API c\u00f3 kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng cao<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u1ee8ng d\u1ee5ng c\u1ea7n t\u00ednh n\u0103ng b\u1ea3o m\u1eadt cao<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u1ee8ng d\u1ee5ng y\u00eau c\u1ea7u t\u00ednh b\u1ea3o m\u1eadt v\u00e0 kh\u00f4ng ph\u1ee5 thu\u1ed9c v\u00e0o session<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u1ee8ng d\u1ee5ng v\u1edbi nhi\u1ec1u n\u1ec1n t\u1ea3ng ho\u1eb7c thi\u1ebft b\u1ecb<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u1ee8ng d\u1ee5ng c\u00f3 nhu c\u1ea7u truy c\u1eadp nhanh v\u00e0 hi\u1ec7u qu\u1ea3<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Khi c\u1ea7n gi\u1ea3m thi\u1ec3u s\u1ef1 ph\u1ee5 thu\u1ed9c v\u00e0o c\u01a1 s\u1edf d\u1eef li\u1ec7u<\/span><\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u0110\u1ecdc th\u00eam: <a href=\"https:\/\/itviec.com\/blog\/json-web-token-la-gi\/\" target=\"_blank\" rel=\"noopener\"><strong>JSON Web Token l\u00e0 g\u00ec: \u0110\u1ecbnh ngh\u0129a v\u00e0 c\u00e1ch ho\u1ea1t \u0111\u1ed9ng<\/strong><\/a><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-lam-sao-d\u1ec3-ma-hoa-m\u1eadt-kh\u1ea9u-ng\u01b0\u1eddi-dung-an-toan-trong-c\u01a1-s\u1edf-d\u1eef-li\u1ec7u\"><b>L\u00e0m sao \u0111\u1ec3 m\u00e3 h\u00f3a m\u1eadt kh\u1ea9u ng\u01b0\u1eddi d\u00f9ng an to\u00e0n trong c\u01a1 s\u1edf d\u1eef li\u1ec7u?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">M\u00e3 h\u00f3a m\u1eadt kh\u1ea9u ng\u01b0\u1eddi d\u00f9ng m\u1ed9t c\u00e1ch an to\u00e0n trong c\u01a1 s\u1edf d\u1eef li\u1ec7u l\u00e0 m\u1ed9t b\u01b0\u1edbc quan tr\u1ecdng \u0111\u1ec3 b\u1ea3o v\u1ec7 d\u1eef li\u1ec7u ng\u01b0\u1eddi d\u00f9ng v\u00e0 \u0111\u1ea3m b\u1ea3o an to\u00e0n trong c\u00e1c h\u1ec7 th\u1ed1ng. \u0110\u1ec3 m\u00e3 h\u00f3a m\u1eadt kh\u1ea9u ng\u01b0\u1eddi d\u00f9ng an to\u00e0n trong c\u01a1 s\u1edf d\u1eef li\u1ec7u, b\u1ea1n c\u00f3 th\u1ec3 th\u1ef1c hi\u1ec7n theo 2 c\u00e1ch g\u1ed3m:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">S\u1eed d\u1ee5ng Hashing (B\u0103m) thay v\u00ec m\u00e3 h\u00f3a<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">S\u1eed d\u1ee5ng Salt (Mu\u1ed1i) khi b\u0103m m\u1eadt kh\u1ea9u<\/span><\/li>\n<\/ul>\n\n\n\n<p><span style=\"font-weight: 400;\">B\u1ea1n l\u01b0u \u00fd s\u1eed d\u1ee5ng c\u00e1c thu\u1eadt to\u00e1n b\u0103m \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 b\u1ea3o v\u1ec7 m\u1eadt kh\u1ea9u, ch\u1eb3ng h\u1ea1n bcrypt, Argon2, PBKDF2 ho\u1eb7c scrypt.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cau-h\u1ecfi-ph\u1ecfng-v\u1ea5n-backend-v\u1ec1-cac-k\u1ef9-thu\u1eadt-l\u1eadp-trinh-va-cong-c\u1ee5\"><span class=\"ez-toc-section\" id=\"Cau_hoi_phong_van_Backend_ve_cac_ky_thuat_lap_trinh_va_cong_cu\"><\/span><b>C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 c\u00e1c k\u1ef9 thu\u1eadt l\u1eadp tr\u00ecnh v\u00e0 c\u00f4ng c\u1ee5<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-orm-object-relational-mapping-la-gi\"><b>ORM (Object-Relational Mapping) l\u00e0 g\u00ec?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">ORM l\u00e0 vi\u1ebft t\u1eaft c\u1ee7a Object-Relational Mapping, d\u1ecbch sang ti\u1ebfng Vi\u1ec7t l\u00e0 \u00c1nh x\u1ea1 \u0111\u1ed1i t\u01b0\u1ee3ng-quan h\u1ec7.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">\u0110\u00e2y l\u00e0 m\u1ed9t k\u1ef9 thu\u1eadt l\u1eadp tr\u00ecnh \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 \u00e1nh x\u1ea1 (mapping) c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng trong l\u1eadp tr\u00ecnh h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng (OOP) v\u1edbi c\u00e1c b\u1ea3ng trong c\u01a1 s\u1edf d\u1eef li\u1ec7u quan h\u1ec7.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-dependency-injection-la-gi\"><b>Dependency Injection l\u00e0 g\u00ec?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Dependency Injection (DI) l\u00e0 m\u1ed9t m\u1eabu thi\u1ebft k\u1ebf ph\u1ea7n m\u1ec1m gi\u00fap gi\u1ea3m s\u1ef1 k\u1ebft n\u1ed1i ch\u1eb7t ch\u1ebd gi\u1eefa c\u00e1c th\u00e0nh ph\u1ea7n ph\u1ea7n m\u1ec1m.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">N\u00f3 li\u00ean quan \u0111\u1ebfn vi\u1ec7c cung c\u1ea5p c\u00e1c ph\u1ee5 thu\u1ed9c (\u0111\u1ed1i t\u01b0\u1ee3ng ho\u1eb7c d\u1ecbch v\u1ee5) cho m\u1ed9t l\u1edbp ho\u1eb7c h\u00e0m thay v\u00ec \u0111\u1ec3 l\u1edbp ho\u1eb7c h\u00e0m t\u1ef1 t\u1ea1o ra ch\u00fang.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-unit-test-va-integration-test-khac-nhau-nh\u01b0-th\u1ebf-nao\"><b>Unit test v\u00e0 Integration test kh\u00e1c nhau nh\u01b0 th\u1ebf n\u00e0o?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\"><strong>Unit test<\/strong> &#8211; Ki\u1ec3m th\u1eed \u0111\u01a1n v\u1ecb l\u00e0 ph\u01b0\u01a1ng ph\u00e1p ki\u1ec3m th\u1eed ph\u1ea7n m\u1ec1m trong \u0111\u00f3 c\u00e1c th\u00e0nh ph\u1ea7n ph\u1ea7n m\u1ec1m ri\u00eang l\u1ebb (ch\u1ee9c n\u0103ng ho\u1eb7c quy tr\u00ecnh) \u0111\u01b0\u1ee3c ki\u1ec3m tra \u0111\u1ed9c l\u1eadp \u0111\u1ec3 ph\u00e1t hi\u1ec7n l\u1ed7i.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Trong khi \u0111\u00f3, <strong>Integration test<\/strong> &#8211; Ki\u1ec3m th\u1eed t\u00edch h\u1ee3p l\u00e0 qu\u00e1 tr\u00ecnh ki\u1ec3m tra giao di\u1ec7n gi\u1eefa c\u00e1c m\u00f4-\u0111un ph\u1ea7n m\u1ec1m \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o t\u00ednh ch\u00ednh x\u00e1c c\u1ee7a c\u00e1c t\u01b0\u01a1ng t\u00e1c gi\u1eefa ch\u00fang.&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">C\u00e1c \u0111i\u1ec3m kh\u00e1c nhau c\u1ee7a Unit test v\u00e0 Integration test g\u1ed3m:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><b>Ti\u00eau ch\u00ed<\/b><\/td><td><b>Unit test&nbsp;<\/b><\/td><td><b>Integration test<\/b><\/td><\/tr><tr><td><b>C\u00e1ch th\u1eed nghi\u1ec7m<\/b><\/td><td><span style=\"font-weight: 400;\">M\u1ed7i m\u00f4-\u0111un c\u1ee7a ph\u1ea7n m\u1ec1m \u0111\u01b0\u1ee3c th\u1eed nghi\u1ec7m ri\u00eang bi\u1ec7t.<\/span><\/td><td><span style=\"font-weight: 400;\">T\u1ea5t c\u1ea3 m\u00f4-\u0111un c\u1ee7a ph\u1ea7n m\u1ec1m \u0111\u01b0\u1ee3c th\u1eed nghi\u1ec7m k\u1ebft h\u1ee3p.<\/span><\/td><\/tr><tr><td><b>Tr\u00ecnh t\u1ef1<\/b><\/td><td><span style=\"font-weight: 400;\">Th\u1ef1c hi\u1ec7n tr\u01b0\u1edbc ti\u00ean trong t\u1ea5t c\u1ea3 c\u00e1c quy tr\u00ecnh ki\u1ec3m th\u1eed.<\/span><\/td><td><span style=\"font-weight: 400;\">Th\u1ef1c hi\u1ec7n sau ki\u1ec3m th\u1eed \u0111\u01a1n v\u1ecb v\u00e0 tr\u01b0\u1edbc ki\u1ec3m th\u1eed h\u1ec7 th\u1ed1ng.<\/span><\/td><\/tr><tr><td><b>V\u1ecb tr\u00ed ki\u1ec3m th\u1eed<\/b><\/td><td><span style=\"font-weight: 400;\">Ki\u1ec3m th\u1eed h\u1ed9p tr\u1eafng.<\/span><\/td><td><span style=\"font-weight: 400;\">Ki\u1ec3m th\u1eed h\u1ed9p \u0111en.<\/span><\/td><\/tr><tr><td><b>Ch\u1ee7 th\u1ec3 th\u1ef1c hi\u1ec7n<\/b><\/td><td><span style=\"font-weight: 400;\">Th\u1ef1c hi\u1ec7n b\u1edfi nh\u00e0 ph\u00e1t tri\u1ec3n.<\/span>\n<p><span style=\"font-weight: 400;\">Ng\u01b0\u1eddi ki\u1ec3m th\u1eed bi\u1ebft \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf b\u00ean trong c\u1ee7a ph\u1ea7n m\u1ec1m.<\/span><\/p>\n<\/td><td><span style=\"font-weight: 400;\">Th\u1ef1c hi\u1ec7n b\u1edfi ng\u01b0\u1eddi ki\u1ec3m th\u1eed.<\/span>\n<p><span style=\"font-weight: 400;\">Kh\u00f4ng bi\u1ebft \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf b\u00ean trong c\u1ee7a ph\u1ea7n m\u1ec1m.<\/span><\/p>\n<\/td><\/tr><tr><td><b>\u0110i\u1ec1u ki\u1ec7n th\u1ef1c hi\u1ec7n<\/b><\/td><td><span style=\"font-weight: 400;\">Ki\u1ec3m tra c\u00e1c ph\u1ea7n c\u1ee7a d\u1ef1 \u00e1n m\u00e0 kh\u00f4ng c\u1ea7n ch\u1edd c\u00e1c ph\u1ea7n kh\u00e1c ho\u00e0n th\u00e0nh.<\/span><\/td><td><span style=\"font-weight: 400;\">Ch\u1ec9 ki\u1ec3m tra sau khi ho\u00e0n th\u00e0nh t\u1ea5t c\u1ea3 ph\u1ea7n.<\/span><\/td><\/tr><tr><td><b>Chi ph\u00ed<\/b><\/td><td><span style=\"font-weight: 400;\">\u00cdt t\u1ed1n k\u00e9m h\u01a1n.<\/span><\/td><td><span style=\"font-weight: 400;\">T\u1ed1n k\u00e9m h\u01a1n.<\/span><\/td><\/tr><tr><td><b>Kh\u1ea3 n\u0103ng bao qu\u00e1t<\/b><\/td><td><span style=\"font-weight: 400;\">Ch\u1ec9 c\u00f3 nhi\u1ec7m v\u1ee5 quan s\u00e1t ch\u1ee9c n\u0103ng c\u1ee7a t\u1eebng \u0111\u01a1n v\u1ecb ri\u00eang l\u1ebb.&nbsp;<\/span><\/td><td><span style=\"font-weight: 400;\">Ph\u00e1t hi\u1ec7n l\u1ed7i di\u1ec5n ra khi c\u00e1c m\u00f4-\u0111un \u0111\u01b0\u1ee3c t\u00edch h\u1ee3p \u0111\u1ec3 t\u1ea1o th\u00e0nh m\u1ed9t h\u1ec7 th\u1ed1ng t\u1ed5ng th\u1ec3.<\/span><\/td><\/tr><tr><td><b>T\u00ednh \u0111\u1ed9c l\u1eadp<\/b><\/td><td><span style=\"font-weight: 400;\">Kh\u00f4ng \u0111\u1ea3m b\u1ea3o m\u00e3 c\u1ee7a b\u1ea1n ho\u1ea1t \u0111\u1ed9ng b\u00ecnh th\u01b0\u1eddng v\u1edbi c\u00e1c ph\u1ee5 thu\u1ed9c b\u00ean ngo\u00e0i.<\/span><\/td><td><span style=\"font-weight: 400;\">\u0110\u1ea3m b\u1ea3o m\u00e3 c\u1ee7a b\u1ea1n ho\u1ea1t \u0111\u1ed9ng b\u00ecnh th\u01b0\u1eddng v\u1edbi c\u00e1c ph\u1ee5 thu\u1ed9c b\u00ean ngo\u00e0i.<\/span><\/td><\/tr><tr><td><b>T\u1ed1c \u0111\u1ed9<\/b><\/td><td><span style=\"font-weight: 400;\">Th\u1ef1c hi\u1ec7n nhanh h\u01a1n so v\u1edbi th\u1eed nghi\u1ec7m t\u00edch h\u1ee3p.<\/span><\/td><td><span style=\"font-weight: 400;\">T\u1ed1c \u0111\u1ed9 ch\u1eadm v\u00ec t\u00edch h\u1ee3p nhi\u1ec1u m\u00f4-\u0111un.<\/span><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-cho-bi\u1ebft-cac-tinh-nang-chinh-c\u1ee7a-docker\"><b>Cho bi\u1ebft c\u00e1c t\u00ednh n\u0103ng ch\u00ednh c\u1ee7a Docker<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\"><strong>Docker<\/strong> l\u00e0 m\u1ed9t n\u1ec1n t\u1ea3ng m\u00e3 ngu\u1ed3n m\u1edf cung c\u1ea5p cho ng\u01b0\u1eddi d\u00f9ng nh\u1eefng c\u00f4ng c\u1ee5 \u0111\u1ec3 c\u00f3 th\u1ec3 \u0111\u00f3ng g\u00f3i, v\u1eadn chuy\u1ec3n v\u00e0 ch\u1ea1y c\u00e1c \u1ee9ng d\u1ee5ng tr\u00ean c\u00e1c n\u1ec1n t\u1ea3ng kh\u00e1c nhau. C\u00e1c t\u00ednh n\u0103ng ch\u00ednh c\u1ee7a Docker g\u1ed3m:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">\u201cContainer h\u00f3a \u1ee9ng d\u1ee5ng\u201d: Docker cho ph\u00e9p \u0111\u00f3ng g\u00f3i m\u1ed9t \u1ee9ng d\u1ee5ng c\u00f9ng v\u1edbi t\u1ea5t c\u1ea3 ph\u1ee5 thu\u1ed9c c\u1ee7a n\u00f3 v\u00e0o m\u1ed9t container, gi\u00fap \u1ee9ng d\u1ee5ng c\u00f3 th\u1ec3 ch\u1ea1y nh\u1ea5t qu\u00e1n tr\u00ean b\u1ea5t k\u1ef3 m\u00f4i tr\u01b0\u1eddng n\u00e0o (local, m\u00e1y ch\u1ee7 hay cloud).<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">T\u00ednh di \u0111\u1ed9ng cao: C\u00e1c container c\u1ee7a Docker c\u00f3 th\u1ec3 ch\u1ea1y tr\u00ean b\u1ea5t k\u1ef3 h\u1ec7 \u0111i\u1ec1u h\u00e0nh ho\u1eb7c m\u00e1y ch\u1ee7 n\u00e0o m\u00e0 h\u1ed7 tr\u1ee3 Docker, gi\u00fap gi\u1ea3m thi\u1ec3u s\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa c\u00e1c m\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n, ki\u1ec3m th\u1eed v\u00e0 s\u1ea3n xu\u1ea5t.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng v\u00e0 qu\u1ea3n l\u00fd: Docker h\u1ed7 tr\u1ee3 vi\u1ec7c m\u1edf r\u1ed9ng \u1ee9ng d\u1ee5ng b\u1eb1ng c\u00e1ch ch\u1ea1y nhi\u1ec1u container \u0111\u1ed3ng th\u1eddi. Docker Compose v\u00e0 Docker Swarm gi\u00fap d\u1ec5 d\u00e0ng qu\u1ea3n l\u00fd c\u00e1c container trong m\u1ed9t m\u00f4i tr\u01b0\u1eddng ph\u00e2n t\u00e1n.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Hi\u1ec7u su\u1ea5t cao v\u00e0 nh\u1eb9: V\u00ec c\u00e1c container chia s\u1ebb nh\u00e2n h\u1ec7 \u0111i\u1ec1u h\u00e0nh (OS) thay v\u00ec t\u1ea1o m\u1ed9t m\u00e1y \u1ea3o \u0111\u1ea7y \u0111\u1ee7, Docker ti\u00eau t\u1ed1n \u00edt t\u00e0i nguy\u00ean h\u01a1n v\u00e0 nhanh h\u01a1n so v\u1edbi c\u00e1c gi\u1ea3i ph\u00e1p m\u00e1y \u1ea3o truy\u1ec1n th\u1ed1ng.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">T\u00ednh nh\u1ea5t qu\u00e1n: Docker \u0111\u1ea3m b\u1ea3o r\u1eb1ng \u1ee9ng d\u1ee5ng s\u1ebd ch\u1ea1y gi\u1ed1ng nhau t\u1eeb m\u00f4i tr\u01b0\u1eddng n\u00e0y sang m\u00f4i tr\u01b0\u1eddng kh\u00e1c, gi\u1ea3m thi\u1ec3u v\u1ea5n \u0111\u1ec1 \u201cworks on my machine\u201d.<\/span><\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc th\u00eam: <a href=\"https:\/\/itviec.com\/blog\/docker-la-gi\/\" target=\"_blank\" rel=\"noopener\"><strong>Docker l\u00e0 g\u00ec? H\u00e3y \u0111\u1ec3 Senior DevOps Engineer tr\u1ea3 l\u1eddi cho b\u1ea1n!<\/strong><\/a><\/em><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cau-h\u1ecfi-ph\u1ecfng-v\u1ea5n-backend-v\u1ec1-ngon-ng\u1eef-l\u1eadp-trinh\"><span class=\"ez-toc-section\" id=\"Cau_hoi_phong_van_Backend_ve_ngon_ngu_lap_trinh\"><\/span><b>C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-gi\u1ea3i-thich-callback-promise-va-async-await-trong-javascript\"><b>Gi\u1ea3i th\u00edch callback, promise v\u00e0 async\/await trong JavaScript<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Callback l\u00e0 m\u1ed9t h\u00e0m \u0111\u01b0\u1ee3c truy\u1ec1n v\u00e0o m\u1ed9t h\u00e0m kh\u00e1c nh\u01b0 m\u1ed9t \u0111\u1ed1i s\u1ed1 v\u00e0 \u0111\u01b0\u1ee3c th\u1ef1c thi sau khi m\u1ed9t thao t\u00e1c n\u00e0o \u0111\u00f3 ho\u00e0n th\u00e0nh. \u0110\u00e2y l\u00e0 m\u1ed9t trong nh\u1eefng c\u00e1ch \u0111\u01a1n gi\u1ea3n nh\u1ea5t \u0111\u1ec3 x\u1eed l\u00fd c\u00e1c thao t\u00e1c b\u1ea5t \u0111\u1ed3ng b\u1ed9 trong JavaScript.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Promises cung c\u1ea5p c\u00e1ch x\u1eed l\u00fd c\u00e1c thao t\u00e1c b\u1ea5t \u0111\u1ed3ng b\u1ed9. M\u1ed9t promise \u0111\u1ea1i di\u1ec7n cho m\u1ed9t gi\u00e1 tr\u1ecb c\u00f3 th\u1ec3 c\u00f3 ngay b\u00e2y gi\u1edd, trong t\u01b0\u01a1ng lai ho\u1eb7c c\u00f3 th\u1ec3 kh\u00f4ng bao gi\u1edd c\u00f3. N\u00f3 c\u00f3 th\u1ec3 \u1edf m\u1ed9t trong ba tr\u1ea1ng th\u00e1i: \u0111ang ch\u1edd (pending), \u0111\u00e3 ho\u00e0n th\u00e0nh (fulfilled) ho\u1eb7c b\u1ecb t\u1eeb ch\u1ed1i (rejected).<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Async\/await l\u00e0 c\u00fa ph\u00e1p m\u1edbi \u0111\u01b0\u1ee3c gi\u1edbi thi\u1ec7u trong ES2017 (ES8), cho ph\u00e9p vi\u1ebft code b\u1ea5t \u0111\u1ed3ng b\u1ed9 m\u00e0 tr\u00f4ng gi\u1ed1ng nh\u01b0 code \u0111\u1ed3ng b\u1ed9. N\u00f3 \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng tr\u00ean promises, gi\u00fap code d\u1ec5 \u0111\u1ecdc v\u00e0 d\u1ec5 vi\u1ebft h\u01a1n.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-gi\u1ea3i-thich-s\u1ef1-khac-bi\u1ec7t-gi\u1eefa-va-is-trong-python\"><b>Gi\u1ea3i th\u00edch s\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa == v\u00e0 is trong Python<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\"><strong>is<\/strong>&nbsp;\u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 to\u00e1n t\u1eed danh t\u00ednh. Khi c\u00e1c bi\u1ebfn \u1edf c\u1ea3 hai b\u00ean c\u1ee7a to\u00e1n t\u1eed tr\u1ecf \u0111\u1ebfn c\u00f9ng m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng, th\u00ec to\u00e1n t\u1eed is s\u1ebd \u0111\u00e1nh gi\u00e1 l\u00e0 \u0111\u00fang. N\u1ebfu kh\u00f4ng, n\u00f3 s\u1ebd \u0111\u00e1nh gi\u00e1 l\u00e0 Sai.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Trong khi \u0111\u00f3, <strong>==<\/strong>&nbsp;\u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 to\u00e1n t\u1eed b\u1eb1ng. Khi c\u00e1c bi\u1ebfn \u1edf c\u1ea3 hai b\u00ean c\u00f3 c\u00f9ng gi\u00e1 tr\u1ecb ch\u00ednh x\u00e1c, to\u00e1n t\u1eed == s\u1ebd \u0111\u00e1nh gi\u00e1 l\u00e0 \u0111\u00fang. N\u1ebfu kh\u00f4ng, n\u00f3 s\u1ebd \u0111\u00e1nh gi\u00e1 l\u00e0 Sai.<\/span><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc th\u00eam: <a href=\"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-python\/\" target=\"_blank\" rel=\"noopener\"><strong>T\u1ed5ng h\u1ee3p 25+ c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Python v\u1ec1 thu\u1eadt to\u00e1n ph\u1ed5 bi\u1ebfn<\/strong><\/a><\/em><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-generics-la-gi-vai-tro-c\u1ee7a-generics-trong-java-ho\u1eb7c-c\"><b>Generics l\u00e0 g\u00ec? Vai tr\u00f2 c\u1ee7a generics trong Java ho\u1eb7c C#?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Generics l\u00e0 m\u1ed9t t\u00ednh n\u0103ng trong c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh nh\u01b0 Java v\u00e0 C#, cho ph\u00e9p \u0111\u1ecbnh ngh\u0129a c\u00e1c l\u1edbp, ph\u01b0\u01a1ng th\u1ee9c v\u00e0 giao di\u1ec7n m\u00e0 kh\u00f4ng c\u1ea7n x\u00e1c \u0111\u1ecbnh r\u00f5 ki\u1ec3u d\u1eef li\u1ec7u ngay t\u1eeb \u0111\u1ea7u. Thay v\u00e0o \u0111\u00f3, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c tham s\u1ed1 ki\u1ec3u (type parameters) \u0111\u1ec3 l\u00e0m \u0111\u1ea1i di\u1ec7n, v\u00e0 ch\u1ec9 \u0111\u1ecbnh ki\u1ec3u c\u1ee5 th\u1ec3 khi s\u1eed d\u1ee5ng.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Trong l\u1eadp tr\u00ecnh backend, generics gi\u00fap:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">An to\u00e0n ki\u1ec3u d\u1eef li\u1ec7u (Type Safety): \u0110\u1ea3m b\u1ea3o ch\u1ec9 s\u1eed d\u1ee5ng ki\u1ec3u d\u1eef li\u1ec7u \u0111\u00fang nh\u01b0 mong mu\u1ed1n.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">T\u0103ng t\u00ednh linh ho\u1ea1t v\u00e0 t\u00e1i s\u1eed d\u1ee5ng: C\u00f9ng m\u1ed9t \u0111o\u1ea1n code c\u00f3 th\u1ec3 d\u00f9ng cho nhi\u1ec1u ki\u1ec3u d\u1eef li\u1ec7u kh\u00e1c nhau.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Gi\u1ea3m nhu c\u1ea7u \u00e9p ki\u1ec3u (Casting): H\u1ea1n ch\u1ebf l\u1ed7i khi chuy\u1ec3n \u0111\u1ed5i ki\u1ec3u d\u1eef li\u1ec7u.<\/span><\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc th\u00eam: <a href=\"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-java\/\" target=\"_blank\" rel=\"noopener\"><strong>Top 40+ c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Java nh\u1ea5t \u0111\u1ecbnh c\u00f3 trong bu\u1ed5i ph\u1ecfng v\u1ea5n<\/strong><\/a><\/em><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-b\u1ea1n-hi\u1ec3u-gi-v\u1ec1-garbage-collection-trong-c-c\"><b>B\u1ea1n hi\u1ec3u g\u00ec v\u1ec1 Garbage Collection trong C\/C++?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Trong C\/C++, l\u1eadp tr\u00ecnh vi\u00ean ph\u1ea3i t\u1ef1 qu\u1ea3n l\u00fd vi\u1ec7c t\u1ea1o v\u00e0 h\u1ee7y c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng. Tuy nhi\u00ean, nhi\u1ec1u khi l\u1eadp tr\u00ecnh vi\u00ean qu\u00ean ho\u1eb7c b\u1ecf qua vi\u1ec7c h\u1ee7y nh\u1eefng \u0111\u1ed1i t\u01b0\u1ee3ng kh\u00f4ng c\u00f2n c\u1ea7n thi\u1ebft. \u0110i\u1ec1u n\u00e0y d\u1eabn \u0111\u1ebfn vi\u1ec7c b\u1ed9 nh\u1edb b\u1ecb \u0111\u1ea7y sau m\u1ed9t th\u1eddi gian, khi\u1ebfn ch\u01b0\u01a1ng tr\u00ecnh kh\u00f4ng th\u1ec3 t\u1ea1o th\u00eam \u0111\u1ed1i t\u01b0\u1ee3ng m\u1edbi v\u00e0 c\u00f3 th\u1ec3 k\u1ebft th\u00fac b\u1ea5t th\u01b0\u1eddng v\u1edbi l\u1ed7i OutOfMemoryError.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Ng\u01b0\u1ee3c l\u1ea1i, trong Java, l\u1eadp tr\u00ecnh vi\u00ean kh\u00f4ng c\u1ea7n lo l\u1eafng v\u1ec1 vi\u1ec7c gi\u1ea3i ph\u00f3ng c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng kh\u00f4ng s\u1eed d\u1ee5ng n\u1eefa. C\u00f4ng vi\u1ec7c n\u00e0y \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n b\u1edfi Tr\u00ecnh thu gom r\u00e1c (Garbage Collector). Nhi\u1ec7m v\u1ee5 ch\u00ednh c\u1ee7a Garbage Collector l\u00e0 gi\u1ea3i ph\u00f3ng b\u1ed9 nh\u1edb heap b\u1eb1ng c\u00e1ch lo\u1ea1i b\u1ecf c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng kh\u00f4ng c\u00f2n \u0111\u01b0\u1ee3c tham chi\u1ebfu. \u0110\u00e2y l\u00e0 m\u1ed9t v\u00ed d\u1ee5 \u0111i\u1ec3n h\u00ecnh v\u1ec1 lu\u1ed3ng Daemon, v\u00ec n\u00f3 lu\u00f4n ho\u1ea1t \u0111\u1ed9ng ng\u1ea7m trong n\u1ec1n, \u0111\u1ea3m b\u1ea3o ch\u01b0\u01a1ng tr\u00ecnh v\u1eadn h\u00e0nh m\u01b0\u1ee3t m\u00e0 v\u00e0 hi\u1ec7u qu\u1ea3.<\/span><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc th\u00eam: <a href=\"https:\/\/itviec.com\/blog\/nen-hoc-ngon-ngu-backend-nao\/\" target=\"_blank\" rel=\"noopener\"><strong>Ng\u00f4n ng\u1eef backend n\u00ean h\u1ecdc: Ng\u00f4n ng\u1eef n\u00e0o ph\u1ed5 bi\u1ebfn nh\u1ea5t?<\/strong><\/a><\/em><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cau-h\u1ecfi-ph\u1ecfng-v\u1ea5n-backend-v\u1ec1-h\u1ec7-th\u1ed1ng-phan-tan\"><span class=\"ez-toc-section\" id=\"Cau_hoi_phong_van_Backend_ve_he_thong_phan_tan\"><\/span><b>C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend v\u1ec1 h\u1ec7 th\u1ed1ng ph\u00e2n t\u00e1n<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-gi\u1ea3i-thich-v\u1ec1-cap-theorem-va-y-nghia-c\u1ee7a-no-trong-h\u1ec7-th\u1ed1ng-phan-tan\"><b>Gi\u1ea3i th\u00edch v\u1ec1 CAP Theorem v\u00e0 \u00fd ngh\u0129a c\u1ee7a n\u00f3 trong h\u1ec7 th\u1ed1ng ph\u00e2n t\u00e1n<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">\u0110\u1ecbnh l\u00fd CAP (CAP theorem) n\u00f3i r\u1eb1ng c\u01a1 s\u1edf d\u1eef li\u1ec7u ph\u00e2n t\u00e1n kh\u00f4ng th\u1ec3 \u0111\u1ed3ng th\u1eddi \u0111\u1ea3m b\u1ea3o c\u1ea3 ba y\u1ebfu t\u1ed1: Nh\u1ea5t qu\u00e1n, kh\u1ea3 d\u1ee5ng v\u00e0 ph\u00e2n v\u00f9ng. C\u1ee5 th\u1ec3:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">T\u00ednh nh\u1ea5t qu\u00e1n d\u1eef li\u1ec7u (Data Consistency): Ngh\u0129a l\u00e0 t\u1ea5t c\u1ea3 c\u00e1c n\u00fat trong h\u1ec7 th\u1ed1ng s\u1ebd nh\u00ecn th\u1ea5y c\u00f9ng m\u1ed9t gi\u00e1 tr\u1ecb d\u1eef li\u1ec7u t\u1ea1i m\u1ed9t th\u1eddi \u0111i\u1ec3m nh\u1ea5t \u0111\u1ecbnh. \u0110i\u1ec1u n\u00e0y r\u1ea5t quan tr\u1ecdng trong m\u00f4 h\u00ecnh ph\u00e2n t\u00e1n, v\u00ec d\u1eef li\u1ec7u c\u1ea7n \u0111\u01b0\u1ee3c sao ch\u00e9p g\u1ea7n nh\u01b0 ngay l\u1eadp t\u1ee9c gi\u1eefa c\u00e1c m\u00e1y ch\u1ee7 \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o t\u00ednh nh\u1ea5t qu\u00e1n.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Kh\u1ea3 d\u1ee5ng (Availability): Ngh\u0129a l\u00e0 m\u1ed7i y\u00eau c\u1ea7u g\u1eedi \u0111\u1ebfn h\u1ec7 th\u1ed1ng lu\u00f4n nh\u1eadn \u0111\u01b0\u1ee3c ph\u1ea3n h\u1ed3i h\u1ee3p l\u1ec7, d\u00f9 l\u00e0 th\u00e0nh c\u00f4ng hay l\u1ed7i.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Ch\u1ecbu l\u1ed7i ph\u00e2n v\u00f9ng (Partition Tolerance): H\u1ec7 th\u1ed1ng ph\u00e2n t\u00e1n v\u1eabn ho\u1ea1t \u0111\u1ed9ng v\u00e0 duy tr\u00ec d\u1eef li\u1ec7u m\u00e0 kh\u00f4ng b\u1ecb m\u1ea5t m\u00e1t, ngay c\u1ea3 khi c\u00f3 s\u1ef1 c\u1ed1 m\u1ea1ng c\u1ee5c b\u1ed9 l\u00e0m gi\u00e1n \u0111o\u1ea1n k\u1ebft n\u1ed1i gi\u1eefa c\u00e1c m\u00e1y ch\u1ee7.<\/span><\/li>\n<\/ul>\n\n\n\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">N\u1ebfu h\u1ec7 th\u1ed1ng \u0111\u1ea3m b\u1ea3o t\u00ednh nh\u1ea5t qu\u00e1n v\u00e0 kh\u1ea3 d\u1ee5ng cao, n\u00f3 s\u1ebd kh\u00f4ng th\u1ec3 ch\u1ecbu \u0111\u01b0\u1ee3c c\u00e1c s\u1ef1 c\u1ed1 ph\u00e2n v\u00f9ng m\u1ea1ng.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Ng\u01b0\u1ee3c l\u1ea1i, n\u1ebfu h\u1ec7 th\u1ed1ng \u0111\u1ea3m b\u1ea3o kh\u1ea3 d\u1ee5ng cao v\u00e0 ch\u1ecbu l\u1ed7i ph\u00e2n v\u00f9ng, n\u00f3 s\u1ebd kh\u00f4ng th\u1ec3 \u0111\u1ea3m b\u1ea3o t\u00ednh nh\u1ea5t qu\u00e1n d\u1eef li\u1ec7u ngay l\u1eadp t\u1ee9c.<\/span><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-s\u1ef1-khac-bi\u1ec7t-gi\u1eefa-rpc-api-va-rest-api-trong-cac-h\u1ec7-th\u1ed1ng-phan-tan-la-gi\"><b>S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa RPC API v\u00e0 REST API trong c\u00e1c h\u1ec7 th\u1ed1ng ph\u00e2n t\u00e1n l\u00e0 g\u00ec?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\"><strong>Remote Procedure Call<\/strong> (RPC) l\u00e0 m\u1ed9t ph\u01b0\u01a1ng ph\u00e1p x\u00e2y d\u1ef1ng \u1ee9ng d\u1ee5ng ph\u00e2n t\u00e1n theo m\u00f4 h\u00ecnh client-server, cho ph\u00e9p g\u1ecdi h\u00e0m t\u1eeb xa t\u01b0\u01a1ng t\u1ef1 nh\u01b0 g\u1ecdi h\u00e0m c\u1ee5c b\u1ed9. RPC kh\u00f4ng y\u00eau c\u1ea7u th\u1ee7 t\u1ee5c \u0111\u01b0\u1ee3c g\u1ecdi n\u1eb1m trong c\u00f9ng kh\u00f4ng gian \u0111\u1ecba ch\u1ec9 v\u1edbi th\u1ee7 t\u1ee5c th\u1ef1c thi v\u00e0 lu\u1ed3ng \u0111i\u1ec1u khi\u1ec3n lu\u00e2n phi\u00ean gi\u1eefa client v\u00e0 server thay v\u00ec th\u1ef1c thi \u0111\u1ed3ng th\u1eddi.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\"><strong>REST API<\/strong> (Representational State Transfer Application Programming Interface) l\u00e0 m\u1ed9t giao di\u1ec7n l\u1eadp tr\u00ecnh \u1ee9ng d\u1ee5ng cho ph\u00e9p c\u00e1c h\u1ec7 th\u1ed1ng ph\u1ea7n m\u1ec1m kh\u00e1c nhau giao ti\u1ebfp v\u1edbi nhau qua m\u1ea1ng, th\u01b0\u1eddng l\u00e0 Internet. N\u00f3 s\u1eed d\u1ee5ng c\u00e1c ph\u01b0\u01a1ng th\u1ee9c HTTP chu\u1ea9n (GET, POST, PUT, DELETE,&#8230;) \u0111\u1ec3 qu\u1ea3n l\u00fd d\u1eef li\u1ec7u gi\u1eefa m\u00e1y kh\u00e1ch v\u00e0 m\u00e1y ch\u1ee7.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa RPC API v\u00e0 REST API trong c\u00e1c h\u1ec7 th\u1ed1ng ph\u00e2n t\u00e1n:<\/span><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><b>RPC API<\/b><\/td><td><b>REST API<\/b><\/td><\/tr><tr><td><span style=\"font-weight: 400;\">G\u1ecdi h\u00e0m t\u1eeb xa<\/span><\/td><td><span style=\"font-weight: 400;\">T\u01b0\u01a1ng t\u00e1c v\u1edbi t\u00e0i nguy\u00ean qua HTTP<\/span><\/td><\/tr><tr><td><span style=\"font-weight: 400;\">Ch\u1ec9 h\u1ed7 tr\u1ee3 c\u00e1c y\u00eau c\u1ea7u GET v\u00e0 POST (\u0111i\u1ec1u n\u00e0y kh\u00f4ng c\u1ed1 \u0111\u1ecbnh)<\/span><\/td><td><span style=\"font-weight: 400;\">H\u1ed7 tr\u1ee3 c\u00e1c ph\u01b0\u01a1ng th\u1ee9c HTTP GET, POST, PUT, PATCH v\u00e0 DELETE<\/span><\/td><\/tr><tr><td><span style=\"font-weight: 400;\">Kh\u00f4ng c\u00f3 t\u00ednh linh ho\u1ea1t \u0111\u1ed1i v\u1edbi ki\u1ebfn tr\u00fac ph\u1ea7n c\u1ee9ng<\/span><\/td><td><span style=\"font-weight: 400;\">Cung c\u1ea5p t\u00ednh linh ho\u1ea1t cho ki\u1ebfn tr\u00fac ph\u1ea7n c\u1ee9ng<\/span><\/td><\/tr><tr><td><span style=\"font-weight: 400;\">Y\u00eau c\u1ea7u t\u1ea3i tr\u1ecdng c\u1ee7a m\u1ed9t v\u00e0i ki\u1ec3u d\u1eef li\u1ec7u nh\u01b0 XML cho XML-RPC<\/span><\/td><td><span style=\"font-weight: 400;\">Cho ph\u00e9p ch\u1ec9 \u0111\u1ecbnh c\u00e1c ti\u00eau \u0111\u1ec1 Content-type ho\u1eb7c Accept<\/span><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-microservice-la-gi-khi-phan-tach-m\u1ed9t-kh\u1ed1i-d\u01a1n-thanh-cac-microservice-c\u1ea7n-l\u01b0u-y-gi-khong\"><b>Microservice l\u00e0 g\u00ec? Khi ph\u00e2n t\u00e1ch m\u1ed9t kh\u1ed1i \u0111\u01a1n th\u00e0nh c\u00e1c microservice c\u1ea7n l\u01b0u \u00fd g\u00ec kh\u00f4ng?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Microservices l\u00e0 m\u1ed9t phong c\u00e1ch ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m cho ph\u00e9p b\u1ea1n c\u1ea5u tr\u00fac \u1ee9ng d\u1ee5ng backend th\u00e0nh m\u1ed9t t\u1eadp h\u1ee3p c\u00e1c d\u1ecbch v\u1ee5 \u0111\u1ed9c l\u1eadp, m\u1ed7i d\u1ecbch v\u1ee5 ph\u1ee5c v\u1ee5 m\u1ed9t nhu c\u1ea7u kinh doanh c\u1ee5 th\u1ec3.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">N\u1ebfu mu\u1ed1n chuy\u1ec3n \u0111\u1ed5i t\u1eeb m\u1ed9t h\u1ec7 th\u1ed1ng nguy\u00ean kh\u1ed1i (monolith) sang h\u1ec7 th\u1ed1ng microservices, c\u1ea7n l\u01b0u \u00fd nh\u1eefng \u0111i\u1ec3m sau:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">X\u00e1c \u0111\u1ecbnh ranh gi\u1edbi logic c\u1ee7a h\u1ec7 th\u1ed1ng nguy\u00ean kh\u1ed1i: Ph\u00e2n t\u00edch logic b\u00ean trong h\u1ec7 th\u1ed1ng \u0111\u1ec3 nh\u1eadn di\u1ec7n c\u00e1c tr\u00e1ch nhi\u1ec7m v\u00e0 lo\u1ea1i t\u00e0i nguy\u00ean kh\u00e1c nhau. T\u00ecm ranh gi\u1edbi gi\u1eefa ch\u00fang \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh n\u01a1i m\u1ed9t d\u1ecbch v\u1ee5 k\u1ebft th\u00fac v\u00e0 d\u1ecbch v\u1ee5 kh\u00e1c b\u1eaft \u0111\u1ea7u.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">\u0110\u1ecbnh ngh\u0129a c\u00e1c d\u1ecbch v\u1ee5: D\u1ef1a tr\u00ean ranh gi\u1edbi \u0111\u00e3 x\u00e1c \u0111\u1ecbnh, chia nh\u1ecf nhu c\u1ea7u d\u1eef li\u1ec7u c\u1ee7a h\u1ec7 th\u1ed1ng. C\u00f3 th\u1ec3 ph\u00e2n t\u00e1ch th\u00e0nh nhi\u1ec1u b\u1ea3ng d\u1eef li\u1ec7u ho\u1eb7c th\u1eadm ch\u00ed c\u00e1c c\u01a1 s\u1edf d\u1eef li\u1ec7u \u0111\u1ed9c l\u1eadp n\u1ebfu ph\u00f9 h\u1ee3p.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Ti\u1ebfn h\u00e0nh t\u00e1i c\u1ea5u tr\u00fac t\u1eebng b\u01b0\u1edbc: D\u1ea7n d\u1ea7n t\u00e1ch logic c\u1ee7a t\u1eebng microservice kh\u1ecfi h\u1ec7 th\u1ed1ng nguy\u00ean kh\u1ed1i v\u00e0 chuy\u1ec3n th\u00e0nh c\u00e1c d\u1ef1 \u00e1n ri\u00eang bi\u1ec7t.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">K\u1ebft qu\u1ea3 cu\u1ed1i c\u00f9ng: Khi ho\u00e0n t\u1ea5t, h\u1ec7 th\u1ed1ng nguy\u00ean kh\u1ed1i ban \u0111\u1ea7u s\u1ebd kh\u00f4ng c\u00f2n c\u1ea7n thi\u1ebft v\u00e0 c\u00e1c microservices s\u1ebd c\u00f3 quy tr\u00ecnh tri\u1ec3n khai \u0111\u1ed9c l\u1eadp c\u00f9ng kho code ngu\u1ed3n ri\u00eang bi\u1ec7t.<\/span><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-h\u1ec7-th\u1ed1ng-hang-d\u1ee3i-thong-di\u1ec7p-message-queues-la-gi\"><b>H\u1ec7 th\u1ed1ng h\u00e0ng \u0111\u1ee3i th\u00f4ng \u0111i\u1ec7p (Message Queues) l\u00e0 g\u00ec?<\/b><i><\/i><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">H\u1ec7 th\u1ed1ng h\u00e0ng \u0111\u1ee3i th\u00f4ng \u0111i\u1ec7p (Message Queues) l\u00e0 m\u1ed9t c\u00f4ng ngh\u1ec7 cho ph\u00e9p c\u00e1c \u1ee9ng d\u1ee5ng ho\u1eb7c d\u1ecbch v\u1ee5 giao ti\u1ebfp v\u1edbi nhau th\u00f4ng qua vi\u1ec7c g\u1eedi v\u00e0 nh\u1eadn th\u00f4ng \u0111i\u1ec7p (messages) th\u00f4ng qua c\u00e1c h\u00e0ng \u0111\u1ee3i (queues).<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">\u0110\u00e2y l\u00e0 m\u1ed9t m\u00f4 h\u00ecnh \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng ph\u1ed5 bi\u1ebfn trong c\u00e1c h\u1ec7 th\u1ed1ng ph\u00e2n t\u00e1n \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o t\u00ednh asynchronous (b\u1ea5t \u0111\u1ed3ng b\u1ed9), gi\u00fap c\u00e1c \u1ee9ng d\u1ee5ng c\u00f3 th\u1ec3 giao ti\u1ebfp m\u00e0 kh\u00f4ng c\u1ea7n ph\u1ea3i \u0111\u1ed3ng th\u1eddi th\u1ef1c thi c\u00f9ng l\u00fac.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-t\u1ed5ng-k\u1ebft-cau-h\u1ecfi-ph\u1ecfng-v\u1ea5n-backend\"><span class=\"ez-toc-section\" id=\"Tong_ket_cau_hoi_phong_van_Backend\"><\/span><b>T\u1ed5ng k\u1ebft c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400;\">B\u1ea1n tr\u1ea3 l\u1eddi \u0111\u01b0\u1ee3c bao nhi\u00eau c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend trong s\u1ed1 h\u01a1n 30 c\u00e2u n\u00eau tr\u00ean? \u0110\u1eebng qu\u00ean ngo\u00e0i vi\u1ec7c c\u1ee7ng c\u1ed1 ki\u1ebfn th\u1ee9c, h\u00e3y ch\u00fa \u00fd trau d\u1ed3i th\u00eam kh\u1ea3 n\u0103ng th\u1ef1c h\u00e0nh l\u1eadp tr\u00ecnh n\u1eefa nh\u00e9. Ch\u00fac b\u1ea1n v\u01b0\u1ee3t qua \u0111\u01b0\u1ee3c b\u00e0i ph\u1ecfng v\u1ea5n Backend Developer v\u00e0 s\u1edbm \u0111\u01b0\u1ee3c l\u00e0m vi\u1ec7c trong m\u00f4i tr\u01b0\u1eddng m\u01a1 \u01b0\u1edbc nh\u00e9.<\/span><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>Tham kh\u1ea3o <strong><a href=\"https:\/\/itviec.com\/it-jobs\/backend?utm_medium=anchor_text_low&amp;utm_source=blog&amp;utm_campaign=viec_lam_backend&amp;utm_content=cau_hoi_phong_van_backend\" target=\"_blank\" rel=\"noreferrer noopener\">vi\u1ec7c l\u00e0m Backend<\/a><\/strong> m\u1edbi nh\u1ea5t tr\u00ean to\u00e0n qu\u1ed1c!<\/em><\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>B\u1ea1n \u0111\u00e3 s\u1eb5n s\u00e0ng cho bu\u1ed5i ph\u1ecfng v\u1ea5n v\u1ecb tr\u00ed l\u1eadp tr\u00ecnh vi\u00ean Backend (Backend Developer) s\u1eafp t\u1edbi? T\u01b0\u1edfng t\u01b0\u1ee3ng ng\u1ed3i tr\u01b0\u1edbc m\u1eb7t b\u1ea1n hi\u1ec7n t\u1ea1i l\u00e0 Ban tuy\u1ec3n d\u1ee5ng. H\u00e3y tr\u1ea3 l\u1eddi c\u00e1c c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend c\u00f3 trong b\u00e0i vi\u1ebft n\u00e0y tr\u01b0\u1edbc khi nh\u00ecn \u0111\u00e1p \u00e1n, \u0111\u1ec3 ki\u1ec3m tra ki\u1ebfn th\u1ee9c c\u1ee7a [&hellip;]<\/p>\n","protected":false},"author":213,"featured_media":83054,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","footnotes":""},"categories":[109,105],"tags":[],"class_list":["post-82577","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chuyen-mon-it","category-phong-van-it"],"blocksy_meta":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.8 (Yoast SEO v27.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Top 30+ c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend th\u01b0\u1eddng g\u1eb7p - ITviec Blog<\/title>\n<meta name=\"description\" content=\"T\u1ed5ng h\u1ee3p 30+ c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend thu\u1ed9c ch\u1ee7 \u0111\u1ec1 c\u01a1 s\u1edf d\u1eef li\u1ec7u, hi\u1ec7u su\u1ea5t, b\u1ea3o m\u1eadt, c\u00e1c k\u1ef9 thu\u1eadt, c\u00f4ng c\u1ee5, ng\u00f4n ng\u1eef v\u00e0 h\u1ec7 th\u1ed1ng ph\u00e2n t\u00e1n.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Top 30+ c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend th\u01b0\u1eddng g\u1eb7p\" \/>\n<meta property=\"og:description\" content=\"B\u1ea1n \u0111\u00e3 s\u1eb5n s\u00e0ng cho bu\u1ed5i ph\u1ecfng v\u1ea5n v\u1ecb tr\u00ed l\u1eadp tr\u00ecnh vi\u00ean Backend (Backend Developer) s\u1eafp t\u1edbi? T\u01b0\u1edfng t\u01b0\u1ee3ng ng\u1ed3i tr\u01b0\u1edbc m\u1eb7t b\u1ea1n hi\u1ec7n t\u1ea1i l\u00e0 Ban tuy\u1ec3n d\u1ee5ng.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/\" \/>\n<meta property=\"og:site_name\" content=\"ITviec Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ITviec\" \/>\n<meta property=\"article:published_time\" content=\"2024-12-19T02:33:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-27T17:22:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/12\/cau-hoi-phong-van-Backend-vippro.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"790\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Linh Trao\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ITviec\" \/>\n<meta name=\"twitter:site\" content=\"@ITviec\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"Linh Trao\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"46 ph\u00fat\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Top 30+ c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend th\u01b0\u1eddng g\u1eb7p - ITviec Blog","description":"T\u1ed5ng h\u1ee3p 30+ c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend thu\u1ed9c ch\u1ee7 \u0111\u1ec1 c\u01a1 s\u1edf d\u1eef li\u1ec7u, hi\u1ec7u su\u1ea5t, b\u1ea3o m\u1eadt, c\u00e1c k\u1ef9 thu\u1eadt, c\u00f4ng c\u1ee5, ng\u00f4n ng\u1eef v\u00e0 h\u1ec7 th\u1ed1ng ph\u00e2n t\u00e1n.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/","og_locale":"vi_VN","og_type":"article","og_title":"Top 30+ c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend th\u01b0\u1eddng g\u1eb7p","og_description":"B\u1ea1n \u0111\u00e3 s\u1eb5n s\u00e0ng cho bu\u1ed5i ph\u1ecfng v\u1ea5n v\u1ecb tr\u00ed l\u1eadp tr\u00ecnh vi\u00ean Backend (Backend Developer) s\u1eafp t\u1edbi? T\u01b0\u1edfng t\u01b0\u1ee3ng ng\u1ed3i tr\u01b0\u1edbc m\u1eb7t b\u1ea1n hi\u1ec7n t\u1ea1i l\u00e0 Ban tuy\u1ec3n d\u1ee5ng.","og_url":"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/","og_site_name":"ITviec Blog","article_publisher":"https:\/\/www.facebook.com\/ITviec","article_published_time":"2024-12-19T02:33:59+00:00","article_modified_time":"2025-09-27T17:22:01+00:00","og_image":[{"width":1500,"height":790,"url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/12\/cau-hoi-phong-van-Backend-vippro.jpg","type":"image\/jpeg"}],"author":"Linh Trao","twitter_card":"summary_large_image","twitter_creator":"@ITviec","twitter_site":"@ITviec","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"Linh Trao","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"46 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#article","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/"},"author":{"name":"Linh Trao","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/6d1bcbfa05475cbc5a2eaf0727501a16"},"headline":"Top 30+ c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend th\u01b0\u1eddng g\u1eb7p","datePublished":"2024-12-19T02:33:59+00:00","dateModified":"2025-09-27T17:22:01+00:00","mainEntityOfPage":{"@id":"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/"},"wordCount":13143,"publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"image":{"@id":"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/12\/cau-hoi-phong-van-Backend-vippro.jpg","articleSection":["Chuy\u00ean m\u00f4n IT","Ph\u1ecfng v\u1ea5n IT"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/","url":"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/","name":"Top 30+ c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend th\u01b0\u1eddng g\u1eb7p - ITviec Blog","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#primaryimage"},"image":{"@id":"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/12\/cau-hoi-phong-van-Backend-vippro.jpg","datePublished":"2024-12-19T02:33:59+00:00","dateModified":"2025-09-27T17:22:01+00:00","description":"T\u1ed5ng h\u1ee3p 30+ c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend thu\u1ed9c ch\u1ee7 \u0111\u1ec1 c\u01a1 s\u1edf d\u1eef li\u1ec7u, hi\u1ec7u su\u1ea5t, b\u1ea3o m\u1eadt, c\u00e1c k\u1ef9 thu\u1eadt, c\u00f4ng c\u1ee5, ng\u00f4n ng\u1eef v\u00e0 h\u1ec7 th\u1ed1ng ph\u00e2n t\u00e1n.","breadcrumb":{"@id":"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#primaryimage","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/12\/cau-hoi-phong-van-Backend-vippro.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/12\/cau-hoi-phong-van-Backend-vippro.jpg","width":1500,"height":790,"caption":"ca\u0302u ho\u0309i pho\u0309ng va\u0302\u0301n Backend - itviec blog"},{"@type":"BreadcrumbList","@id":"https:\/\/itviec.com\/blog\/cau-hoi-phong-van-backend\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Chuy\u00ean m\u00f4n IT","item":"https:\/\/itviec.com\/blog\/chuyen-mon-it\/"},{"@type":"ListItem","position":2,"name":"Top 30+ c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n Backend th\u01b0\u1eddng g\u1eb7p"}]},{"@type":"WebSite","@id":"https:\/\/itviec.com\/blog\/#website","url":"https:\/\/itviec.com\/blog\/","name":"ITviec Blog","description":"IT Jobs &amp; People in Vietnam","publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/itviec.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/itviec.com\/blog\/#organization","name":"ITviec","url":"https:\/\/itviec.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","width":1800,"height":1800,"caption":"ITviec"},"image":{"@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ITviec","https:\/\/x.com\/ITviec","https:\/\/www.linkedin.com\/company\/itviec","https:\/\/www.youtube.com\/channel\/UCYthAQ3bcGr57M_ag5gHDvQ"]},{"@type":"Person","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/6d1bcbfa05475cbc5a2eaf0727501a16","name":"Linh Trao","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/trao-thi-tung-linh-author-e1709892478113-100x100.jpg","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/trao-thi-tung-linh-author-e1709892478113-100x100.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/trao-thi-tung-linh-author-e1709892478113-100x100.jpg","caption":"Linh Trao"},"url":"https:\/\/itviec.com\/blog\/author\/linh-trao\/"}]}},"_links":{"self":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/82577","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/users\/213"}],"replies":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/comments?post=82577"}],"version-history":[{"count":1,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/82577\/revisions"}],"predecessor-version":[{"id":91732,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/82577\/revisions\/91732"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media\/83054"}],"wp:attachment":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media?parent=82577"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/categories?post=82577"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/tags?post=82577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}