Tải bản đầy đủ (.doc) (32 trang)

THỰC TẬP TIN HỌC CƠ SỞ ĐỀ TÀI: TÌM HIỂU WEB CACHING

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (719.13 KB, 32 trang )

TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤT
KHOA CÔNG NGHỆ THÔNG TIN
-----***-----

THỰC TẬP TIN HỌC CƠ SỞ
ĐỀ TÀI: TÌM HIỂU WEB CACHING
Giảng viên hướng dẫn
Lớp
Sinh viên thực hiện
MSV

Nguyễn Thị Thanh
CCCTCT59
Nguyễn Ngọc Thảo
1411050065

Hà Nội – 2016


ĐẶT VẤN ĐỀ
Cuộc cách mạng trong lĩnh vực công nghệ thông tin cùng sự ra đời của internet dẫn tới sự
bùng nổ việc truy cập và tìm kiếm thông tin trên các trang web. Thực tế đặt ra yêu cầu các trang
web phải ngày càng trở nên đơn giản, thân thiện với người sử dụng Với các trang Web, người sử
dụng có thể tìm kiếm và tải về nhiều thể loại hình thông tin trên mạng mà không cần phải có nhiều
hiểu biết về mạng. Đứng trên quan điểm của người sử dụng, họ không cần quan tâm đến việc thông
tin mà họ tìm kiếm ở một hệ thống ngay bên cạnh hay ở một nơi ở đầu kia của trái đất. Chính điều
này dẫn đến sự bùng nổ về lưu lượng trên các đường mạng trong khu vực. Chất lượng dịch vụ và
thời gian đáp ứng có thể được cải thiện bằng cách giảm tải cho mạng. Một cách để đạt được yêu cầu
này là sử dụng kỹ thuật Web caching. Kĩ thuật Web Caching ra đời đã nâng cao được hiệu quả
trong việc thực hiện tăng tốc các ứng dụng Web.
Bài báo cáo với mục đích tìm hiểu về web caching được chia làm các phần.


Phần 1: Các khái niệm có liên quan
Phần 2: Web caching là gì
Phần 3: Tác dụng của web caching
Phần 4: Các loại web caching
Phần 5: Quá trình web caching
Bài báo cáo được hoàn thành trong thời gian ngắn nên không tránh khỏi những sai sót. Do
vậy, rất mong nhận được ý kiến đóng góp của cô để hoàn thiện hơn.

1


Mục lục

Phần 1: Các khái niệm liên quan.......................................................................3
Phần 2: Web caching là gì?................................................................................7
Phần 3: Tác dụng của web caching....................................................................8
Phần 4: Các loại web caching.............................................................................9
Phần 5: Quá trình web caching........................................................................22
Tài liệu tham khảo.............................................................................................31

Hình ảnh
Hình 1.1: Hình ảnh về http và World wide web...............................................4
Hình 1.2: Client và server...................................................................................4
Hình 1.3: Proxy máy chủ ảo...............................................................................5
Hình 1.4: Cấu trúc mạng phân phối nội dung..................................................7
Hình 2.1: Cấu trúc hệ thống web caching.........................................................7
Hình 4.1: browser cache và proxy cache...........................................................9
Hình 4.2: proxy cache.......................................................................................17
Hình 4.3 Caching proxy thông thường............................................................18
Hình 4.4: Caching proxy trong suốt cấp độ router........................................18

Hình 4.5: Caching proxy trong suốt cấp độ switch........................................18
Hình 5.1: Hoạt động của web caching.............................................................22
Hình 5.2: Cấu trúc của web server..................................................................25
2


Hình 5.3 Sự kế thừa cache................................................................................26

PHẦN 1: CÁC KHÁI NIỆM LIÊN QUAN
World wide web: web toàn cầu, chủ thể chính của công việc web caching
HTTP: HyperText Transfer Protocol dịch là giao thức chuyển tải siêu văn bản là một giao
thức ứng dụng nằm trong bộ giao thức nền tảng TCP/IP và hoạt động dựa trên mô hình
client-server

3


Hình 1.1: Hình ảnh về http và World wide web
ICP: Internet Cache Protocol được sử dụng để phối hợp lưu trữ web. Mục đích của nó là để
tìm ra vị trí thích hợp nhất để lấy một đối tượng yêu cầu từ trong tình huống mà nhiều
cache được sử dụng tại một trang web duy nhất. Mục đích là để sử dụng bộ nhớ đệm một
cách hiệu quả nhất có thể, và để giảm thiểu số lượng các yêu cầu từ xa đến máy chủ nguồn.
Clien-server:
Client là các chương trình ứng dụng dùng để thiết lập kết nối với mục đích gửi đi các yêu cầu
cung cấp dịch vụ. Đó là các trình duyệt Web, các trình biên tập (editor) hoặc các công cụ
người sử dụng cuối khác. Các client thông dụng nhất thường chạy trên máy của người sử
dụng cuối
Server là chương trình ứng dụng dùng để chấp nhận kết nối với mục đích phục vụ các yêu cầu
cung cấp dịch vụ bằng cách gửi các đáp ứng trở lại phía yêu cầu. Đối với các hệ thống
cung cấp dịch vụ lớn, các chương trình này thường chạy trên các hệ thống phần cứng riêng

và thường được phân biệt là phần cứng server và phần mềm server.

Hình 1.2: Client và server
Một máy chủ Web (Web server) thì quản lý và cung cấp việc truy cập tới một tập hợp các tài
nguyên trên nó. Tài nguyên trên nó thì có thể đơn giản chỉ là các file văn bản, hình ảnh hoặc có thể
là các dữ liệu phức tạp hơn chẳng hạn như các cơ sở dữ liệu.
Trên nền tảng Web thì hầu hết các yêu cầu chủ yếu là các công việc download. Các máy
client thì download thông tin từ server. Trong trường hợp này chính nó gửi thông tin yêu cầu chứa
tên của tài nguyên cộng thêm với một vài thông tin từ phía client thì hồn tồn nhỏ (200 B) trong đó
thông tin download về thì thường là các dữ liệu văn bản hoặc hình ảnh với kích thước trung bình
khoảng 10000B. Đây chính là một trong những đặc điểm cơ bản của hệ thống Web. Tốc độ nhận dữ
liệu bao giờ cũng cao hơn tốc độ truyền dữ liệu đi bởi vậy hầu hết người sử dụng Web thì thường
xuyên nhận thông tin.
4


