C�c v?n ?? c? b?n v? B? ??m Web (Web Caching)

 H?u h?t nh?ng ng??i duy?t Web hi?n nay ??u ?ang s? d?ng c� ch? � ho?c v� th?c c�c b? ??m Web.  C�c b? ??m Web n�y gi�p gi?m ?? tr? trao ??i th�ng tin gi?a m�y kh�ch v� m�y ch? Web, gi?m t?i cho h? th?ng m�y ch? v� gi?m l?u l??ng th�ng tin tr�n m?ng. 


C�c h??ng d?n d??i ?�y v? b? ??m Web ???c l??c d?ch t? t�i li?u ?Caching Tutorial? c?a t�c gi? Mark Nottingham t?i ??a ch? www.mnot.net/cache_docs/. T�i li?u n�y kh�ng nh?m ??a ra ch? d?n s? d?ng b? ??m cho ng??i d�ng cu?i m� cung c?p th�ng tin s�u v? ho?t ??ng c?a b? ??m Web v� ph??ng th?c m� c�c nh� thi?t k? v� qu?n tr? Web c� th? �p d?ng ?? t?n d?ng t?i ?a nh?ng ?u ?i?m c?a h? th?ng n�y.






B? ??m Web l� g�?
B? ??m Web (Web cache) n?m ? v? tr� gi?a c�c m�y ch? Web v� m�y kh�ch, c� nhi?m v? theo d�i c�c lu?ng th�ng tin ?i v�o v� l?u tr? l?i m?t b?n sao c?a c�c d? li?u ?�. C�c d? li?u ? ?�y c� th? l� trang HTML, c�c b?c ?nh ho?c t?p tin,... Sau ?�, khi c� y�u c?u t?i c�ng ??a ch? URL, b? ??m Web s? g?i l?i c�c d? li?u m� n� ?� l?u thay v� g?i y�u c?u t?i m�y ch? Web m?t l?n n?a.




C� 2 l� do ch�nh ?? s? d?ng b? ??m Web:
Gi?m ?? tr?: do c�c y�u c?u c� th? ???c ?�p ?ng ngay t? b? ??m thay v� ???c g?i t?i m�y ch?, th?i gian ?? l?y v� hi?n th? c�c n?i dung th�ng tin s? ???c r�t ng?n ?�ng k?, t? ?� s? l�m cho Web c� kh? n?ng ?�p ?ng nhanh h?n.




Gi?m l?u l??ng m?ng: do c�c th�ng tin ???c s? d?ng l?i, l??ng b?ng th�ng m�y kh�ch s? d?ng s? gi?m ?i. ?i?u n�y s? gi�p kh�ch h�ng ti?t ki?m chi ph� khi s? d?ng c�ch t�nh c??c theo l?u l??ng, ??ng th?i c?ng gi�p gi?m ?�i h?i v? m?c b?ng th�ng.




C�c lo?i b? ??m Web




B? ??m tr�nh duy?t




N?u b?n ?� t?ng xem x�t h?p tho?i tu? bi?n c?a b?t k? tr�nh duy?t Web hi?n ??i n�o (nh? Internet Explorer, Safari, hay Mozilla) b?n s? th?y c� thi?t ??t v? b? ??m. Thi?t l?p n�y cho ph�p b?n d�nh ri�ng m?t ph?n c?a ? c?ng m�y t�nh ?? l?u tr? c�c th�ng tin m� b?n ?� xem. B? ??m tr�nh duy?t ho?t ??ng theo m?t nguy�n t?c kh� ??n gi?n: n� s? th?c hi?n c�c c�ng vi?c ki?m tra nh?m ??m b?o c�c th�ng tin lu�n m?i.




B? ??m n�y ??c bi?t h?u �ch khi ng??i d�ng ?n ph�m quay lui (back) ho?c nh?n v�o m?t li�n k?t t?i trang m� h? v?a xem. C?ng t??ng t? nh? v?y, khi b?n s? d?ng c�c b?c ?nh c� ch?c n?ng ?i?u h??ng tr�n trang, ch�ng s? ???c cung c?p t? b? ??m tr�nh duy?t g?n nh? t?c th?i.




B? ??m proxy




