T\u1eebng \u1ee9ng d\u1ee5ng c\u1ea7n ph\u1ea3i \u0111\u1ecbnh ngh\u0129a h\u1ec7 th\u1ed1ng c\u1ea5p b\u1eadc cache c\u1ee7a n\u00f3 \u0111\u1ec3 t\u1ed1i \u01b0u h\u00f3a hi\u1ec7u su\u1ea5t, t\u1ed1c \u0111\u1ed9.<\/li><\/ul>\n\n\nT\u1ea5t c\u1ea3 c\u00e1c y\u00eau c\u1ea7u HTTP m\u00e0 tr\u00ecnh duy\u1ec7t th\u1ef1c hi\u1ec7n tr\u01b0\u1edbc ti\u00ean \u0111\u01b0\u1ee3c g\u1eedi \u0111\u1ebfn cho b\u1ed9 nh\u1edb \u0111\u1ec7m tr\u00ecnh duy\u1ec7t \u0111\u1ec3 ki\u1ec3m tra xem li\u1ec7u r\u1eb1ng c\u00f3 m\u1ed9t ph\u1ea3n h\u1ed3i n\u00e0o \u0111\u00e3 \u0111\u01b0\u1ee3c cache (m\u00e0 v\u1eabn h\u1ee3p l\u1ec7 \/ valid) \u0111\u1ec3 c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng cho vi\u1ec7c ho\u00e0n th\u00e0nh y\u00eau c\u1ea7u hay kh\u00f4ng. Ph\u1ea3n h\u1ed3i \u0111\u1ecdc t\u1eeb cache lo\u1ea1i b\u1ecf c\u1ea3 \u0111\u1ed9 tr\u1ec5 m\u1ea1ng v\u00e0 chi ph\u00ed d\u1eef li\u1ec7u m\u00e0 vi\u1ec7c t\u1ea3i qua m\u1ea1ng s\u1ebd ph\u00e1t sinh.<\/p>\n\n\n
Tuy nhi\u00ean, n\u1ebfu b\u1ea1n mu\u1ed1n c\u1eadp nh\u1eadt ho\u1eb7c l\u00e0m m\u1ea5t hi\u1ec7u l\u1ef1c c\u1ee7a ph\u1ea3n h\u1ed3i \u0111\u00e3 \u0111\u01b0\u1ee3c cache th\u00ec ph\u1ea3i l\u00e0m th\u1ebf n\u00e0o?<\/strong> L\u1ea5y v\u00ed d\u1ee5, gi\u1ea3 s\u1eed b\u1ea1n n\u00f3i v\u1edbi tr\u00ecnh duy\u1ec7t c\u1ee7a ng\u01b0\u1eddi d\u00f9ng cache file stylesheet CSS trong v\u00f2ng 24 gi\u1eddi (max-age=86400), nh\u01b0ng b\u00ean thi\u1ebft k\u1ebf c\u1ee7a b\u1ea1n v\u1eeba m\u1edbi \u0111\u01b0a ra m\u1ed9t b\u1ea3n c\u1eadp nh\u1eadt m\u00e0 b\u1ea1n mu\u1ed1n n\u00f3 kh\u1ea3 d\u1ee5ng cho t\u1ea5t c\u1ea3 ng\u01b0\u1eddi d\u00f9ng. L\u00e0m th\u1ebf n\u00e0o b\u1ea1n th\u00f4ng b\u00e1o cho t\u1ea5t c\u1ea3 ng\u01b0\u1eddi d\u00f9ng, nh\u1eefng ng\u01b0\u1eddi hi\u1ec7n \u0111ang c\u00f3 b\u1ea3n sao ch\u00e9p cache “c\u0169” c\u1ee7a CSS \u0111\u1ec3 c\u1eadp nh\u1eadt cache c\u1ee7a h\u1ecd? B\u1ea1n kh\u00f4ng th\u1ec3, \u00edt nh\u1ea5t l\u00e0 khi kh\u00f4ng thay \u0111\u1ed5i URL c\u1ee7a t\u00e0i nguy\u00ean.<\/p>\n\n\nSau khi tr\u00ecnh duy\u1ec7t cache ph\u1ea3n h\u1ed3i, phi\u00ean b\u1ea3n c\u1ee7a cache \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng cho \u0111\u1ebfn khi n\u00f3 kh\u00f4ng c\u00f2n t\u01b0\u01a1i m\u1edbi n\u1eefa, c\u00e1i \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh b\u1eb1ng th\u00f4ng s\u1ed1 max-age ho\u1eb7c expires, ho\u1eb7c cho \u0111\u1ebfn khi n\u00f3 b\u1ecb lo\u1ea1i b\u1ecf kh\u1ecfi cache v\u00ec m\u1ed9t l\u00fd do n\u00e0o \u0111\u00f3-ch\u1eb3ng h\u1ea1n, ng\u01b0\u1eddi d\u00f9ng x\u00f3a b\u1ed9 nh\u1edb \u0111\u1ec7m cache c\u1ee7a tr\u00ecnh duy\u1ec7t. H\u1ec7 qu\u1ea3 l\u00e0, ng\u01b0\u1eddi d\u00f9ng kh\u00e1c nhau, cu\u1ed1i c\u00f9ng c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c phi\u00ean b\u1ea3n kh\u00e1c nhau c\u1ee7a c\u00f9ng m\u1ed9t file khi trang \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng: nh\u1eefng ng\u01b0\u1eddi d\u00f9ng v\u1eeba m\u1edbi t\u00ecm n\u1ea1p t\u00e0i nguy\u00ean s\u1eed d\u1ee5ng phi\u00ean b\u1ea3n m\u1edbi, trong khi ng\u01b0\u1eddi d\u00f9ng cache b\u1ea3n sao t\u1eeb tr\u01b0\u1edbc (nh\u01b0ng v\u1eabn h\u1ee3p l\u1ec7, \u00fd l\u00e0 ch\u01b0a h\u1ebft h\u1ea1n “max-age”) s\u1eed d\u1ee5ng m\u1ed9t phi\u00ean b\u1ea3n c\u0169 h\u01a1n c\u1ee7a ph\u1ea3n h\u1ed3i.<\/p>\n\n\n
L\u00e0m th\u1ebf n\u00e0o b\u1ea1n ho\u00e0n th\u00e0nh \u0111\u01b0\u1ee3c c\u1ea3 hai m\u1ee5c ti\u00eau: cache ph\u00eda m\u00e1y kh\u00e1ch (client-side) v\u00e0 c\u1eadp nh\u1eadt nhanh ch\u00f3ng?<\/strong> B\u1ea1n thay \u0111\u1ed5i URL c\u1ee7a t\u00e0i nguy\u00ean v\u00e0 \u00e9p ng\u01b0\u1eddi d\u00f9ng t\u1ea3i ph\u1ea3n h\u1ed3i m\u1edbi b\u1ea5t c\u1ee9 khi n\u00e0o n\u1ed9i dung c\u1ee7a n\u00f3 thay \u0111\u1ed5i. Th\u01b0\u1eddng th\u00ec b\u1ea1n l\u00e0m \u0111i\u1ec1u \u0111\u00f3 b\u1eb1ng c\u00e1ch nh\u00fang m\u1ed9t fingerprint v\u00e0o file, ho\u1eb7c m\u1ed9t con s\u1ed1 ch\u1ec9 phi\u00ean b\u1ea3n (vesion number), trong filename c\u1ee7a n\u00f3-l\u1ea5y v\u00ed d\u1ee5, style.x234dff<\/strong>.css.<\/p>\n\n\n