Web client thường dùng được gọi là trình duyệt (browser). Những ứng dụng này chẳng hạn
như là Nescape và Microsoft Internet Explore. Mục đích của những trình duyệt này là hiện thị nội
dung của một trang Web.
Có một số lượng lớn các server được sử dụng rộng rãi trên Web. Apache HTTP server là một
trong những server Web thông dụng và tồn tại miễn phí. Netcape , Microsoft và các công ty khác
cũng có một số các sản phẩm. Nhưng hầu hết tất cả các sản phẩm thì đều tập trung và hiệu năng của
các server. Một site nổi tiếng trên Net thì có thể nhận 10 triệu yêu cầu một ngày. Trong trường hợp
này thì cả phần cứng lẫn phần mềm đều phải được thiết kế một cách cẩn thận để có thể đáp ứng
được nhiều yêu cầu một lúc như vậy. Có rất nhiều site chạy trên nhiều server song song với nhau để
có thể đáp ứng được tỉ lệ cao các yêu cầu như vậy và còn phục vụ cho việc dự phòng.
ISP: Các nhà cung cấp dịch vụ internet.
Proxy
Một chương trình trung gian có thể hoạt động với vai trò của server hoặc của client nhằm mục
đích thay mặt các client tạo ra các yêu cầu. Yêu cầu được phục vụ tại chỗ hoặc chuyển qua các

proxy đến các server khác. Một proxy phải biết biên dịch và nếu cần có thể viết lại các thông điệp
yêu cầu trước khi chuyển tiếp yêu cầu. Các proxy thường được sử dụng như các bộ đóng gói phía
client qua các firewall của mạng và như các chương trình hỗ trợ để xử lý các yêu cầu thông qua các
giao thức không được triển khai ở phía người sử dụng.

Hình 1.3: Proxy máy chủ ảo
Cache
Một nơi lưu trữ tạm thời các bản tin đáp ứng của chương trình, một hệ thống phụ trợ điều
khiển việc lưu trữ, cung cấp và huỷ các tài liệu. Cache lưu các bản tin đáp ứng có thuộc tính có thể

5


lưu trữ được (cacheable) để giảm thời gian đáp ứng và bǎng thông tiêu thụ cho mỗi yêu cầu. Bất cứ
client hay server nào đều có thể có cache.
Mạng lưới cache server (caching mesh): hệ thống các caching server phối hợp hoạt động với
nhau.
Web cache server cục bộ (local cache): cache server chạy trên cùng một mạng LAN với
client.
Web cache server cấp một: Web cache server mà client của người sử dụng kết nối trực tiếp
đến . Loại này gần giống loại cục bộ.
Web cache server cấp cao (upper-level cache hay entry cache): nhìn từ phía client, tất cả các
cache tham gia vào mạng lưới caching không kết nối thẳng đến client là các cache server
cấp cao. Trong các loại Web cache server cấp cao có loại Parent cache được kết nối trực
tiếp đến Web server. Như vậy, trong một mạng lưới thì tên của các Web cache chỉ mang
tính chất tương đối.
Các đối tượng Web
“Đối tượng” ở đây có thể được hiểu là các loại dữ liệu khác nhau trên server chẳng hạn như
file audio, file Zip,.. Đối tượng Web thì có một số các đặc điểm quan trọng như kích thước, kiểu file
(HTML, image, audio..), thời gian tạo ra file, thời gian chỉnh sửa gần nhất.

CDN: Content Delivery Network- Mạng phân phối nội dung: Là mạng lưới gồm nhiều máy
chủ lưu trữ đặt tại nhiều vị trí địa lý khác nhau, cùng làm việc chung để phân phối nội
dung, truyền tải hình ảnh, CSS, Javascript, Video clip, Real-time media streaming, File
download đến người dùng cuối. Cơ chế hoạt động của CDN giúp cho khách hàng truy cập
nhanh vào dữ liệu máy chủ web gần họ nhất thay vì phải truy cập vào dữ liệu máy chủ web
tại trung tâm dữ liệu.

6


Hình 1.4: Cấu trúc mạng phân phối nội dung
PHẦN 2: WEB CACHING LÀ GÌ?

Hình 2.1: Cấu trúc hệ thống web caching
Caching là một kĩ thuật phổ biến dùng để tăng sự thực thi bằng cách thường xuyên lưu lại các
dữ liệu đã được truy cập hoặc dữ liệu lớn trong bộ nhớ. Trong khuôn khổ các ứng dụng Web thì
caching dùng để giữ lại các trang hoặc dữ liệu qua những yêu cầu của HTTP và sử dụng lại chúng
mà không cần phải tạo lại lần nữa. Nhìn chung, người sử dụng Web client sẽ chỉ nhận thấy độ trễ
rất thấp khi yêu cầu một URL, phía nhà quản lý mạng sẽ nhận thấy ít lưu lượng hơn và các Web
server có số lượng các yêu cầu cung cấp dịch vụ thấp hơn. Web client yêu cầu tài liệu từ Web
server hoặc trực tiếp hoặc thông qua Web cache server hay proxy. Web cache server có chức nǎng
như Web server khi nhìn từ phía client và có chức nǎng như client khi nhìn từ phía Web server.
Chức nǎng của Web cache server là lưu trữ các tài liệu Web (có thể là các trang HTML, các hình
ảnh hoặc các tệp tin) tại vị trí gần với người sử dụng để tránh phải chuyển về nhiều lần cùng một tài
liệu qua cùng một kết nối và do đó làm giảm thời gian tải về và tạo ra ít tải hơn trên các server đầu
xa
Web caching là ứng dụng ở cấp độ routing, và phần lớn băng thông dùng cho web toàn bộ
đường truyền có thể ảnh hưởng đến băng thông của hệ thống mạng (theo tín toán của UNINETT thì
50% băng thông dùng trong hệ thống mạng là dùng cho web) ISPs – Những nhà cung cấp dịch vụ thường thiết lập sẵn hệ thống kết nối ngang hàng với các ISPs khác trong cùng quốc gia (cấp độ
quốc nội) hoặc ở các nước khác (cấp độ quốc tế). Web caching ảnh hưởng mạnh đến băng thông

