SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
Tối ưu tốc độ tải trang web với HTTP Cache
Tác giả: Nguyễn Trọng Thơ – SEO Master
Với mỗi website, tốc độ tải là yếu tố quan trọng #1, bởi người dùng rất ghét
phải chờ đợi. Bài viết này tôi hướng dẫn các bạn làm lập trình web cách
thực hiện Cache các nội dung trang web bằng HTTP Headers, giúp trang
web tải nhanh hơn, Server xử lý ít hơn.

CACHE LÀ GÌ ?
Cache là hành động lưu trữ các nội dung trên website để sử dụng lại cho những lần truy vấn tiếp theo. Ngày nay,
các trình duyệt đều có thể lưu lại một bản sao mỗi hình ảnh (logo, banner,..), javascript (.js), stylesheets (.css), hoặc
toàn bộ trang web. Lần sau, khi người dùng cần những nội dung này, trình duyệt sẽ sử dụng lại nội dung cũ, không
cần phải kết nối tới máy chủ để tải nội dung.

Khi xem một trang web, số lần tải file càng ít thì tốc độ càng nhanh, máy chủ càng ít phải xử lý.
Dưới đây là hình ảnh mô tả cách thức trình duyệt lấy 1 nội dung từ máy chủ.

1. Browser: gửi yêu cầu lấy file index.html
2. Server: tìm & đọc nội dung file
3. Server: trả về nội dung file
4. Browser: hiển thị nội dung
Theo cách này, nếu bạn refresh một trang web n lần thì sẽ có n lần Browser và Server phải xử lý công việc kể trên.
Trong thực tế, rất nhiều file không thay đổi nội dung trong thời gian dài. Nếu một trang web có 10 file (html, ảnh, js,
css,..) thì mỗi lần bạn bấm F5 thì Browser phải thực hiện 10 lần kết nối đến Server. Bạn hãy hình dung, nếu lúc đó
website có 1.000 lượt truy cập đồng thời thì tốc độ tải trang web sẽ rất chậm.

WEB CACHE #1: Last-Modified
Khi Server gửi nội dung về Browser thì kèm theo thuộc tính Last-Modified để xác định thời điểm sửa file (ví dụ:
inet.png) lần cuối cùng. Ví dụ:

Last-modified: Wed, 16 Oct 2013 05:00:25 GMT+7

Lúc này, Browser biết được file inet.png được tạo ra ngày 16/10/2013. Lần sau khi cần tải lại file này, nó sẽ gửi yêu
cầu đến Server kèm theo header Last-Modifed. Server chỉ trả về nội dung nếu file đã được cập nhật.

1. Browser: Này ông! hãy gửi cho tôi file inet.png, nhưng chỉ gửi nội dung nếu file được cập nhật nội dung
sau ngày 16/10/2013
2. Server: tìm file và kiểm tra thời điểm câp nhật cuối cùng
3. Server: Hey! bạn thật may mắn, file bạn đang có là bản cập nhật mới nhất (304 Not Modified)
4. Browser: OK! tôi sẽ sử dụng nội dung đã được cache.
Như vậy, Server chỉ gửi 1 dòng thông báo "Not Modified" mà không phải gửi lại nội dung file.

WEB CACHE #2: ETag
Trong bước #1 vẫn còn một số vấn đề: (1) Vẫn phải kết nối nhiều lần đến server, tại server phải xử lý thời gian cập
nhật file, (2) Nếu đồng hồ trên server bị sai lệch thì nội dung file vẫn được tải xuống Browser.

Giải pháp #2 là sử dụng header ETag với giá trị là chuỗi số duy nhất cho tất cả các file trên server. Nó có thể là một
mã Hash hay Footprint: mỗi file đều có footprint (dấu chân) duy nhất, nếu bạn thay đổi nội dung file (dù chỉ là 1 byte)
thì footprint sẽ thay đổi.