B? ??m Web proxy c?ng ho?t ??ng v?i nguy�n t?c t??ng t?, nh?ng ? quy m� l?n h?n. M?i proxy ph?c v? h�ng tr?m t?i h�ng ngh�n ng??i d�ng theo c�ng c�ch nh? v?y. C�c c�ng ty l?n ho?c c�c ISP th??ng thi?t l?p proxy trong c�c thi?t b? t??ng l?a ho?c nh? m?t thi?t b? ??c l?p.




Do b? ??m proxy kh�ng ph?i l� th�nh ph?n c?a m�y kh�ch c?ng nh? m�y ch?, c�c th�ng tin ???c y�u c?u c?n ???c ??nh tuy?n qua ?�. M?t trong c�c c�ch ?? th?c hi?n ?i?u ?� l� s? d?ng thi?t l?p v? proxy c?a tr�nh duy?t ?? c?u h�nh th? c�ng proxy n�o s? ???c s? d?ng. M?t c�ch kh�c l� s? d?ng proxy lo?i ch?n (interception proxy). Interception proxy ???c c�c l?p m?ng d??i t? ??ng t�i ??nh h??ng c�c y�u c?u web t?i m� kh�ng c?n can thi?p t? ph�a m�y kh�ch.




B? ??m proxy l� d?ng b? ??m d�ng chung, trong ?� kh�ng ch? c� m?t ng??i s? d?ng m� th??ng c� s? l??ng l?n ng??i d�ng. Trong m�i tr??ng ?�, do c�c n?i dung ???c nhi?u ng??i quan t�m ???c s? d?ng l?i r?t nhi?u l?n, th?i gian tr? v� l?u l??ng m?ng gi?m ?i ?�ng k?.




B? ??m gateway




B? ??m gateway c?ng ho?t ??ng ? l?p trung gian, nh?ng thay v� ???c tri?n khai b?i c�c nh� qu?n tr? m?ng nh?m gi?m b?ng th�ng, ch�ng th??ng ???c tri?n khai b?i nh?ng ng??i qu?n l� Website v?i m?c ?�ch t?ng t�nh kh? m?, t�nh tin c?y v� hi?u n?ng c?a Website.




C�c y�u c?u th�ng tin Web c� th? ???c ??nh h??ng t?i b? ??m gateway theo m?t s? c�ch, nh?ng th??ng th� c�c thi?t b? c�n b?ng t?i ???c s? d?ng nh?m gi�p c�c m�y kh�ch t??ng t�c v?i c�c gateway gi?ng nh? v?i c�c m�y ch?.




C�c m?ng ph�n ph?i n?i dung (Content delivery networks ? CDNs) ph�n ph?i c�c n?i dung tr�n to�n Internet ?� ???c l?u ??m t?i gateway v� b�n l?i n?i d?ng ??m ?� cho c�c Website mu?n s? d?ng. Speedera (www.speedera.com) v� Akamai (www.akamai.com) l� c�c v� d? v? m?ng ph�n ph?i n?i dung.




B�i vi?t n�y t?p trung ch? y?u v�o b? ??m tr�nh duy?t v� b? ??m proxy, d� v?y, m?t s? ph?n n?i dung v?n th�ch h?p v?i ai quan t�m t?i b? ??m ph�a gateway.




B? ??m Web c� t?t cho website kh�ng?




B? ??m Web l� m?t trong nh?ng c�ng ngh? g�y ra nhi?u hi?u nh?m nh?t tr�n Internet. C�c nh� qu?n tr? Web th??ng r?t s? m?t quy?n ?i?u khi?n website c?a m�nh. L� do l� b? ??m proxy khi?n ng??i s? d?ng tr? n�n ??n? ??i v?i h?, v� do ?� h? r?t kh� ?? bi?t r?ng ai ?ang s? d?ng website c?a m�nh.




M?t v?n ?? kh�c c?ng ?�ng quan t�m, ?� l� c�c b? ??m c� th? ??a ??n c�c th�ng tin ?� h?t h?n, kh�ng c�n hi?n h?u. B�i vi?t n�y s? gi?i thi?u c�ch c?u h�nh m�y ch? ?? ?i?u khi?n ph??ng th?c ??m c�c n?i dung c?a b?n.