7


trên mạng. Các ISPs có thể tiết kiệm chi phí từ việc đưa ra những thỏa thuận với các ISP khác trên
web caching, từ đó có thể theo sự thỏa thuận được thiết lập trên hệ thống ngang hàng và thay đổi
đường truyền. Những chính sách trong quá trình hỗ trợ điều khiển web caching phải được phổ biến.
Những mạng lưới web cache (còn gọi là Web Cache Meshes) là việc kết hợp các server với
nhau thành một tổ chức mạng lưới Web caching đa cấp độ. Một mạng lưới có thể mở rộng một
trường đại học, hoặc một mạng hay vài mạng máy tính. Cấp độ web cache đầu tiên trong mạng lưới
có một hoặc nhiều neighbors và parents, việc không tìm thấy thông tin sẽ được giải quyết thông qua
parents. Một yêu cầu cho một tài liệu không có trong cache sẽ được đưa đến các máy neighbors
hoặc parents, sử dụng giao thức Internet Cache Protocol (ICP).
Web cache được đặt giữa các Web Servers (hoặc các server chính) và client (hoặc nhiều
clients). Web cache theo dõi các yêu cầu của các trang HTML, các hình ảnh và các tập tin (có thể
hiểu là các object – đối tượng) đưa ra bằng cách sao lưu lại một bản sao cho chính những đối tượng
đó. Sau đó, nếu các một yêu cầu khác cho cùng một đối tượng, nó sẽ sử dụng bản sao đang có, thay
vì phải hỏi lại server chính cho yêu cầu đó.
PHẦN 3: TÁC DỤNG CỦA WEB CACHING
3.1 Các lợi ích quan trọng của web caching là:
Giảm tải băng thông
Băng thông chính là dung lượng đường truyền mà dữ liệu đi qua. Bởi vì một số yêu cầu và
đáp ứng cần phải thông qua mạng máy tính. Mỗi đối tượng chỉ nhận được từ server khi có yêu cầu,
web caching làm giảm một lương băng thông chiếm dụng bởi client. Việc này giúp tiết kiệm tiền
nếu client phải trả tiền cho băng thông, và giữ cho các như cầu về băng thông hạ xuống và dễ dàng
quản lý.
Giảm gánh nặng cho server
Cũng giống như việc giảm băng thông thì việc giảm thời gian khi sử dụng server gốc. Các
server thì đáp ứng liên tục các yêu cầu từ phía các client. Một server rỗi thì chắc chắn sẽ nhanh hơn
so với server bận. Vì vậy chiến lược ở đây là sử dụng Web caching để giảm thời gian load dữ liệu
của các hệ thống server.

Hạn chế việc truy vấn trực tiếp vào cơ sở dữ liệu
Giảm thời gian truy vấn
Thời gian trễ chính là khoảng thời gian mà dữ liệu được chuyển từ nơi này đến nơi khác. Một
nguồn gốc khác của việc trễ mạng chính là ngẽn mạng. Khi các đường kết nối đã được sử dụng tối
đa thì các gói tin sẽ được xếp hàng trong các Router hay Switch. Khi các gói tin đã được xếp đầy
trong hàng đợi thì nó sẽ loại bỏ tất các các gói tin tiếp theo đến. Với những giao thức tin cậy như
TCP/IP việc mất gói tin thì tương đương với việc truyền lại gói tin. Vì vậy việc truyền lại sẽ gây
mất rất nhiều thời gian, làm giảm tốc độ của mạng trong việc truyền tin.
8


Web caching làm giảm khối lượng công việc của máy chủ Web từ xa bằng cách phổ biến dữ
liệu trong cache ủy quyền trong mạng diện rộng.
Nếu các máy chủ từ xa là không có sẵn do trục trặc hoặc mạng phân vùng máy chủ từ xa,
khách hàng có thể có được một bản sao lưu trữ tại các proxy. Do đó, sự vững mạnh của các
dịch vụ Web được nâng cao.
Một tác dụng phụ của bộ nhớ đệm Web là nó cung cấp cho chúng ta một cơ hội để phân tích
thói quen sử dụng của một cá nhân hay tổ chức.
3.2 Hạn chế của việc dùng web caching:
Những bất lợi chính là một khách hàng có thể nhìn vào dữ liệu cũ do thiếu proxy cập nhật
được đúng.
Độ trễ truy cập có thể tăng lên trong trường hợp của một cache do việc xử lý ủy quyền trên
nhiều proxy.
Một bộ nhớ cache proxy duy nhất luôn luôn là một nút cổ chai. Một giới hạn đã được thiết lập
cho số lượng khách hàng một proxy có thể phục vụ.
Luôn bị ép buộc thực thi
Sử dụng proxy cache có thể làm giảm lượt truy cập tới các nhà cung cấp dịch vụ dẫn tới việc
không thể đánh giá được hiệu quả của trang web. Do đó có thể không được áp dụng web
caching trong một số trường hợp
PHẦN 4: CÁC LOẠI WEB CACHING


Hình 4.1: browser cache và proxy cache
Có 3 loại web caching chính đó là:

9