Thay vì gửi cho Browser thời gian cập nhật lần cuối, Server sẽ gửi mã ETag. Browser sẽ lưu lại file kèm theo mã
ETag. Lần sau khi cần tải lại file này, nó sẽ gửi yêu cầu đến Server kèm theo header ETag. Server chỉ trả về nội
dung nếu file đã được cập nhật.
1. Browser: Hãy gửi tôi file inet.png, nếu file đã thay đổi, mã etag 'ead145f'
2. Server: Kiểm tra footprint của file inet.png
3. Server: Hey file bạn yêu cầu chưa thay đổi nội dung (Not Modifed)
4. Browser: OK! tôi sẽ sử dụng nội dung đã được cache.

Ví dụ: mã HTML khi tải file style.css trên trang SEOMaster.vn
GET /style.css HTTP/1.1
Host: seomaster.vn
User-Agent: Mozilla/5.0 (Windows NT)Firefox/24.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://inet.vn/
Connection: keep-alive
If-None-Match: "inet-1331151434"
Cache-Control: max-age=0
----HTTP RESPONSE-----------------HTTP/1.1 304 Not Modified
Date: Wed, 16 Oct 2013 03:45:28 GMT+7
Server: iNET WebServer 1.3
Connection: Close
Etag: "inet-1331151434"

WEB CACHE #3: Expires
Cache theo cách #2 thì Browser vẫn phải
kết nối nhiều lần đến Server để kiểm tra
xem file có thay đổi nội dung. Thay vì để
Browser hỏi nhiều lần, khi gửi file, Server
sẽ gửi kèm header expires để thông báo
rằng nội dung file sẽ không thay đổi cho
đến thời điểm expires. Từ bây giờ đến lúc
đó, bạn cứ lấy nội dung cache mà dùng,
không phải phải hỏi nữa.
Expires: Wed, 16 Oct 2013 05:00:25 GMT+7
Không có kết nối Browser - Server. Browser tự kiểm tra nếu file còn thời hạn thì sử dụng luôn nội dung đã được
cache. Điều này sẽ làm giảm bớt công việc của Server - dành thời gian làm việc khác.

WEB CACHE #4: Max-Age
Thông tin expires (ngày hết hạn) rất tuyệt vời, nhưng Browser phải liên tục tính toán thời gian. Giải pháp #4 là sử
dụng header max-age - "file inet.png sẽ hết hạn trong 1 tuần kể từ hôm nay", đơn giản hơn so với việc sử dụng
chính xác thời điểm hết hạn.
Cache-Control: public | private | no-cache, max-age = n





Giá trị max-age được tính bằng giây, 1 giờ = 3600, 1 ngày = 86400.



No-cache: Browser và Proxy không được cache file này.

Public: file có thể được cache bởi proxy hoặc các máy chủ trung gian
Private: file có giá trị khác nhau cho từng người sử dụng.
Browser có thể cache, nhưng các proxy không được cache.

KIỂM TRA TRẠNG THÁI CACHE
Như vậy là bạn đã biết cách thiết lập các HTTP Header để cache các nội dung trang web. Bạn có thể hỏi, làm sao tôi
biết Browser và Server trao đổi với nhau bằng những Headers nào? Bạn hãy cài đặt addons Firefox có tên gọi 'Live
HTTP Headers. Sau khi cài đặt, bạn chọn menu Tools >> Live HTTP Headers để bật chương trình, sau đó truy
cập vào bất cứ trang web nào để xem các headers.

Ngoài ra, nếu bạn đã cài addons Web Developer thì có thể dùng luôn tính năng Network, bằng cách chọn
menu: Tools >> Web Developers >> Network; Sau đó truy cập vào các trang web trên website để kiểm tra.
 Những file có trong danh sách là Browser có thực hiện kết nối tới Server
 Những file có biểu tượng xanh sáng ở góc trái: Server gửi

dữ

liệu

về

Browser.

Biểu tượng xám: Server không gửi dữ liệu, chỉ thông báo Not Modified.

Khi viết bài này là lúc tôi vừa tối ưu xong việc cache cho toàn bộ hệ thống WEB.TIN.VN - Hệ thống xây dựng trang
web bán hàng miễn phí. Tất cả các bài viết đã được xử lý cache, tốc độ tải trang web hiện tại là rất nhanh. Bạn có
thể thử nghiệm truy cập vào InternetStartup.vn, InternetCoaching.vn,..