Tr�i l?i, n?u b?n l?p k? ho?ch t?t, c�c b? ??m c� th? gi�p website c?a b?n ???c t?i nhanh h?n, v� c?ng gi�p gi?m t?i cho m�y ch? v� k?t n?i Internet c?a b?n. S? kh�c bi?t l� r?t ?�ng k?: m?t website kh� l?u ??m c� th? m?t t?i v�i gi�y ?? t?i, trong khi ?� website t?n d?ng ???c c�c ?u th? c?a b? ??m c� kh? n?ng xu?t hi?n g?n nh? t?c th?i. Ng??i d�ng s? ?�nh gi� cao c�c website c� t?c ?? t?i nhanh v� th??ng xuy�n quay tr? l?i h?n.




B?n h�y ngh? t?i m?t h�nh ?nh sau: r?t nhi?u c�ng ty Internet l?n ?� chi h�ng tri?u ?� la ?? x�y d?ng c�c trung t�m m�y ch? l?n tr�n kh?p th? gi?i ?? nh�n b?n n?i dung ? nhi?u n?i, qua ?� nh?m t?i m?c ?�ch t?ng t?c ?? truy nh?p t?i ?a cho ng??i s? d?ng. Th? nh?ng, c�c b? ??m c� th? th?c hi?n c�ng vi?c t??ng t? nh? v?y cho b?n, h?n n?a b? ??m l?i ? g?n ph�a m�y kh�ch h?n. V� tuy?t v?i h?n c? l� b?n kh�ng ph?i ch? b?t k? chi ph� n�o cho vi?c s? d?ng c�c b? ??m do n� n?m ? ph�a m�y kh�ch.




C�c b? ??m Web l�m vi?c nh? th? n�o?




T?t c? c�c b? ??m ??u c� m?t t?p quy t?c d�ng ?? x�c ??nh khi n�o s? ??a ra c�c n?i dung ?� l?u trong b? ??m. M?t s? trong c�c quy t?c ?� ???c thi?t l?p ? m?c giao th?c (HTTP 1.0 v� HTTP 1.1), m?t s? kh�c l?i ???c thi?t l?p b?i ng??i qu?n tr? b? ??m, ng??i qu?n tr? c� th? l� ng??i d�ng c?a b? ??m tr�nh duy?t hay ng??i qu?n tr? proxy.




Tuy v?y, nh�n chung c� nh?ng quy t?c chung ph?i theo:




  1. N?u ph?n ti�u ?? c?a n?i dung ph?n h?i cho bi?t b? ??m kh�ng l?u gi? n?i dung n�y, b? ??m s? tu�n th? ?�ng nh? v?y.

  2. N?u n?i dung ph?n h?i kh�ng ch?a th�ng tin x�c nh?n t�nh h?p l? (ch?a ETag ho?c Last-Modified trong ti�u ??), n?i dung ?� s? ???c xem l� kh�ng l?u ??m ???c.

  3. N?u n?i dung ph?n h?i ???c x�c th?c ho?c d??i d?ng b?o m?t, n?i dung ?� s? kh�ng ???c l?u ??m.

  4. N?i dung trong b? ??m ???c coi l� m?i, ngh?a l� c� th? g?i t?i ng??i s? d?ng m� kh�ng c?n ??i chi?u l?i v?i m�y ch? g?c, n?u:

    1. N?u ph?n ti�u ?? c� ch?a th?i gian h?t hi?u l?c ho?c c�c ?i?u khi?n th?i gian t?n t?i, n?i dung s? ???c coi l� m?i trong kho?ng th?i gian ?�.

    2. N?u b? ??m tr�nh duy?t ?� t?ng l?u n?i dung th�ng tin ?� v� ???c thi?t l?p ki?m tra m?i phi�n m?t l?n.

    3. N?u b? ??m proxy ?� t?ng l?u n?i dung th�ng tin ?� v� th?i ?i?m thay ??i cu?i c?a n?i dung th�ng tin ?� kh� l�u.

  5. N?u n?i dung th�ng tin ?� h?t h?n, m�y ch? g?c s? ???c y�u c?u x�c nh?n l?i th�ng tin, ho?c th�ng b�o cho b? ??m bi?t b?n sao ?ang l?u v?n c�n ho?t ??ng t?t.





T�nh m?i v� x�c nh?n l� nh?ng th�ng tin quan tr?ng nh?t cho ph�p b? ??m l�m vi?c v?i c�c n?i dung th�ng tin. C�c n?i dung th�ng tin m?i s? ???c b? ??m ph?c v? g?n nh? t?c th�, trong khi ?� c�c n?i dung th�ng ???c x�c nh?n gi�p tr�nh g?i l?i to�n b? n?i dung m?t l?n n?a khi m� c�c n?i dung ?� kh�ng c� g� thay ??i.
?i?u khi?n b? ??m nh? th? n�o?