4.1 Browser cache
Nếu chúng ta khảo sát những chọn lựa ưa thích trong bất kỳ một Web browser hiện đại (như
I.E, Safari hay Moziila), nhiều khả năng bạn sẽ chọn thiết lập "cache". Nó cho phép bạn đặt riêng
một phần ổ đĩa cứng trên máy tính của bạn để lưu trữ những gì mà bạn đã xem. Browser cache làm
việc theo một quy luật đơn giản. Nó sẽ kiểm tra những gì bạn đã xem được cập nhật hay chưa,
thường là một phiên thông tin.
Cache này đặc biệt có ích khi người dùng nhấn vào nút Back hoặc nhấn vào một liên kết đến
1 trang mà họ vừa mới xem. Ngoài ra, nếu bạn sử dụng cùng các hình ảnh liên kết trong suốt một
site, gần như ngay lập tức người dùng sẽ được đáp ứng từ caches của browser.
Các hướng browser cache:
4.1.1 HTML Meta Tags:
Là thẻ dùng để cung cấp các thông tin về website một cách tóm gọn đối với các trình duyệt
lẫn người dùng hay bot của các Search Engine
Kiểm soát Browser Cache
Khi bạn viếng thăm một trang web, thường thì trang web đó sau khi được tải xuống sẽ được
lưu trữ dưới dạng cache. Tuy nhiên, nếu các bạn không muốn trang web của mình được lưu trữ dưới
dạng cache
<meta http-equiv="Cache-Control" content="no-store" />
Thẻ meta này sẽ được nhận dạng với trình duyệt Firefox, Chrome và Internet Explorer. Với
trình duyệt IE các bạn có thể dùng thêm như sau :

<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />

Các bạn cũng có thể chèn thêm thời hạn hết hạn để đảm bảo rằng trình duyệt sẽ hiển thị
những file mới nhất từ server chứ không phải từ cache
<meta http-equiv="expires" content="Fri, 18 Jul 2014 1:00:00 GMT" />
Cấu hình Cookies
Tương tự như cache, cookies cũng là một dạng lưu trữ thông tin từ website đến máy người
dùng (Client). Thường thì cookies sử dụng rất nhiều ở những trang bán hàng. Để ấn định thẻ meta
các bạn có thể dùng :
<meta http-equiv="Set-Cookie" content="name=data; path=path; expires=Day, DD-MMMYY HH:MM:SS ZONE">
10


Giả sử các bạn muốn ấn định thời hạn hết hạn cookies từ máy người dùng vào ngày
31/01/2015 thì có thể sử dụng như sau :
<meta http-equiv="Set-Cookie" content="name=data; path=path; expires=Thursday, 01-Jan2015 00:00:00 GMT">
4.1.2 HTTP Headers
Các phương thức yêu cầu của HTTP
Ngồi các nhân tố khác để xác định có thể được lưu trữ đó là các phương thức yêu cầu.
Bảng dưới đây có thể chi ra một vài phương thức và khả năng lưu trữ của chúng.

Phương thức yêu
cầu

Khả năng lưu trữ

GET

Mặc định được lưu trữ

HEAD


Có thể được sử dụng để cập nhật các thông tin lưu trữ trước
Mặc đinh là không lưu; Nhưng sẽ lưu nếu Cache-control headers cho

POST

phép

PUT

Không bao giờ lưu trữ

DELETE

Không bao giờ lưu trữ

OPTIONS

Không bao giờ lưu trữ

TRACE

Không bao giờ lưu trữ

Ta có thể nhận thấy GET là phương thức yêu cầu phổ biến nhất và đáp ứng cho yêu cầu GET
thì mặc định sẽ được lưu trữ trong cache. Trong khi đó khi phương thức yêu cầu là POST thì nó chỉ
có thể được lưu trữ khi trong đáp ứng của nó gồm cả thời gian hết hạn và cho phép Cache-control
thay thế giá trị mặc định. Nhưng trong thực tế thì ít khi yêu cầu POST được lưu trữ.
Dưới đây là một gói HTTP header thông thường mà ta có thể dễ dàng bắt được bằng một vài
plugin cho firefox như Live HTTP Header
1. HTTP/1.1 200 OK

2. Date: Fri, 08 Nov 2013 04:41:40 GMT
11


3. Server: Apache/2.2.15 (CentOS)
4. Last-Modified: Sun, 11 Aug 2013 02:41:48 GMT
5. Etag: "1c253d-6c2-4e3a2f30b418d"
6. Accept-Ranges: bytes
7. Content-Length: 1730
8. Cache-Control: max-age=1209600
9. Expires: Fri, 22 Nov 2013 04:41:40 GMT
10. Keep-Alive: timeout=15, max=100
11. Connection: Keep-Alive
12. Content-Type: text/javascript
Reponse Headers
Với 1 request header thì có 1 reponse message (header + body) tương ứng. Các reponse
header chính :
Đầu tiên là version HTTP (thường là HTTP/1.1) và status code Date: thông tin ngày giờ mà
message gửi
Server: thông tin server
Content-Length: độ dài của body tính
Content-Type: kiểu dữ liệu: text/css, application/json, image/png, application/font-sfnt,
application/font-woff, text/html…
Cache-Control: ví dụ “max-age=7200, private, must-revalidate”, client sẽ cache như thế nào
phụ thuộc vào đây.
Etag: ví dụ :9d1-511bbb6dc4a00. Một chuỗi đại diện phiên bản của file, nó như một footprint
của file vậy.
Khuyết điểm khi dùng Last-Modified:
+ Múi giờ và thời gian của Server phải trùng với của client.
+ Vẫn yêu cầu xử lý trên server.

Do đó, có một cách khác là dùng Etag, nó là một chuỗi duy nhất được sinh ra bằng hash hoặc
footprint, tức là mỗi lần có thay đổi là Etag cũng sẽ bị đổi theo.
B1: Client EtagServer
B2: Server kiểm tra xem Etag có khớp không, nếu khớp chuyển tới B4.
12