Chúc bạn thành công!
Nguyễn Trọng Thơ – SEO Master

Tham khảo thêm
iNET.vn – Kiểm tra tên miền, tư vấn lựa chọn tên miền miễn phí.
Marketing Online Master – Xây dựng doanh nghiệp trực tuyến
Khóa học SEO SMART – Học SEO miễn phí trong 3H

Contenu connexe

Plus de Nguyễn Trọng Thơ

Internet Startup 2018 - Nguyen Trong Tho
Internet Startup 2018 - Nguyen Trong ThoInternet Startup 2018 - Nguyen Trong Tho
Internet Startup 2018 - Nguyen Trong ThoNguyễn Trọng Thơ
 
Business Growth Hacks - Hoang Ba Tau
Business Growth Hacks - Hoang Ba TauBusiness Growth Hacks - Hoang Ba Tau
Business Growth Hacks - Hoang Ba TauNguyễn Trọng Thơ
 
Amazon Dropship FBA - Vuong Manh Hoang
Amazon Dropship FBA - Vuong Manh HoangAmazon Dropship FBA - Vuong Manh Hoang
Amazon Dropship FBA - Vuong Manh HoangNguyễn Trọng Thơ
 
Zalo marketing: tối ưu hiệu quả quảng cáo - Nguyễn Bá Hưởng
Zalo marketing: tối ưu hiệu quả quảng cáo - Nguyễn Bá HưởngZalo marketing: tối ưu hiệu quả quảng cáo - Nguyễn Bá Hưởng
Zalo marketing: tối ưu hiệu quả quảng cáo - Nguyễn Bá HưởngNguyễn Trọng Thơ
 
Xay dung cong dong tren facebook - Nguyen Tat Kiem
Xay dung cong dong tren facebook - Nguyen Tat KiemXay dung cong dong tren facebook - Nguyen Tat Kiem
Xay dung cong dong tren facebook - Nguyen Tat KiemNguyễn Trọng Thơ
 
Tối ưu thu nhập từ SEO và Affiliate - Chu Đình Châu
Tối ưu thu nhập từ SEO và Affiliate - Chu Đình ChâuTối ưu thu nhập từ SEO và Affiliate - Chu Đình Châu
Tối ưu thu nhập từ SEO và Affiliate - Chu Đình ChâuNguyễn Trọng Thơ
 
Sale Funnels and Conversion - Tình Nguyễn
Sale Funnels and Conversion  - Tình NguyễnSale Funnels and Conversion  - Tình Nguyễn
Sale Funnels and Conversion - Tình NguyễnNguyễn Trọng Thơ
 
Xây dựng MA TRẬN TRAFFIC: 1 triệu visits / ngày - Eric Doan
Xây dựng MA TRẬN TRAFFIC: 1 triệu visits / ngày - Eric DoanXây dựng MA TRẬN TRAFFIC: 1 triệu visits / ngày - Eric Doan
Xây dựng MA TRẬN TRAFFIC: 1 triệu visits / ngày - Eric DoanNguyễn Trọng Thơ
 
Kiếm tiền với CLICKBANK Affiliate - Hoàng Sỹ Cường
Kiếm tiền với CLICKBANK Affiliate - Hoàng Sỹ CườngKiếm tiền với CLICKBANK Affiliate - Hoàng Sỹ Cường
Kiếm tiền với CLICKBANK Affiliate - Hoàng Sỹ CườngNguyễn Trọng Thơ
 
5 Bước phát triển 1 doanh nghiệp Online - Hoàng Bá Tầu
5 Bước phát triển 1 doanh nghiệp Online - Hoàng Bá Tầu5 Bước phát triển 1 doanh nghiệp Online - Hoàng Bá Tầu
5 Bước phát triển 1 doanh nghiệp Online - Hoàng Bá TầuNguyễn Trọng Thơ
 
Xây dựng nội dung cho affiliate: Review, Social - Võ Ngọc Đông Phương
Xây dựng nội dung cho affiliate: Review, Social - Võ Ngọc Đông PhươngXây dựng nội dung cho affiliate: Review, Social - Võ Ngọc Đông Phương
Xây dựng nội dung cho affiliate: Review, Social - Võ Ngọc Đông PhươngNguyễn Trọng Thơ
 