C� m?t s? c�ng c? m� c�c nh� thi?t k? v� qu?n tr? Web c� th? s? d?ng ?? tinh ch?nh ph??ng th?c c�c b? ??m s? t??ng t�c v?i website c?a m�nh. L�m ???c ?i?u n�y ?�i h?i b?n ph?i thay ??i m?t ch�t c�c thi?t l?p c?a m�y ch?.




C�c th? meta HTML v� c�c ti�u ?? HTTP




Nh?ng ng??i so?n th?o HTML c� th? ??t m?t s? th? trong ph?n <HEAD> ?? m� t? c�c thu?c t�nh c?a t�i li?u. C�c th? t? ??nh ngh?a n�y (th? meta) th??ng ???c s? d?ng ?? ?�nh d?u t�i li?u ?� l� kh�ng cho ph�p l?u ??m, ho?c nh?m thi?t l?p th?i gian h?t hi?u l?c c?a t�i li?u.




C�c th? meta r?t d? s? d?ng nh?ng kh�ng m?y hi?u qu? do n� ch? ???c m?t s? �t c�c b? ??m tr�nh duy?t l?u t�m, v� kh�ng ???c c�c b? ??m proxy s? d?ng. Trong khi vi?c ??t m?t th? meta no-cache v�o c�c trang web l� r?t ??n gi?n, ?i?u ?� l?i kh�ng ??m b?o ph?n l?u c?a trang web lu�n m?i.




Tr�i l?i, c�c ti�u ?? HTTP cho ph�p b?n th?c hi?n r?t nhi?u quy?n ?i?u khi?n ??i v?i vi?c l?u tr? c�c n?i dung th�ng tin tr�n b? ??m tr�nh duy?t c?ng nh? b? ??m proxy. C�c ?i?u khi?n n�y kh�ng nh�n th?y ???c trong m� HTML v� th??ng ???c sinh b?i m�y ch? Web. Tuy v?y, b?n v?n c� th? ?i?u khi?n ???c ch�ng ? m?t s? m?c ?? nh?t ??nh, tu? thu?c v�o m�y ch? Web m� b?n ?ang s? d?ng. Trong ph?n d??i ?�y b?n s? th?y c�c ti�u ?? HTTP c� �ch nh? th? n�o v� l�m th? n�o ?? s? d?ng ch�ng cho website c?a b?n.




C�c ti�u ?? HTTP ???c m�y ch? g?i ?i tr??c ph?n m� HTML v� ch? ???c nh�n th?y b?i tr�nh duy?t v� m?t s? b? ??m trung gian. M?t ti�u ?? ph?n h?i HTTP 1.1 ?i?n h�nh c� d?ng nh? sau:




HTTP/1.1 200 OK
Date: Fri, 30 Oct 1998 13:19:41 GMT
Server: Apache/1.3.3 (Unix)
Cache-Control: max-age=3600, must-revalidate
Expires: Fri, 30 Oct 1998 14:19:41 GMT
Last-Modified: Mon, 29 Jun 1998 02:28:12 GMT
ETag: "3e86-410-3596fbbc"
Content-Length: 1040
Content-Type: text/html




Ph?n m� HTML s? ?i theo sau ph?n ti�u ?? n�y, ???c ph�n c�ch b?i m?t d�ng tr?ng.




Ti�u ?? HTML Pragma




Kh� nhi?u ng??i tin r?ng vi?c g�n m?t ti�u ?? HTTP Pragma: no-cache s? thi?t l?p cho m?t n?i dung tr? th�nh kh�ng ???c l?u ??m.. Tuy v?y ?i?u n�y kh�ng ho�n to�n ?�ng, trong ??c t? HTTP kh�ng c� b?t k? h??ng d?n n�o v? c�c ti�u ?? Pragma ph?n h?i, trong khi ?�, c�c ti�u ?? Pragma y�u c?u (l� c�c ti�u ?? m� tr�nh duy?t g?i t?i m�y ch?) l?i c� ???c ?? c?p t?i. Ch? c� m?t s? �t b? ??m ?? t�m t?i ti�u ?? n�y, ??i v?i ph?n l?n c�c b? ??m c�n l?i th� ti�u ?? n�y kh�ng t?o ra b?t k? hi?u ?ng n�o. Do v?y, b?n c� th? s? d?ng c�c ti�u ?? d??i ?�y ?? thay th?.