B3: Nếu không khớp (có cập nhật mới), gửi HTTP response chứa file yêu cầu về cho
client. Tới B5.
B4: Gửi HTTP response chứa Status Code: 304 Not Modified.
B5: Kết thúc.
Expires: Thời gian hết hạn của file. Sau thời gian này phải lấy file mới từ server, file lưu trong
cache là file cũ.
Khuyết điểm của Etag: Vẫn phải kết nối tới server để kiểm tra trong mỗi request.
Ta cần tìm một cách nào đó để browser tự biết khi nào cần tải về. Expires trong HTTP Header
cũng giống như khi ta đặt expire time cho session. Browser sẽ tự biết khi nào file đó hết hạn để tài
về.
B1: Browser: check Experies, nếu còn trong Expiration thì chuyển tới bước 4.
B2: Nếu đã hết hạn (expired) thì gửi request tới server yêu cầu gửi file về.
B3: Server file requested  Client. Tới bước 4.
Bước 4: Kết thúc.
Expires headers sử dụng tốt nhất cho caching các hình ảnh tĩnh (như Navigation bar và các
button). Do đó ta có thể đặt một khoảng thời gian expired lớn.
Last-modified: File được sửa chữa lần cuối khi nào. So sánh thời gian sửa đổi cuối cùng để
xác định xem file này đã cập nhật nội dung nào mới chưa, nếu có thì tải về:
B1: ClientLast-modified Server
B2: Server: Lục file đó, kiểm tra Last-modified có khớp vs Last-modified của client không,
nếu khớp, tới B4.
B3: Nếu không khớp (tức là đã có cập nhật mới), gửi HTTP response chứa file yêu cầu về
cho client. Tới B5.

B4: Gửi HTTP response chứa Status Code: 304 Not Modified.
B5: Kết thúc.
Request header:
Host: ví dụ “nhacmt.com”, tên miền, ip của file muốn request.
User-Agent: Một chuỗi đại diện cho client, phân tích cái này sẽ biết được client là Firefox,
chrome, IE…phiên bản bao nhiêu, hệ điều hành là windows, mac, hay mobile thuộc dòng
nào phiên bản bao nhiêu.
Accept: Chấp nhận tài nguyên loại nào ví dụ image/png, text/css
13


Accept-Encoding: Chấp nhận kiểu nén nào, thường là “gzip, deflate”, sẽ cho biết server gửi
nội dung được mã hóa với gzip hoặc không đều được.
If-Modified-Since: Thời gian sửa đổi phiên bản file lưu ở local (cache).
If-None-Match: footprint của file ở local, ý nghĩa giống Etag ở trên.
Cache-Control: thường là “max-age=0”
Pragma: Vài giá trị có thể có ích, thường thấy là Cache: no-cache.
Reponse message phụ thuộc vào request message và file trên server. Còn request message phụ
thuộc vào Client (như browser) và người dùng.
Kiểu reload trang web
Nhưng có 3 cách để reload trang web, sau khi vào 1 trang web:
Vẫn trang đó, gõ lại url và enter, hay (click vào để sửa url và enter), hoặc Ctrl + L và enter
Reload, bấm nút reload hoặc dùng Ctrl + R
Force Reload, giữ Shift và bấm reload, hoặc dùng Shift + Ctrl + R
Mỗi cái browser sẽ gửi các HTTP header khác nhau và kết quả chạy trang web cũng khác
nhau.
Refresh sẽ
Lấy toàn bộ nội dung từ server (có thể cache nếu là HTML, không cache nếu nội dung động
như php)
Image, CSS, JS được cache. Gửi request lên server nếu là 304 Not modified thì lấy từ cache.

Các field client gửi lên để xem có thể lấy cache không thì If-Modified-Since và If-NoneMatch.
Cuộn trang giống lúc cuộn trang trước khi refresh. Cái này thì đúng.
Force Reload sẽ:
Lấy toàn bộ nội dung mới của trang web, bỏ qua cache. Header của từng file sẽ có CacheControl: no-cache và Pragma: no-cache.
Không cuộn trang như refresh
Form bị reset toàn bộ
Mở một url với cùng trang
Không cuộn trang
Form bị reset
14


Và mọi thứ đều sử dụng cache, kể cả file động (.php). Không gửi request lên server nếu file
vẫn còn thời hạn (lấy từ trường Expires của file mà server gửi xuống)
Một trong những nhân tố để xác định xem có thể lưu trữ đó các đáp ứng về bảo mật. Ba kí tự
chỉ trạng thái bảo mật cho tao biết yêu cầu có được đáp ứng thành công hay không hay có lỗi xảy ra
trong quá trình đáp ứng yêu cầu. Trạng thái bảo mật chia thành 5 nhóm
1XX: Thông tin quá trình giao dịch đang được tiến hành
2XX: Yêu cầu đã được nhận và đang được xử lý. Ngoài ra còn có
202 Accepted: request từ client đã được chấp nhận nhưng có thể server không trả về kết
quả cho client. Điều này hữu dụng trong trường hợp xử lý bất đồng bộ phía server:
server thông báo cho client không phải tiếp tục chờ đợi cho tới khi quá trình xử lý trên
server hoàn tất.
204 No content: không có phần message body trong response.
205 Reset content: tương tự như 204, nhưng mã trả về này yêu cầu client reset document
view.
206 Partial content: server chỉ gửi về một phần dữ liệu phụ thuộc và giá trị range header
client gửi lên. Giá trị này được sử dụng bởi các tool hỗ trợ download như wget, IDM
để phân mảnh dữ liệu thành nhiều phần nhằm tải về đồng thời hoặc hỗ trợ tiếp tục
download khi bị ngắt giữa chừng.

3XX: Server đang hướng Client tới một vị trí khác
301 Moved Permanently: resource đã được chuyển hoàn toàn tới địa chỉ trong trường
Location của response.
303 See Other: resource được chuyển tạm thời tới địa chỉ trong trường Location của
response.
304 Not Modified: resource không thay đổi từ lần cuối cùng client gửi request, và client
nên sử dụng dữ liệu đã lưu trong bộ nhớ cache. Điều này được thực hiện bằng cách khi
gửi request, client gửi đi trường ETag là định danh của phần dữ liệu đã request lần
trước, server so sánh với trường ETag ứng với dữ liệu của nó để kiểu tra sự thay đổi.
4XX: Có một lỗi xảy ra với yêu cầu của client.
400 Bad Request: request không đúng định dạng, cú pháp.
401 Unauthorized: client chưa xác thực.
403 Forbidden: client không có quyền truy cập.
404 Not Found: không tìm thấy resource.
405 Method Not Allowed: phương thức (HTTP verb) không được server hỗ trợ.
15