Sale automation với Facebook and chatbot - Lại Tuấn Cường
Sale automation với Facebook and chatbot - Lại Tuấn CườngSale automation với Facebook and chatbot - Lại Tuấn Cường
Sale automation với Facebook and chatbot - Lại Tuấn CườngNguyễn Trọng Thơ
 
Membership Ecomnomy - Hoàng Bá Tầu
Membership Ecomnomy - Hoàng Bá TầuMembership Ecomnomy - Hoàng Bá Tầu
Membership Ecomnomy - Hoàng Bá TầuNguyễn Trọng Thơ
 
AFFILIATE MARKETING với Livestream và Video Youtube - Nguyễn Hữu Lam
AFFILIATE MARKETING với Livestream và Video Youtube - Nguyễn Hữu LamAFFILIATE MARKETING với Livestream và Video Youtube - Nguyễn Hữu Lam
AFFILIATE MARKETING với Livestream và Video Youtube - Nguyễn Hữu LamNguyễn Trọng Thơ
 
Coccoc Shopping and Affiliate Marketing
Coccoc Shopping and Affiliate MarketingCoccoc Shopping and Affiliate Marketing
Coccoc Shopping and Affiliate MarketingNguyễn Trọng Thơ
 

Plus de Nguyễn Trọng Thơ (20)

Internet Startup 2018 - Nguyen Trong Tho
Internet Startup 2018 - Nguyen Trong ThoInternet Startup 2018 - Nguyen Trong Tho
Internet Startup 2018 - Nguyen Trong Tho
 
3 Buoc Goi Von - Nguyen Thanh Tien
3 Buoc Goi Von - Nguyen Thanh Tien3 Buoc Goi Von - Nguyen Thanh Tien
3 Buoc Goi Von - Nguyen Thanh Tien
 
Business Growth Hacks - Hoang Ba Tau
Business Growth Hacks - Hoang Ba TauBusiness Growth Hacks - Hoang Ba Tau
Business Growth Hacks - Hoang Ba Tau
 
Amazon Dropship FBA - Vuong Manh Hoang
Amazon Dropship FBA - Vuong Manh HoangAmazon Dropship FBA - Vuong Manh Hoang
Amazon Dropship FBA - Vuong Manh Hoang
 
Zalo marketing: tối ưu hiệu quả quảng cáo - Nguyễn Bá Hưởng
Zalo marketing: tối ưu hiệu quả quảng cáo - Nguyễn Bá HưởngZalo marketing: tối ưu hiệu quả quảng cáo - Nguyễn Bá Hưởng
Zalo marketing: tối ưu hiệu quả quảng cáo - Nguyễn Bá Hưởng
 
Xay dung cong dong tren facebook - Nguyen Tat Kiem
Xay dung cong dong tren facebook - Nguyen Tat KiemXay dung cong dong tren facebook - Nguyen Tat Kiem
Xay dung cong dong tren facebook - Nguyen Tat Kiem
 
Tối ưu thu nhập từ SEO và Affiliate - Chu Đình Châu
Tối ưu thu nhập từ SEO và Affiliate - Chu Đình ChâuTối ưu thu nhập từ SEO và Affiliate - Chu Đình Châu
Tối ưu thu nhập từ SEO và Affiliate - Chu Đình Châu
 
Sale Funnels and Conversion - Tình Nguyễn
Sale Funnels and Conversion  - Tình NguyễnSale Funnels and Conversion  - Tình Nguyễn
Sale Funnels and Conversion - Tình Nguyễn
 
Xây dựng MA TRẬN TRAFFIC: 1 triệu visits / ngày - Eric Doan
Xây dựng MA TRẬN TRAFFIC: 1 triệu visits / ngày - Eric DoanXây dựng MA TRẬN TRAFFIC: 1 triệu visits / ngày - Eric Doan
Xây dựng MA TRẬN TRAFFIC: 1 triệu visits / ngày - Eric Doan
 