?i?u khi?n ?? m?i t�i li?u v?i ti�u ?? HTTP Expires




Ti�u ?? HTTP Expires l� ph??ng ti?n c? b?n ?? ?i?u khi?n qu� tr�nh l?u ??m, n� th�ng b�o cho t?t c? c�c b? ??m bi?t th?i gian n?i dung th�ng tin ???c coi l� m?i s? k�o d�i t?i khi n�o. Sau kho?ng th?i gian ?�, c�c b? ??m lu�n ki?m tra l?i v?i m�y ch? g?c ?? xem c� thay ??i n�o kh�ng. Tr�n l� thuy?t, ti�u ?? Expires ???c h? tr? b?i m?i b? ??m.




H?u h?t c�c m�y ch? Web cho ph�p b?n thi?t l?p ti�u ?? Expires ph?n h?i theo m?t s? c�ch kh�c nhau. Th�ng th??ng, m�y ch? Web s? cho ph�p thi?t l?p th?i gian h?t h?n l� m?t gi� tr? tuy?t ??i, ho?c l� th?i gian t??ng ??i d?a tr�n l?n truy c?p cu?i, ho?c th?i gian t??ng ??i d?a tr�n th?i ?i?m thay ??i cu?i c�ng c?a t�i li?u tr�n m�y ch?.




C�c ti�u ?? Expires ??c bi?t h?u �ch ??i v?i c�c ?nh t??ng ??i c? ??nh tr�n website nh? thanh ??nh v? hay c�c n�t ?n. Do c�c ?nh n�y kh�ng th??ng xuy�n thay ??i, b?n c� th? thi?t ??t th?i gian h?t h?n kh� d�i cho ch�ng. ?i?u n�y s? l�m cho t?c ?? ?�p ?ng c?a website t?ng l�n r?t nhi?u. Ti�u ?? n�y c?ng c� �ch ??i v?i vi?c ?i?u khi?n l?u ??m m?t trang th??ng xuy�n c� thay ??i. V� d?, n?u b?n c?p nh?t trang tin t?c m?i ng�y m?t l?n v�o l�c 6 gi? s�ng, b?n c� th? thi?t l?p ?? trang tin h?t h?n v�o th?i ?i?m ?�, t? ?� c�c b? ??m s? bi?t ???c khi n�o c?n t?i v? m?t b?n sao m?i m� kh�ng c?n ng??i d�ng ph?i ?n n�t ?N?p l?i? (Reload) tr�n tr�nh duy?t.




Gi� tr? h?p l? duy nh?t cho ti�u ?? Expires l� gi� tr? d?ng ng�y th�ng theo ??c t? c?a HTTP, t?t c? c�c d?ng d? li?u kh�c s? ???c di?n d?ch th�nh th?i gian trong qu� kh?, v� do ?� n?i dung th�ng tin s? kh�ng ???c l?u ??m. C?ng c?n l?u � r?ng, th?i gian theo ??c t? HTTP l� d??i d?ng gi? chu?n c?n c? theo kinh tuy?n Greenwich (gi? GMT), ch? kh�ng ph?i th?i gian theo ??a ph??ng.




V� d?:




Expires: Fri, 30 Oct 1998 14:19:41 GMT




M?c d� ti�u ?? Expires kh� h?u �ch, n� v?n c� m?t s? h?n ch? nh?t ??nh. Tr??c h?t, do li�n quan t?i ng�y th�ng, ??ng h? tr�n m�y ch? Web v� tr�n c�c b? ??m ph?i ???c ??ng b? v?i nhau; n?u c�c ??ng h? n�y c� ch�nh l?ch th?i gian, k?t qu? tr?ng ??i c� th? s? kh�ng ??t ???c, v� b? ??m c� kh? n?ng b? nh?m l?n khi ?�nh gi� m?t t�i li?u l� m?i.




M?t v?n ?? n?a ??i v?i ti�u ?? Expires l� ng??i ta r?t d? qu�n r?ng m�nh ?� ??t th?i gian h?t h?n cho t�i li?u. N?u b?n qu�n c?p nh?t th?i gian h?t h?n cho t�i li?u tr??c khi g?i ?i, m?i y�u c?u t�i li?u s? kh�ng ???c ?�p ?ng b?i c�c b? ??m m� b? g?i tr? v? m�y ch? Web, t?o ra ?? tr? v� l�m t?ng t?i h? th?ng.