5XX: Một lỗi xảy ra trên server đối với một yêu cầu của Client
501 Not Implemented: server không hỗ trợ chức năng client yêu cầu.
503 Service Unavailable: một thành phần xử lý trên server bị lỗi hoặc server bị quá tải.
4.2 Proxy cache
Web proxy cache làm việc cùng nguyên tắc với browser cache, nhưng ở phương diện rộng
lớn hơn. Proxies đáp ứng hàng trăm hoặc hàng ngàn users cùng một cách thức; những tập đoàn lớn
và IPS thường thiết lập chúng trên các firewalls, hoặc như một thiết bị độc lập (thường hiểu như là
những phương tiện trung gian).
Bởi vì proxy cache không phải là một phần của client hay server chính, nhưng thay vì ra
ngoài hệ thống mạng thì bằng cách này hay cách khác những yêu cầu phải được chuyển cho chúng.
Một cách để thực hiện việc đó là sử dụng thiết lập proxy của browser để cho browser biết cần phải
sử dụng proxy nào, hoặc sử dụng interception. Các interception proxy có các yêu cầu web chuyển

đến cho chúng bởi chính hệ thống mạng, do đó clients không cần thiết phải cấu hình hoặc hiểu về
nó.
Caching proxy thì cần thiết đối với rất nhiều tổ chức như các nhà cung cấp dịch vụ Web, các
tổng công ty lớn, các trường đại học, viện nghiên cứu. Caching Proxies thì thường được đặt ở các
gateway (như router) hay nói một cách khác thì nó thường được sử dụng để có thể phục vụ một số
lượng người lớn nhất
Những proxy cache là một dạng của shared cache; nó không chỉ được sử dụng bởi một người,
mà nó thường có một lượng lớn users, và bởi vì nó rất tốt cho việc giảm những nguy cơ tiềm ẩn và
đường truyền mạng. Đó là lý do các thông tin lướt trên web tiết kiệm được nhiều thời gian

16


Hình 4.2: proxy cache
4.2.1 Hoạt động của proxy cache
Bước 1: Một người dùng mở ra một trang web có chứa nội dung tĩnh như âm nhạc, video, bản
thảo
Bước 2: Trình duyệt của người dùng sẽ tự động kết nối với máy chủ proxy. Đây có thể là một
mạng lưới phân phối các nội dung được đặt tại nhiều nơi trên thế giới
Bước 3: Trình duyệt yêu cầu tài nguyên từ máy chủ proxy. Máy chủ proxy kiểm tra xem tài
nguyên yêu cầu có hay không? Nếu có là cũ hay mới, nếu là gần đây hay thiếu proxy lấy
một bản sao chép từ nguồn
Bước 4: Các proxy cung cấp các tài nguyên cho trình duyệt. Nếu proxy đã phải lấy một bản
sao mới, nó lưu trữ các bản sao để sử dụng trong tương lai.
4.2.1 Caching đúng nghĩa (caching hiện hữu)
Một vài hệ thống cache ủy quyền được triển khai theo dạng tùy chọn được thiết lập bởi người
dùng. Người dùng chỉ định một cache server cho browser như một proxy agent, sau đó browser sẽ
chuyển tất cả các request đến proxy cache. Người dùng có thể bật hoặc tắt tùy chọn này tại mọi thời
điểm, đảm bảo client được truyền thông trực tiếp với server gốc. Khi gặp phải lỗi, một số trình
duyệt hiện đại cũng có cơ chế tự động tắt proxy cache để truy cập trực tiếp. Trong chế độ proxy

cache, địa chỉ đích nằm dưới tầng transport là địa chỉ của server cache, trong khi nội dung HTTP
không đổi. Kiểu mô hình cache như trên có thể được triển khai bên trong một mạng cục bộ của
17


client, với mục đích giảm thiểu lưu lượng (traffic) đến ISP. Thêm vào đó, ISP có thể hoạt động như
cache tự nguyện(voluntary cache) phục vụ các client của nó. Nếu ISP hoạt động ở chế độ này, giữa
người dùng (client) và ISP phải có sự ngầm định cũng như client phải nhận biết được vị trí của
cache khi cấu hình local browser.

Hình 4.3 Caching proxy thông thường
4.2.2 Caching “trong suốt” (transparent caching)

Hình 4.4: Caching proxy trong suốt cấp độ router

Hình 4.5: Caching proxy trong suốt cấp độ switch

18


Việc sử dụng cache đối với toàn bộ lưu lượng Web có thể được chỉ định bởi ISP mà không
cần cấu hình hiện hữu để nhận dạng các proxy cache trong các browser của người dùng (client).
Nguyên tắc đã chỉ ra rất rõ ràng, tuy nhiên có rất nhiều cách khác nhau để triển khai. Kĩ thuật
caching này được gọi là caching “trong suốt” (transparent caching).
Với việc caching này, người dùng, browser của người dùng không cần nhận thức chính xác
rằng việc ISP đang sử dụng caching khi xử lý các request của họ. Ở đây mạng sẽ phải cắt đi các bản
tin HTTP có đích đến các Web server từ xa (remote Web server), thay vào đó sẽ gửi trả lại các bản
tin có trong proxy cache. Một khi page đã được xác định, tùy theo các sự kiện “hit” hay “miss” mà
cache sẽ trả lại yêu cầu ban đầu của client bằng cách giả định là đích đến ban đầu của bản tin
request