CRO Landing Page - Binh Nguyen
CRO Landing Page - Binh NguyenCRO Landing Page - Binh Nguyen
CRO Landing Page - Binh Nguyen
 
Kiếm tiền với CLICKBANK Affiliate - Hoàng Sỹ Cường
Kiếm tiền với CLICKBANK Affiliate - Hoàng Sỹ CườngKiếm tiền với CLICKBANK Affiliate - Hoàng Sỹ Cường
Kiếm tiền với CLICKBANK Affiliate - Hoàng Sỹ Cường
 
5 Bước phát triển 1 doanh nghiệp Online - Hoàng Bá Tầu
5 Bước phát triển 1 doanh nghiệp Online - Hoàng Bá Tầu5 Bước phát triển 1 doanh nghiệp Online - Hoàng Bá Tầu
5 Bước phát triển 1 doanh nghiệp Online - Hoàng Bá Tầu
 
Amazon fba - Lương Văn Hậu
Amazon fba - Lương Văn HậuAmazon fba - Lương Văn Hậu
Amazon fba - Lương Văn Hậu
 
Xây dựng nội dung cho affiliate: Review, Social - Võ Ngọc Đông Phương
Xây dựng nội dung cho affiliate: Review, Social - Võ Ngọc Đông PhươngXây dựng nội dung cho affiliate: Review, Social - Võ Ngọc Đông Phương
Xây dựng nội dung cho affiliate: Review, Social - Võ Ngọc Đông Phương
 
Sale funnel hacks - Richdad loc
Sale funnel hacks - Richdad locSale funnel hacks - Richdad loc
Sale funnel hacks - Richdad loc
 
Sale automation với Facebook and chatbot - Lại Tuấn Cường
Sale automation với Facebook and chatbot - Lại Tuấn CườngSale automation với Facebook and chatbot - Lại Tuấn Cường
Sale automation với Facebook and chatbot - Lại Tuấn Cường
 
Membership Ecomnomy - Hoàng Bá Tầu
Membership Ecomnomy - Hoàng Bá TầuMembership Ecomnomy - Hoàng Bá Tầu
Membership Ecomnomy - Hoàng Bá Tầu
 
AFFILIATE MARKETING với Livestream và Video Youtube - Nguyễn Hữu Lam
AFFILIATE MARKETING với Livestream và Video Youtube - Nguyễn Hữu LamAFFILIATE MARKETING với Livestream và Video Youtube - Nguyễn Hữu Lam
AFFILIATE MARKETING với Livestream và Video Youtube - Nguyễn Hữu Lam
 
Global Market Places - Tuấn Hà
Global Market Places - Tuấn HàGlobal Market Places - Tuấn Hà
Global Market Places - Tuấn Hà
 
Coccoc Shopping and Affiliate Marketing
Coccoc Shopping and Affiliate MarketingCoccoc Shopping and Affiliate Marketing
Coccoc Shopping and Affiliate Marketing
 

Dernier

30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...Nguyen Thanh Tu Collection
 
CD21 Exercise 2.1 KEY.docx tieng anh cho
CD21 Exercise 2.1 KEY.docx tieng anh choCD21 Exercise 2.1 KEY.docx tieng anh cho
CD21 Exercise 2.1 KEY.docx tieng anh chonamc250
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...hoangtuansinh1
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...Nguyen Thanh Tu Collection
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhdtlnnm
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgsNmmeomeo
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngYhoccongdong.com
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptxNhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptxhoangvubaongoc112011
 
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-KhnhHuyn546843
 

Dernier (20)

30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
CD21 Exercise 2.1 KEY.docx tieng anh cho
CD21 Exercise 2.1 KEY.docx tieng anh choCD21 Exercise 2.1 KEY.docx tieng anh cho
CD21 Exercise 2.1 KEY.docx tieng anh cho
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptxNhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
 
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
 