Ti�u ?? HTTP Cache-Control




Phi�n b?n HTTP 1.1 gi?i thi?u m?t lo?i ti�u ?? m?i l� ti�u ?? Cache-Control ph?n h?i nh?m gi�p c�c nh� thi?t k? Web c� nhi?u kh? n?ng ?i?u khi?n h?n ??i v?i n?i dung v� nh?m gi?i quy?t m?t s? h?n ch? c?a ti�u ?? Expires.




C�c ti�u ?? HTTP Cache-Control ph?n h?i h?u �ch bao g?m:




max-age=[s? gi�y] ? Ch? ra kho?ng th?i gian t�nh b?ng gi�y m� m?t n?i dung ???c coi l� m?i.




s-maxage=[s? gi�y] ? t??ng t? nh? max-age, ngo?i tr? vi?c n� ch? ???c �p d?ng cho c�c b? ??m d�ng chung (v� d? b? ??m proxy)




public ? ?�nh d?u m?t ph?n h?i c� x�c th?c l� ???c ph�p l?u ??m, th�ng th??ng, n?u c� y�u c?u x�c th?c HTTP, ph?n h?i ???c thi?t l?p m?c ??nh l� kh�ng cho ph�p l?u ??m.




no-cache ? b?t bu?c c�c b? ??m ph?i g?i y�u c?u v? m�y ch? g?c ?? x�c nh?n tr??c khi ph�n ph?i b?n l?u ??m. ?i?u n�y r?t h?u �ch nh?m ??m b?o qu� tr�nh x�c th?c ng??i d�ng, ho?c ??m b?o t�nh m?i c?a t�i li?u, m� kh�ng ph?i hy sinh to�n b? c�c ?u ?i?m c?a b? ??m.




no-store ? ch? th? cho c�c b? ??m kh�ng l?u gi? b?n sao c?a n?i dung th�ng tin trong b?t k? ho�n c?nh n�o.




must-revalidate ? th�ng b�o cho b? ??m bi?t c� th? s? d?ng n?i dung ph?n h?i n�y cho c�c l?n y�u c?u sau. Nh?ng n?u n?i dung ph?n h?i ?� c?, b? ??m ph?i t�i x�c nh?n l?i v?i m�y ch? g?c.




proxy-revalidate ? t??ng t? nh? must-revalidate, ngo?i tr? vi?c n� ch? ???c �p d?ng cho c�c b? ??m proxy.




V� d?:




Cache-Control: max-age=3600, must-revalidate




X�c nh?n v� c�c Ch? th? x�c nh?n




Trong ph?n tr�n, ch�ng ta ?� n�i v? vi?c trao ??i c�c x�c nh?n gi?a m�y ch? v� b? ??m khi m?t n?i dung c� thay ??i. B?ng c�ch ?�, khi b? ??m kh�ng ch?c ch?n v? t�nh m?i c?a m?t n?i dung, n� v?n tr�nh ???c vi?c t?i l?i to�n b? n?i dung khi n� ?� l?u m?t b?n sao c?a ch�nh n?i dung ?� l�c tr??c.




C�c ch? th? x�c nh?n c� vai tr� r?t quan tr?ng; n?u trong th�ng tin ph?n h?i kh�ng ch?a ch? th? x�c nh?n n�o v� c?ng kh�ng c� c�c th�ng tin v? ?? m?i, c�c b? ??m s? kh�ng l?u l?i th�ng tin ?�.




Ch? th? x�c nh?n ph? bi?n nh?t l� th?i gian c?p nh?t cu?i c�ng c?a t�i li?u ???c l?u trong ti�u ?? Last-Modified. Khi b? ??m l?u m?t n?i dung c� ti�u ?? Last-Modifed ?i k�m, n� c� th? s? d?ng ti�u ?? n�y ?? h?i m�y ch? xem n?i dung ?� ?� c� thay ??i t? l?n l?u cu?i hay kh�ng.




HTTP 1.1 ??a ra m?t lo?i ch? th? x�c nh?n m?i l� ETag. ETag l� ??nh danh duy nh?t ???c sinh b?i m�y ch? v�y thay ??i ??i v?i m?i n?i dung. Do m�y ch? ?i?u khi?n vi?c sinh c�c ETag, b? ??m c� th? so s�nh ETag c?a t�i li?u m?i nh?t v?i t�i li?u m� n� ?� l?u.