Cần lưu ý là các cơ chế trên không phải hoàn toàn trong suốt đối với Web client và Web
Server. Nếu Web server sử dụng mô hình truy cập bảo mật đầu cuối, việc caching “trong suốt” có
thể không thực hiện được vì cache sẽ đưa ra địa chỉ của nó chứ không phải địa chỉ của client. Việc
này dẫn đến các page bị từ chối khi yêu cầu cache, trong khi client có thể hoàn toàn giao dịch trực
tiếp với server. Những tình huống sử dụng cache được ủy quyền do các chức năng lọc và ép buộc,
qua hệ thống chuyển hướng “trong suốt”, người dúng sẽ không thể nhìn thấy cách khắc phục, làm
cho sự thất vọng về toàn bộ dịch vụ cache tăng lên nhanh chóng.
Một vài trường hợp ta vẫn có thể giải quyết vấn đề này. Một cách tiếp cận là khi có lỗi lấy dữ
liệu cache (cache fetch error) thì ta sẽ kích khởi hệ thống con cache, thiết lập ra một phiên HTTP
với nội dung gửi đến server có địa chỉ nguồn là của client, sau đó truyền đi bản tin yêu cầu HTTP
GET đến server. Phản hồi (respone) của server sau đó sẽ được truyền đến client thông qua một cầu
TCP (một cầu TCP là nơi thiết bị kết nối được yêu cầu để dịch ra các chuỗi sequence number của
các TCP header giữa hai phiên TCP). Các hệ thống con cache chặn bắt các packet của server gửi
đến client đòi hỏi sự phối hợp chặt chẽ với cả cache router, nên hoạt động của TCP bridge khá phức
tạp, vì vậy mà phương pháp này thiếu đi sự ổn định. Một cách tiếp cận nữa là chỉ định cache server
truyền ngược trở lại client một bản tin TCP RST, chỉ dẫn cho cache router thêm một đầu vào tạm
thời trong bộ lọc chuyển hướng để tất cả các kết nối TCP cổng 80 từ client sẽ được đến server gốc
mà không bị chuyển hướng đến cache nữa.
Nếu cách thiết lập cache chỉ có một lợi ích duy nhất là tăng cường tốc độ truy nhập mạng của
khách hàng thì ISP phải biết rõ hiệu năng của hệ thống cache phải được duy trì để đáp ứng được tất
cả các Web request, nằm trong khả năng của ISP. Sự kiện cache “hit” duy trì ở mức ổn định sẽ cho
phép client truy cập nhanh hơn khi truy cập đến server gốc. Sự kiện cache “miss” phải ở mức độ
nhất định để tốc độ truy cập không thấp hơn quá nhiều khi so sánh với phương pháp truy cập trực
tiếp đến trang web gốc. Nếu hiệu năng của cache không được đảm bảo cho người dùng, thì lợi ích
hướng đến người dùng sẽ mất. Trong trường hợp đã lựa chọn kĩ thuật caching, thì người dùng sẽ tắt
tùy chọn cache trong browser của họ và quay lại cách thức truy cập trực tiếp. Mô hình kinh doanh
của cache là giá thành hoạt động và vốn bỏ ra đi cùng với lưu lượng cục bộ tại các vùng để giảm
19



thiểu chi phí cho ISP, khi so sánh với mạng không cache. Việc cắt giảm chi phí có thể được chuyển
cho tất cả người dùng thông qua hoạt động của toàn bộ dịch vụ với một mức giá thấp hơn hoặc
chuyển chọn lọc cho những khách hàng sử dụng bộ nhớ cache thông qua một số hình thức cước sử
dụng cache.
Mô hình chung của việc áp dụng giảm chi phí cước dịch vụ của ISP chắc chắn là một lợi thế
trong một thị trường cạnh tranh giá. Tuy nhiên, trừ khi hiệu suất của bộ nhớ cache rất cao, và độ
trong suốt của cache là gần hoàn hảo, mỗi người dùng cá nhân vẫn có thể sử dụng phương pháp
truy cập trực tiếp. Mô hình kinh doanh khác là phải vượt qua các khoản tiết kiệm chi phí cận biên
cho những khách hàng sử dụng bộ nhớ cache, và ở một mức độ tương ứng với sử dụng bộ nhớ
cache của khách hàng và hiệu quả của nó trong hoạt động ở tốc độ truy cập cache cao. Ví dụ, các
ISP sử dụng một mô hình tính phí bao gồm một thành phần thuế dựa trên số lượng dữ liệu chuyển
cho khách hàng trong thời gian tính phí, phần thuế này có thể được điều chỉnh bằng lượng sử dụng
của khách hàng được thực hiện bởi hệ thống bộ nhớ cache và hiệu quả hoạt động của các bộ nhớ
cache trong việc tạo ra lượt truy cập bộ nhớ cache.
Ví dụ, nếu lưu lượng bị tính phí $ 100 cho mỗi gigabyte được truyền tới khách hàng, sự giảm
giá có thể được tính cho lưu lượng nhận được từ bộ nhớ cache web. Nếu tốc độ truy cập trung bình
bộ nhớ cache 30 %, sau khi thanh toán chi phí thiết bị và hỗ trợ hoạt động, lưu lượng từ bộ nhớ
cache có thể được tính 80$ cho mỗi gigabyte. Ở đây, lợi ích của việc sử dụng bộ nhớ cache Web
được thể hiện trực tiếp với những khách hàng sử dụng bộ nhớ cache, cả hai bên đều được hưởng
mức thuế thấp hơn và tỷ lệ thuận với việc sử dụng bộ nhớ cache và đồng thời có được hiệu suất cao
nhờ sử dụng bộ nhớ cache. Quá trình thanh toán theo mô hình tiếp thị này chắc chắn liên quan
nhiều hơn đến quá trình, liên quan đến hệ thống thanh toán bổ sung và xử lý việc sử dụng bộ nhớ
cache để có cái nhìn chính xác về lượng sử dụng cache của người dùng. Ngày càng trở nên rõ ràng
rằng một mô hình kinh doanh mạnh mẽ kết hợp với một mô hình sử dụng tùy ý của một bộ nhớ
cache Web là cách tiếp cận đến một đơn vị tính giá thấp hơn cho lưu lượng. Bằng cách này, người
dùng thấy động lực lợi ích tài chính trực tiếp trong việc lựa chọn sử dụng hệ thống bộ nhớ cache.
Khi các nhà cung cấp triển khai bộ nhớ đệm ẩn hoặc bắt buộc, điều đó đã chuyển những lợi ích của
bộ nhớ đệm vào một cấu trúc giảm giá chung cho tất cả các khách hàng và tạo ra một mô hình kinh
doanh tốt hơn.
4.3 Gateway cache