Tối ưu tốc độ tải trang web với HTTP Cache

  • 1. Tối ưu tốc độ tải trang web với HTTP Cache Tác giả: Nguyễn Trọng Thơ – SEO Master Với mỗi website, tốc độ tải là yếu tố quan trọng #1, bởi người dùng rất ghét phải chờ đợi. Bài viết này tôi hướng dẫn các bạn làm lập trình web cách thực hiện Cache các nội dung trang web bằng HTTP Headers, giúp trang web tải nhanh hơn, Server xử lý ít hơn. CACHE LÀ GÌ ? Cache là hành động lưu trữ các nội dung trên website để sử dụng lại cho những lần truy vấn tiếp theo. Ngày nay, các trình duyệt đều có thể lưu lại một bản sao mỗi hình ảnh (logo, banner,..), javascript (.js), stylesheets (.css), hoặc toàn bộ trang web. Lần sau, khi người dùng cần những nội dung này, trình duyệt sẽ sử dụng lại nội dung cũ, không cần phải kết nối tới máy chủ để tải nội dung. Khi xem một trang web, số lần tải file càng ít thì tốc độ càng nhanh, máy chủ càng ít phải xử lý. Dưới đây là hình ảnh mô tả cách thức trình duyệt lấy 1 nội dung từ máy chủ. 1. Browser: gửi yêu cầu lấy file index.html 2. Server: tìm & đọc nội dung file 3. Server: trả về nội dung file 4. Browser: hiển thị nội dung Theo cách này, nếu bạn refresh một trang web n lần thì sẽ có n lần Browser và Server phải xử lý công việc kể trên. Trong thực tế, rất nhiều file không thay đổi nội dung trong thời gian dài. Nếu một trang web có 10 file (html, ảnh, js, css,..) thì mỗi lần bạn bấm F5 thì Browser phải thực hiện 10 lần kết nối đến Server. Bạn hãy hình dung, nếu lúc đó website có 1.000 lượt truy cập đồng thời thì tốc độ tải trang web sẽ rất chậm. WEB CACHE #1: Last-Modified
  • 2. Khi Server gửi nội dung về Browser thì kèm theo thuộc tính Last-Modified để xác định thời điểm sửa file (ví dụ: inet.png) lần cuối cùng. Ví dụ: Last-modified: Wed, 16 Oct 2013 05:00:25 GMT+7 Lúc này, Browser biết được file inet.png được tạo ra ngày 16/10/2013. Lần sau khi cần tải lại file này, nó sẽ gửi yêu cầu đến Server kèm theo header Last-Modifed. Server chỉ trả về nội dung nếu file đã được cập nhật. 1. Browser: Này ông! hãy gửi cho tôi file inet.png, nhưng chỉ gửi nội dung nếu file được cập nhật nội dung sau ngày 16/10/2013 2. Server: tìm file và kiểm tra thời điểm câp nhật cuối cùng 3. Server: Hey! bạn thật may mắn, file bạn đang có là bản cập nhật mới nhất (304 Not Modified) 4. Browser: OK! tôi sẽ sử dụng nội dung đã được cache. Như vậy, Server chỉ gửi 1 dòng thông báo "Not Modified" mà không phải gửi lại nội dung file. WEB CACHE #2: ETag Trong bước #1 vẫn còn một số vấn đề: (1) Vẫn phải kết nối nhiều lần đến server, tại server phải xử lý thời gian cập nhật file, (2) Nếu đồng hồ trên server bị sai lệch thì nội dung file vẫn được tải xuống Browser. Giải pháp #2 là sử dụng header ETag với giá trị là chuỗi số duy nhất cho tất cả các file trên server. Nó có thể là một mã Hash hay Footprint: mỗi file đều có footprint (dấu chân) duy nhất, nếu bạn thay đổi nội dung file (dù chỉ là 1 byte) thì footprint sẽ thay đổi. Thay vì gửi cho Browser thời gian cập nhật lần cuối, Server sẽ gửi mã ETag. Browser sẽ lưu lại file kèm theo mã ETag. Lần sau khi cần tải lại file này, nó sẽ gửi yêu cầu đến Server kèm theo header ETag. Server chỉ trả về nội dung nếu file đã được cập nhật.
  • 3. 1. Browser: Hãy gửi tôi file inet.png, nếu file đã thay đổi, mã etag 'ead145f' 2. Server: Kiểm tra footprint của file inet.png 3. Server: Hey file bạn yêu cầu chưa thay đổi nội dung (Not Modifed) 4. Browser: OK! tôi sẽ sử dụng nội dung đã được cache. Ví dụ: mã HTML khi tải file style.css trên trang SEOMaster.vn GET /style.css HTTP/1.1 Host: seomaster.vn User-Agent: Mozilla/5.0 (Windows NT)Firefox/24.0 Accept: text/css,*/*;q=0.1 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://inet.vn/ Connection: keep-alive If-None-Match: "inet-1331151434" Cache-Control: max-age=0 ----HTTP RESPONSE-----------------HTTP/1.1 304 Not Modified Date: Wed, 16 Oct 2013 03:45:28 GMT+7 Server: iNET WebServer 1.3 Connection: Close Etag: "inet-1331151434" WEB CACHE #3: Expires Cache theo cách #2 thì Browser vẫn phải kết nối nhiều lần đến Server để kiểm tra xem file có thay đổi nội dung. Thay vì để Browser hỏi nhiều lần, khi gửi file, Server sẽ gửi kèm header expires để thông báo rằng nội dung file sẽ không thay đổi cho đến thời điểm expires. Từ bây giờ đến lúc đó, bạn cứ lấy nội dung cache mà dùng, không phải phải hỏi nữa. Expires: Wed, 16 Oct 2013 05:00:25 GMT+7
  • 4. Không có kết nối Browser - Server. Browser tự kiểm tra nếu file còn thời hạn thì sử dụng luôn nội dung đã được cache. Điều này sẽ làm giảm bớt công việc của Server - dành thời gian làm việc khác. WEB CACHE #4: Max-Age Thông tin expires (ngày hết hạn) rất tuyệt vời, nhưng Browser phải liên tục tính toán thời gian. Giải pháp #4 là sử dụng header max-age - "file inet.png sẽ hết hạn trong 1 tuần kể từ hôm nay", đơn giản hơn so với việc sử dụng chính xác thời điểm hết hạn. Cache-Control: public | private | no-cache, max-age = n    Giá trị max-age được tính bằng giây, 1 giờ = 3600, 1 ngày = 86400.  No-cache: Browser và Proxy không được cache file này. Public: file có thể được cache bởi proxy hoặc các máy chủ trung gian Private: file có giá trị khác nhau cho từng người sử dụng. Browser có thể cache, nhưng các proxy không được cache. KIỂM TRA TRẠNG THÁI CACHE Như vậy là bạn đã biết cách thiết lập các HTTP Header để cache các nội dung trang web. Bạn có thể hỏi, làm sao tôi biết Browser và Server trao đổi với nhau bằng những Headers nào? Bạn hãy cài đặt addons Firefox có tên gọi 'Live HTTP Headers. Sau khi cài đặt, bạn chọn menu Tools >> Live HTTP Headers để bật chương trình, sau đó truy cập vào bất cứ trang web nào để xem các headers. Ngoài ra, nếu bạn đã cài addons Web Developer thì có thể dùng luôn tính năng Network, bằng cách chọn menu: Tools >> Web Developers >> Network; Sau đó truy cập vào các trang web trên website để kiểm tra.
  • 5.  Những file có trong danh sách là Browser có thực hiện kết nối tới Server  Những file có biểu tượng xanh sáng ở góc trái: Server gửi dữ liệu về Browser. Biểu tượng xám: Server không gửi dữ liệu, chỉ thông báo Not Modified. Khi viết bài này là lúc tôi vừa tối ưu xong việc cache cho toàn bộ hệ thống WEB.TIN.VN - Hệ thống xây dựng trang web bán hàng miễn phí. Tất cả các bài viết đã được xử lý cache, tốc độ tải trang web hiện tại là rất nhanh. Bạn có thể thử nghiệm truy cập vào InternetStartup.vn, InternetCoaching.vn,.. Chúc bạn thành công! Nguyễn Trọng Thơ – SEO Master Tham khảo thêm iNET.vn – Kiểm tra tên miền, tư vấn lựa chọn tên miền miễn phí. Marketing Online Master – Xây dựng doanh nghiệp trực tuyến Khóa học SEO SMART – Học SEO miễn phí trong 3H