H?u h?t c�c b? ??m s? d?ng th?i gian trong Last-Modified ?? x�c ??nh m?t n?i dung c� m?i hay kh�ng; x�c nh?n b?ng ETag c?ng d?n tr? n�n ph? bi?n. H?u h?t c�c m�y ch? web hi?n ??i ??u sinh t? ??ng c? ti�u ?? ETag v� Last-Modified l�m ch? th? x�c nh?n cho c�c n?i dung t?nh. Tuy v?y, kh�ng ?? th�ng tin v? c�c n?i dung ??ng (nh? CGI, ASP v� c�c trang c? s? d? li?u) ?? sinh t? ??ng c�c ti�u ?? n�y.




Th? thu?t x�y d?ng website h? tr? b? ??m




B�n c?nh s? d?ng t�nh m?i v� x�c nh?n, c� m?t s? ph??ng th?c kh�c nh?m l�m cho website c?a b?n th�n thi?n h?n v?i c�c b? ??m.




S? d?ng c�c ??a ch? nh?t qu�n ? ?�y l� quy t?c v�ng trong l?u ??m. N?u b?n cung c?p c�ng m?t n?i dung t?i nh?ng trang kh�c nhau, cho nh?ng ng??i d�ng kh�c nhau, n� ph?i c� c�ng m?t ??a ch?. ?�y l� c�ch d? nh?t ??ng th?i hi?u qu? nh?t ?? l�m cho webiste c?a b?n th�n thi?n v?i c�c b? ??m. V� d?, n?u b?n s? d?ng ?/index.htm? trong m� HTML ?? ch? li�n k?t t?i trang ch?, h�y lu�n l�m nh? v?y.




S? d?ng th? vi?n h�nh ?nh chung ? th? vi?n h�nh ?nh v� c�c th�nh ph?n kh�c ph?i ???c d�ng chung. C�c trang kh�c nhau s? c�ng tham chi?u t?i th? vi?n h�nh ?nh n�y.




Gi�p b? ??m l?u c�c h�nh ?nh v� c�c trang kh�ng th??ng xuy�n thay ??i b?ng c�ch s? d?ng ti�u ?? Cache-Control: max-age c� gi� tr? l?n.




Gi�p b? ??m nh?n bi?t c�c trang th??ng xuy�n thay ??i b?ng c�ch ch? ??nh max-age ho?c th?i gian hi?u l?c th�ch h?p.




Khi m?t t�i nguy�n (??c bi?t l� c�c t?p tin) thay ??i, h�y ??i t�n c?a n�. B?ng c�ch n�y, b?n c� th? ??t m?t th?i gian hi?u l?c l?n m� v?n ??m b?o cung c?p ?�ng phi�n b?n c?n thi?t. Ch? c�c trang c� li�n k?t t?i c�c t�i nguy�n n�y c?n thi?t l?p th?i gian hi?u l?c ng?n.




Kh�ng thay ??i c�c t?p tin kh�ng c?n thi?t. N?u b?n thay ??i c�c t?p tin kh�ng c?n thi?t, ch�ng s? c� th?i gian Last-Modified kh�ng ch�nh x�c. Do ?�, khi c?p nh?t website, kh�ng n�n sao ch�p to�n b? website, m� ch? n�n sao ch�p c�c t?p tin c� thay ??i.




Ch? s? d?ng cookie khi c?n thi?t ? cookie r?t kh� l?u ??m, v� th??ng kh�ng ph?i c?n thi?t trong m?i t�nh hu?ng. N?u nh?t thi?t ph?i d�ng cookie, h�y h?n ch? n� trong ph?m vi c�c trang ??ng m� th�i.




Gi?m thi?u vi?c s? d?ng SSL ? do c�c trang m� ho� kh�ng ???c l?u b?i c�c b? ??m d�ng chung, ch? n�n s? d?ng SSL khi c?n thi?t.




Vi?t c�c ?o?n m� h? tr? b? ??m