Thường được biết đến như là "reverse proxy cache" hoặc "surrogate cache", gateway cache
thường là đóng vai trò trung gian, nhưng thay vì được triển khai bởi nhà quản trị mạng để tiết kiệm
băng thông, nó còn được triển khai bởi các Webmasters (nhà thiết kế, quản trị và bảo trì web site),
để cho web site của họ có khả năng mở rộng, đáng tin cậy và tối ưu nhất.
Các yêu cầu có thể chuyển đến gateway caches bởi nhiều phương thức, nhưng điển hình một
số tổ chức cân bằng tải được dùng để tạo ra một hay nhiều phương thức cho server đến các clients.

20


Content delivery networks (CDNs) distribute gateway caches thông qua internet (hoặc một
phần của nó) và bán caching cho những web sites được yêu thích. Speedera và Akamai là những ví
dụ của CDNs.

21


PHẦN 5: QUÁ TRÌNH WEB CACHING

Hình 5.1: Hoạt động của web caching
5.1 Web caching hoạt động như thế nào ?
Tất cả các hệ thống cache đều sử dụng một bộ nguyên tắc để xác định thời điểm cung cấp các
đối tượng (hay các tài liệu Web), tất nhiên là với điều kiện các đối tượng đó đã được lưu
trong cache. Trường hợp các đối tượng được yêu cầu chưa được lưu sẵn trong cache thì
cache server sẽ gửi yêu cầu đó đến server gốc. Một số nguyên tắc được thiết lập trong các
giao thức HTTP/1.0, HTTP/1.1 và một số khác được thiết lập bởi những người quản trị
cache (có thể là người sử dụng browser cache hoặc người quản trị proxy).
B1 : client 1gửi yêu cầu muốn truy cập www.msserverpro.com
B2: yêu cầu được xử lý bằng TMG 2000
B3: xác định yêu cầu truy cập thành công đưa yêu cầu vào internet

B4: đối tượng được gửi từ internet được đặt cache
B5: có 1 yêu cầu từ các client khác muốn truy cập www.msserverpro.com
B6: đối tượng được gửi từ cache

22


5.2 Các nguyên tắc chung
Nếu phần tiêu đề của đối tượng cho cache biết không phải lưu đối tượng thì cache không lưu
đối tượng đó. Nếu biến logic xác nhận (biến validator) không xuất hiện, phần lớn các
cache sẽ đánh dấu đối tượng là không thể lưu (uncacheable).
Nếu đối tượng có yêu cầu nhận thực hay bảo mật, nó sẽ được lưu.
Một đối tượng được lưu được coi là còn tươi - "fresh" (có nghĩa là có thể được gửi tới client
mà không cần sự kiểm tra của server gốc)
Nó có thời gian tồn tại (hoạt động theo dạng một loại bộ đếm) còn nằm trong khoảng thời
gian fresh (chưa quá hạn)
Nếu một browser cache đã từng hiển thị đối tượng và đối tượng này đã được đánh dấu là đã
kiểm tra trong một phiên trước đó.
Nếu proxy cache mới xử lý nó gần đây và nó đã được sửa đổi trước đó tương đối lâu. Các đối
tượng fresh được lấy trực tiếp từ cache mà không cần kiểm tra với server gốc.
Nếu một đối tượng được coi là cũ, server gốc sẽ được yêu cầu xác nhận đối tượng hoặc báo
cho cache rằng đối tượng đó vẫn còn giá trị sử dụng.
Quá trình xác nhận và kiểm tra xem đặc tính "fresh" của đối tượng là những biện pháp quan
trọng giúp cache làm việc với các đối tượng. Một đối tượng "mới" sẽ khả dụng tức thời từ cache,
trong khi một đối tượng "phải xác nhận" (validated) sẽ tránh phải gửi lại một lần nữa từ server gốc
nếu nó không có gì thay đổi.
5.3 HTTP requests
Client thì luôn sử dụng HTTP khi chúng giao tiếp với proxy. Điều này cũng đúng khi client
yêu cầu một FTP hoăc Gopher URL. Client sẽ đưa ra những yêu cầu không khác nhau là mấy đối
với proxy server cũng như đối với server gốc. Trong trường hợp này thì các yêu cầu được tham

chiếu tới proxy được xem như là yêu cầu proxy HTTP.
5.4 Tổ chức cấu trúc web server
Một hệ thống WebHint bao gồm "hint server" - nó sẽ tự động cập nhật thông tin được liên kết
với các cache server lân cận để giảm số gói tin được trao đổi giữa các cache servers và giảm thời
gian đáp ứng cho người dùng cuối.
Ta cấu hình cache server như sau: Chúng ta thực hiện quyết định quản trị trong việc cấu hình
cấu trúc cache. Khi có 4 cache server và 2 hint servers trong hệ thống, việc cấu hình của host
"cache2" trên hệ thống cache thông thường như sau

23


# hostname

type

HTTP/ICP

port

#cache_host

Cache1

sibling 3128

3130

#cache_host


Cache2

sibling 8000

8130

#cache_host

Cache3

sibling 3128

3130

#cache_host

Cache4

sibling 8888

3130

Việc cấu hình cache server trên hệ thống web hint tương tự như sau:

## hostname

type

HTTP/ICP


port

#cache_host

hints1

Hintserver 0

4649

#cache_host

hints2

Hintserver 0

4649

Quản lý như trên sẽ giảm nhiều thời gian cần thiết cho cấu hình ban đầu và quản trị thông
thường. Khi một cache server mới được thêm vào, chúng ta thấy được hint server gộp các thông tin
của chúng trong hint data và tất cả cache servers làm việc với nhau dưới hint server. Tương tự, khi
cache server bị lỗi, hint server sẽ ngưng việc gộp thông tin của chúng sau một khoảng thời gian.
Một hệ thống WebHint bao gồm 4 phần:
1.

Những server www chính.

2.

Các WWW client cùng với trình duyệt (browsers).


3.

Các Cache servers.

4.

Các hint servers

24


×