Theo m?c ??nh, c�c m� l?nh k?ch b?n (script) th??ng kh�ng t? ??ng tr? v? c�c ch? th? x�c nh?n (ti�u ?? ph?n h?i Last-Modified hay ETag) ho?c th�ng tin l�m t??i (Expires hay Cache-Control). Trong khi m?t s? script l� th?c s? ??ng (v?i ngh?a t?o ra n?i dung ph?n h?i kh�c nhau v?i c�c y�u c?u kh�c nhau), nhi?u script nh? m�y t�m ki?m ho?c c�c website h??ng c? s? d? li?u c� th? thu ???c l?i �ch th�ng qua vi?c s? d?ng b? ??m.




Th�ng th??ng, n?u m?t script t?o ra m?t ph?n h?i m� ph?n h?i ?� c� th? t�i s? d?ng cho c�ng m?t y�u c?u nh? v?y nh?ng ???c g?i sau m?t th?i gian nh?t ??nh (th?i gian n�y c� th? l� v�i ph�t hay v�i ng�y), th� script ?� n�n ???c l?u ??m. N?u k?t qu? c?a script thay ??i ch? ph? thu?c v�o ??a ch? URL, n� c?ng n�n l?u ??m. N?u k?t qu? ?� ph? thu?c v�o cookie hay c�c th�ng tin x�c th?c, ho?c c�c ti�u ch� kh�c, g?n nh? ch?c ch?n l� script ?� kh�ng th? l?u ??m.




C�ch t?t nh?t ?? l�m cho script th�n thi?n v?i b? ??m (c?ng ??ng ngh?a v?i vi?c th?c thi nhanh h?n) l� xu?t n?i dung k?t qu? c?a n� ra m?t t?p tin t?nh m?i khi c� thay ??i. T? ?�, m�y ch? Web xem t?p tin t?nh n�y nh? nh?ng trang web kh�c, t? ??ng sinh v� s? d?ng c�c ch? th? x�c nh?n, v� qu� tr�nh l?u ??m s? tr? n�n ??n gi?n h?n. H�y ghi nh? ch? ghi l?i t?p tin t?nh khi c?n ?? th?i gian Last-Modified kh�ng b? thay ??i m?t c�ch kh�ng c?n thi?t.




M?t c�ch kh�c gi�p script ???c l?u ??m l� thi?t ??t c�c ti�u ?? li�n quan t?i th?i gian t?n t?i c?a t�i li?u. M?c d� ?i?u n�y c� th? th?c hi?n ???c v?i Expires, nh?ng c� l? c�ch t?t nh?t l� s? d?ng Cache-Control: max-age ?? ??t th�ng tin l� m?i trong m?t kho?ng th?i gian nh?t ??nh.




N?u kh�ng th? th?c hi?n c�c ph??ng ph�p tr�n, c?n vi?t c�c script ?? t? sinh ch? th? x�c nh?n, v� ph?n h?i l?i c�c y�u c?u If-Modified-Since hay If-None-Match. ?i?u n�y c� th? th?c hi?n ???c th�ng qua ph�n t�ch c�c ti�u ?? HTTP.




M?t s? th? thu?t kh�c:




Kh�ng s? d?ng ph??ng th?c POST, tr? khi c?n thi?t. Ph?n h?i c?a c�c y�u c?u d�ng ph??ng th?c POST th??ng kh�ng ???c l?u b?i h?u h?t c�c b? ??m. N?u th�ng tin ???c g?i s? d?ng ph??ng th?c GET, c�c b? ??m s? l?u th�ng tin ?� l?i ?? s? d?ng v? sau.




Kh�ng g?n c�c th�ng tin li�n quan t?i ng??i d�ng v�o URL tr? khi n?i dung ???c y�u c?u li�n h? ch?t ch? v?i ng??i d�ng.




Sinh ti�u ?? ph?n h?i Content-Length. Kh� d? ?? th?c hi?n ?i?u n�y, n� cho ph�p ph?n h?i c?a script ???c th?c hi?n tr�n m?t k?t n?i c? ??nh. ?i?u n�y ??m b?o cho m�y kh�ch y�u c?u nhi?u n?i dung tr�n c�ng m?t k?t n?i TCP/IP thay v� thi?t l?p m?t k?t n?i m?i cho m?i y�u c?u, k?t qu? l� website c?a b?n s? ho?t ??ng nhanh l�n kh� nhi?u./.


(Anh D?ng)

This entry was posted on 21:09 and is filed under .Follow any comments here with the RSS 2.0 . You can leave a response so that we can know your suggestion.
0 Responses to "C�c v?n ?? c? b?n v? B? ??m Web (Web Caching)"

Đăng nhận xét