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

Cách thức hoạt động của một trang Web, tìm hiểu về Web Caching và sau đó là phân tích thiết kế và xây dựng hệ thống

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 (1.6 MB, 70 trang )

Đồ án tốt nghiệp
Lời cảm ơn
Em xin chân thành cảm ơn cô giáo Dỗn Hồ Liên là người đã trực tiếp hướng
dẫn em trong quá trình thực hiện đồ án này. Cô đã nhiệt tình chỉ bảo, giải đáp mọi
thắc mắc, cung cấp các kiến thức cần thiết giúp em hồn thành đề tài. Quan trọng hơn,
cô là người định hướng để em tiếp cận được với phương pháp nghiên cứu khoa học
nói chung và phương pháp nghiên cứu thực hiện phân tích, thiết kế một ứng dụng
thực tế. Qua đây em cũng xin được cảm ơn các thầy cô trong khoa CNTT đã tận tình
dạy bảo em trong 5 năm học tại trường cùng các bạn sinh viên đã đóp góp những ý
kiến quý báu cho chương trình.
Đỗ Hải Nam - KHMT - K46 Trang 1
Đồ án tốt nghiệp
I.3.1 Internet Information Server làm việc như thế nào ?.........................................4
I.4 Web Browser URL Request................................................................................................4
I.5 Web Server Response..........................................................................................................5
I.8 Sử dụng Internet Information Server như thế nào ?......................................................6
CHƯƠNG III: NGÔN NGỮ ACTIVE SERVER PAGE (ASP)........................................26
III.1 Active Server Pages là gì?..............................................................................................26
III.2 Mô hình của Active Server Pages.................................................................................26
III.2.1 Cách viết các file ASP Script..........................................................................26
III.2.2 Cú pháp của ASP..............................................................................................27
III.4 Sử dụng các method.......................................................................................................30
III.5.1 Request object...................................................................................................31
III.5.2 Response object.................................................................................................31
III.5.3 Session object.....................................................................................................32
III.5.4 Application object.............................................................................................32
III.5.5. Server object.....................................................................................................33
III.12 Sử dụng các Component của ASP.............................................................................36
III.12.2 Database Access Component.........................................................................37
III.13.2 Các sự kiện Application-start và Session-start............................................40
III.13.3 Các sự kiện Application-end và Session-end.......................................40


III.13.4 Kết thúc một Session.......................................................................................41
III.13.5 Quản lý các Session.........................................................................................41
III.13.6 Quản lý Application........................................................................................42
III.13.7 Hoạt động của Component....................................................................43
IV.1.1 Tổng quan về học và thi trắc nghiệm trực tuyến....................................44
IV.3.1.1 Đăng nhập.......................................................................................................46
IV.3.1.2 Thay đổi mật khẩu.........................................................................................47
LỜI NÓI ĐẦU
Từ khi xuất hiện cho đến nay, World Wide Web ngày càng trở nên phổ biến,
là một phương tiện truy nhập mạng đơn giản và rất 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ề rất 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 quả đất. Chính điều này dẫn đến
sự bùng nổ về lưu lượng trên các mạng đường trục khu vực. Việc sử dụng dịch vụ
Web đang tǎng theo cấp số mũ, lưu lượng WWW trên các mạng Internet quốc gia và
quốc tế cũng tǎng đột biến. Và Việt Nam cũng không thể nằm ngồi vòng xốy của cơn
lốc WWW, các cổng giao tiếp điện tử, các hệ thống E-leanrning đang là những ứng
dụng mới và đang được áp dụng ở Việt Nam. Các ứng dụng này trong tương lai sẽ
càng phát triển mạnh hơn cùng sự phát triển của hạ tầng mạng máy tính và đòi hỏi tin
học hố ngày càng cao của xã hội. Tuy nhiên để có được sự phát triển rộng rãi đó
không phải là vấn đề đơn giản. Các hệ thống này càng phát triển thì người ta càng
thấy thêm nhiều hạn chế, cản trở của cơ sở hạ tầng mạng cũng như các giải pháp sẵn
có. Thứ nhất, mặc dù mạng máy tính đang ngày một phát triển nhưng với điều kiện
Đỗ Hải Nam - KHMT - K46 Trang 2
Đồ án tốt nghiệp
của nước ta, cơ sở vật chất hạ tầng mạng máy tính vẫn còn rất thấp kém. 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.
Cùng với việc nghiên cứu về Web Caching, trong khuôn khổ đồ án tốt nghiệp
này em cũng xây dựng một Website nhằm hỗ trợ cho các bạn học sinh, sinh viên
những người quan tâm đến kiến thức về hạ tầng mạng cơ sở, nhằm đem lại một kiến
thức tốt nhất trong việc xây dựng và bảo tŕ một hệ thống mạng máy tính.
Đồ án của em sẽ trình bày lần lượt các khái niệm về Internet, cách thức hoạt
động của một trang Web, tìm hiểu về Web Caching và sau đó là phân tích thiết kế và
xây dựng hệ thống.
Đồ án được chia làm 5 chương với nội dung chính như sau:
Chương I : Tổng quan về Internet và Intranet
Chương này sẽ đưa ra các khai niệm cơ bản về Internet, về Web và cách thức
mà một trang Web hoạt động trên Internet
Chương II : Tìm hiều về Web Caching
Chương này sẽ đưa ra những khái niệm cơ bản của Web Caching. Giải pháp
để tối ưu hố tốc độ duyệt Web và cách cài đặt Web Caching trên các máy Client
Chương III :Tìm hiều ngôn ngữ ASP (Active server Page)
Tìm hiểu công cụ ASP ngôn ngữ lập trình VB script để xây dựng hệ thống
Chương IV : Phân tích và thiết kế hệ thống
Đưa ra những phân tích về chức năng, thiết kế hệ thống cơ sở dữ liệu để có
thể triển khai hệ thống.
Chương V : Cài đặt và thử nghiệm
Đưa ra được một số hình ảnh minh hoạ của hệ thống.
CHƯƠNG I: TỔNG QUAN INTERNET - INTRANET
I.1 Internet là gì ?
Internet là một mạng máy tính tồn cầu sử dụng một ngôn ngữ truyền thông
chung nó tương tự như một hệ thống điện thoại quốc tế nhưng nó được nối kết theo
cách làm việc của một mạng lớn.
World Wide Web (WWW) cho ta một hình ảnh dễ dàng giao tiếp và tìm kiếm
dữ liệu trên Internet. Các dữ liệu này được liên kết với nhau thông qua trang Web.
Các file, các trang được nối kết với nhau thông qua các mối liên kết là text hoặc hình

ảnh được gọi là HyperLink.
Các trang Web có thể chứa văn bản, hình ảnh, phim, âm thanh. Các trang này
có thể được đặt trên một máy tính ở nơi nào đó trên thế giới. Khi ta nối kết tới
Internet ta có thể truy xuất thông tin trên tồn cầu.
HyperLink là các text hay hình ảnh mà được gắn địa chỉ Web trên đó. Bằng
cách click vào hyperlink ta có thể nhảy tới một trang thành phần của một Web site.
Mỗi một Web site có một trang chủ của Web site đó và có một địa chỉ duy nhất được
Đỗ Hải Nam - KHMT - K46 Trang 3
Đồ án tốt nghiệp
gọi là Uniform Resource Locator (URL). URL xác định chính xác tên của máy tính
và đường dẫn tới một trang Web xác định.
I.2 Intranet là gì ?
Intranet dựa vào TCP/IP Network nhưng không nối kết tới Internet mà chỉ sử
dụng chuẩn truyền thông Internet và các công cụ của nó dùng để cung cấp thông tin
tới người sử dụng trên một mạng riêng. Ví dụ một công ty có thể cài đặt một Web
server chỉ cho các thành viên của công ty trao đổi thư từ tin tức,thông tin thương
mại...Các thành viên truy xuất thông tin bằng cách dùng các Web browser.
I.3 Internet Information Server là gì ?
Internet Information Server (IIS) là một Web server cho phép ta công bố thông
tin trên mạng Intranet hay Internet. Internet Information Server truyền tải thông tin
bằng cách dùng Hypertext Transfer Protocol (HTTP), Internet Information Server
cũng có thể dùng phương thức FTP hoặc Gopher.
I.3.1 Internet Information Server làm việc như thế nào ?
Web là một hệ thống yêu cầu (Request) và đáp ứng (Response). Web browser
yêu cầu thông tin bằng cách gửi một URL tới Web server, Web server đáp ứng lại
bằng cách trả lại một trang HTML cho Web browser.
HTML có thể là một trang Web tĩnh được lưu sẵn ở trên Web server hoặc có
thể là một trang Web động mà server tạo ra khi đáp ứng yêu cầu của người sử dụng
hoặc là một trang ở thư mục nào đó trên server.
I.4 Web Browser URL Request

Mỗi trang Web trên Intranet hoặc Internet có một URL duy nhất. Web browser
yêu cầu một trang bằng cách gửi một URL tới một Web server. Web server sử dụng
thông tin trong URL để xác định và cho hiển thị trang Web theo yêu cầu của
Browser.
Cú pháp URL là một chuỗi văn bản tuần tự gồm có : Protocol, Domain Name,
và đường dẫn (Path) tới thông tin yêu cầu. Protocol là chuẩn truyền thông dùng để
truyền tải thông tin như là : HTP, FTP và Gopher. Domain Name chính là Domain
Name System (DNS) của máy tính chứa thông tin. Path là đường dẫn tới thông tin
yêu cầu trên máy tính.Ví dụ :
Phương thức Tên Domain Đường dẫn (Path)
Http:// www.microsoft.com /backoffice
Https://
(secure HTTP)
www.company.com /catalog/orders.htm
Đỗ Hải Nam - KHMT - K46 Trang 4
Đồ án tốt nghiệp
Gopher:// gopher.college.edu /research/astronomy/index.htm
ftp:// orion.bureau.gov /stars/alpha quadrant/starlist.txt
Một URL cũng có thể chứa thông tin mà Web server cần phải xử lý trước khi
trả lại một trang, dữ liệu trong URL được gắn thêm vào cuối đường dẫn. Web server
gửi dữ liệu này tới một chương trìng hay một Scirpt để xử lý và trả lại kết quả trong
một trang web.Ví dụ :
Request Type URL
Static HTML page />ISAPI application />Internet Database Connector />Common Gateway Interface
(CGI) script
/>I.5 Web Server Response
Web server đáp ứng yêu cầu của Web browser bằng cách trả lại một trang
HTML. Trang trả lại có thể là trang HTML tĩnh, trang HTML động hoặc là trang
trong danh sách thư mục.
I.6 Trang HTML tĩnh (Static Page)

Một trang HTML tĩnh là trang đã được chuẩn bị sẵn cho các yêu cầu nhất định
và được đặt sẵn trên Web server. Người sử dụng yêu cầu một trang HTML tĩnh bằng
cách gõ trực tiếp URL hoặc là Click vào Hyperlink của URL nào đó, URL được gửi
tới server. Server đáp ứng bằng cách trả lại trang HTML tĩnh.
I.7 Trang động (Dynamic Page)
Các trang động được tạo ra trong quá trình đáp ứng cho yêu cầu của người sử
dụng. Một Web browser thu thập thông tin bằng cách thực hiện một trang có các
Textbox, Menu, Checkbox... cho phép người sử dụng điền vào hoặc lựa chọn. Khi
người sử dụng click vào một nút (button) trên Form, dữ liệu từ Form được gửi tới
Web server. Server đưa dữ liệu này tới một Script hoặc một trình ứng dụng để xử lý.
Sau đó server gửi lại kết quả cho browser bằng một trang HTML. Ví dụ sau đây cho
phép ngưới sử dụng gửi một yêu cầu tới một Internet Server API (ISAPI), ứng dụng
này dùng để cộng 2 số. Ngưới sử dụng ngập 2 số được cộng sau đó click một button
để gửi 2 số đó tới web server. Web server gọi một ISAPI để cộng 2 số, sau đó trả lại
kết quả cho browser bằng một trang HTML.
Đỗ Hải Nam - KHMT - K46 Trang 5
Đồ án tốt nghiệp
Minh họa sau đây cho phép người sử dụng truy cập vào database bằng cách
dùng Internet Database Conector. Người sử dụng hồn thành một Form sau đó click
vào một button để gửi dữ liệu tới server. Server nạp dữ liệu vào database sau đó trả
lại một trang HTML kết quả cho browser.
I.8 Sử dụng Internet Information Server như thế nào ?
Internet Information Server đủ khả năng đáp ứng các chức năng quan trọng cho các
tổ chức khác nhau. Chúng ta có thể sử dụng một Server cho một Web site hoặc cũng
có thể sử dụng nhiều server cho một Web site. Một trong những nhân tố để xác định
cấu hình Internet Information Server là nó được sử dụng bên trong nội bộ của một
mạng Intranet hay nó được nối kết tới Intetnet.
Các kịch bản sau đây giúp ta hiểu thêm phạm vi và khả năng sử dụng của
Internet Information Server.
Đỗ Hải Nam - KHMT - K46 Trang 6

Đồ án tốt nghiệp
I.9 Các kịch bản Intranet
Trong một nhóm(Workgroup) ta có thể tích hợp Internet Information Server
với một Server. Web server của Workgroup có khả năng tổ chức các loại trang web
để đáp ứng cho các ứng dụng trong workgroup như là cho phép giao tiếp với
Database SQL hay là cho phép truy xuất tài nguyên từ xa(Remote Access Service).
Trong một mạng thương mại lớn có nhiều bộ phận (workgroup), mỗi bộ phận
chạy Internet Information Server trên server của mình. Một server trung tâm được
dùng để phối hợp và quản lý tất cả thông tin trên mạng.
I.10 Các kịch bản Internet.
Internet Information server có thể là một Web server đơn giản trên Internet
như ví dụ minh họa sau đây
Đỗ Hải Nam - KHMT - K46 Trang 7
Đồ án tốt nghiệp
Trong các Site lớn hơn, ta có thể cho phép các thành viên trong mạng truy xuất tới
Web server và sử dụng các công cụ chế tác như FrontPage để chế tác nội dung cho
Web server.
Sự tích hợp Internet Information Server với Windows NT có thể tạo ra các
server có nhiều chức năng. Ví dụ như một công ty có nhiều site khác nhau trên thế
giới, có thể dùng Internet Information Server để truyền thông giữa các site này với
nhau, và ta cũng có thể dùng RAS để cho phép truy cập tới Intranet hoặc Internet.
Đỗ Hải Nam - KHMT - K46 Trang 8
Đồ án tốt nghiệp
Nhiều kịch bản nối kết tới Internet còn liên quan tới thành phần thứ ba là các
Routersvà các thiết bị an ninh nằm giữa máy tính của ta và Internet dùng để lọc các
gói(packets) thông tin gửi qua chúng. Các trường hợp này chưa được đề cập trong
các kịch bản ở trên.
CHƯƠNGII : TÌM HIỂU WEB CACHING
II.1 Các thuật ngữ cơ bản
Tuy nhiên trước khi đi vào các khái niệm về Web caching ta sẽ tìm hiểu một

số thuật ngữ hay được dùng trong khi giải thích các khái niệm và nó cũng là những
thuật ngữ chuẩn của Internet.
II.1.1 Client – Server
Đây là những khái niệm nền tảng để xây dựng nên một hệ thống ứng dụng
Web.
- 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.
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.
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à hồn tồn miễn phí.
Đỗ Hải Nam - KHMT - K46 Trang 9
Đồ án tốt nghiệp
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.
II.1.2 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.
II.1.3 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ể 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.s
- 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.
II.1.4 Các đối tượng Web( Web Object)
“Đố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.
II.1.5 Nhận biết tài nguyên (Resource Indentifier)
Nhận biết tài nguyên cũng là một trong những khái niệm cơ bản của kiến trúc
Web. Đó có thể là tên hay địa chỉ của một đối tượng Web. Nó cũng giống như là địa
chỉ của một con đường hay số điện thoại. Thông thường thì người ta hay gọi là
Universal Resource Identifiers (URI). Chúng thì thường được sử dụng cho cả người
và máy tính.Caches thì thường được sử dụng để nhận biết chúng.
Đỗ Hải Nam - KHMT - K46 Trang 10
Đồ án tốt nghiệp
Uniform Resource Locators (URLs) là một dạng thông dụng của URI. Dưới đây là
một vài ví dụ vể URLs

/> />II.1.6 Các giao thức truyền Web
Cả Client và Server thì thường sử dụng các giao thức vận chuyển khác nhau
để trao đổi thông tin cho nhau.Các giao thức trên được xây dựng chủ yến dựa trên
giao thức TCP/IP. The Hypertext Transfer Protocol (HTTP) là một trong những giao
thức phổ biến nhất hiện nay bởi vì chúng được thiết kế cho Web. Một trong số những
giao thức khác như File Tranfer Protocol (FTP) hay Gopher thì vẫn được sử dụng cho
đến ngày nay. Ngồi ra một số giao thức mới xuất hiện gần đây như Secure Sockét
Layer (SSL) hay Real-time Transport Protocol (RTP) cũng thường xuyên được sử
dụng .

II.2 Định nghĩa Web Caching
Kỹ thuật Web Caching chính là việc chuyển bản copy của các tài liệu Web từ
Web server đến gần với Web client hơn. 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
II.3 Tại sao phải sử dụng Cache đối với Web ?
Đơn giản vì nó tiết kiệm được thời gian cho người duyệt Web. Nó cung cấp
một cách hiệu quả khả năng phân bổ thông tin trên Web. Chúng ta hãy xem xét một
ví dụ thực tế về việc phân bổ sách. Chúng ta hãy suy nghĩ làm sao các cuốn sách
được phân bố tới tay của những độc giả ? Các nhà xuất bản in những cuốn sách và
bán chúng với số lượng lớn tới các nhà bán buôn. Các nhà bán buôn thì lại bán các
cuốn sách với số lượng nhỏ hơn tới các cửa hàng sách. Độc giả có thể đến các cửa
hàng sách và mua các cuốn sách đó. Trên internet thì Web caches cũng hoạt động
tương tự như các cửa hàng sách và các nhà phân phối.
3 lợi ích chính của Web caching
+ Làm cho trang Web được load nhanh hơn (giảm thời gian trễ)
+ Giảm băng thông sử dụng
+ Giảm số lần truy cập lại trên server gốc
II.3.1 Thời gian trễ
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
Đỗ Hải Nam - KHMT - K46 Trang 11

Đồ án tốt nghiệp
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.
II.3.2 Băng thông
Băng thông chính là dung lượng đường truyền mà dữ liệu đi qua. Với mỗi yêu
cầu mà dữ liệu là kết quả trong web caching thì nó sẽ tiết kiệm được băng thông. Khi
đó sẽ không tốn băng thông để dữ liệu truyền từ máy server gốc mà nó lấy luôn dữ
liệu trong cache. Web cache thì giảm băng thông sử dụng bởi các luồng dữ liệu
HTTP. Điều này có thể nói là web cache làm tăng hiệu quả của băng thông. Nếu một
mạng hỗ trơ 100 người dùng khi không có web cache thì sẽ hỗ trợ được 150 người
dùng khi có web cache.
II.3.3 Server Load
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.
II.4 Phân loại Web caching
Nội dung của một trang Web thì có thể được lưu trữ ở nhiều vị trí khác nhau
dọc theo các đường dẫn giữa các client và các server gốc. Đầu tiên các trình duyệt
cũng tự mình xây dựng hệ thống cache trong nó. Người ta gọi nó là Browser caches.
Tiếp theo là caching proxy (proxy cache) kết hợp tất cả các yêu cầu của các client
thành một nhóm.Cuối cùng một hệ thống đại diện có thể được đặt tại đầu các server
gốc để lưu trữ những đáp ứng thường xuyên.
II.4.1 Browser Caches (Client Cache)
Các trình duyệt thì cũng xây dựng trong nó hệ thống cache. Mỗi khi ta nhấn
nút Back trên trình duyệt thì nó đọc lại cho ta trang ta vừa xem trong cache của nó.
Đối tượng cache có thể là các file tạm thời trên đĩa hoặc có thể là trong bộ nhớ trong.
Trong khi trình duyêt Web Netscape yêu cầu bạn phải xác định xem không

gian đĩa dành cho caching là bao nhiêu. Microsoft thì yêu cầu bạn cần phải điều
khiển kích thước cache dành cho đĩa của bạn là bao nhiêu. Thông thường thì ta
thường sử dụng 10-100 MB không gian đĩa cứng dành cho Browser cache.
II.4.2 Caching Proxy (Server Cache)
Loại cache này nằm trên một server trong mạng lưới gồm nhiều client và
nhiều server. Thông thường, nó không nằm trong cùng một hệ thống chạy một loại
Web client hay một HTTP server nào đó. Không giống như Browser caches, dịch vụ
cache này có thể phục vụ nhiều user cùng một lúc. Khi có nhiều người cùng tới thăm
một website tại một thời điểm thì caching proxies thường được sử dụng hơn Browser
cache.
Caching proxies 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.
Đỗ Hải Nam - KHMT - K46 Trang 12
Đồ án tốt nghiệp
II.5 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).
II.5.1 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.
II.5.1.1 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.
II.5.1.2 Yêu cầu đối với server gốc
Trước tiên ta hãy xem một yêu cầu được gửi đến cho server gốc. Giả sử ta yêu
cầu một URL như sau: . Khi Client mà không cấu
hình sử dụng proxy thì nó sẽ kết nối trực tiếp tới server gốc (www.nlanr.net) để gửi
yêu cầu này.
GET /index.html HTTP/1.1
Host: www.nlanr.net
Accept: */*
Đỗ Hải Nam - KHMT - K46 Trang 13
Đồ án tốt nghiệp

Connection: Keep-alive
Trong thực tế thì yêu cầu này gồm nhiều header hơn so với những gì đã đưa ra
ở trên đây. Ở đây ta thấy rằng URL đã được chia làm 2 phần. Dòng request line(dòng
đầu) chỉ bao gồm thành phần tên của URL. Trong đó phần hostname được xuất hiện
trong phần Host header. Host header là một đặc điểm của HTTP/1.1, nó hỗ trợ
hosting ảo, hay nhiều website logic trên một server vật lý(một địa chỉ IP). Nếu server
gốckhông hỗ trợ domain ảo thì Host header dùng để làm dự trữ.
II.5.1.3 Yêu cầu Proxy
Khi Client giao tiếp với proxy, các yêu cầu cũng không có sự khác biệt so với server
gốc. Tuy nhiên dòng yêu cầu proxy sẽ bao gồm một URL đầy đủ.
GET HTTP/1.1
Host: www.nlanr.net
Accept: */*
Proxy-connection: Keep-alive
HTTP đưa ra một sự thật là: yêu cầu và đáp ứng có thể được đưa qua một số
các proxies giứa Client và Server gốc. Một số HTTP header được định nghĩa như là
end to end(điêm cuối tới điểm cuối) và một số như là hop to hop(điểm tới điểm). End
to end header thì vận chuyển thông tin tới các hệ thống cuối(Client và Server gốc), và
bình thường thì nó không phải được chỉnh sửa bới proxies Cookie header cũng là end
to end. Ngược lại thông tin trong hop to hop header có nghĩa là dành cho các hệ thống
trung gian và nó phải được chỉnh sửa hay di chuyển trước khi được chúng được đưa
đến vị trí mới. Proxy- connection và proxy- authorization header ở dạng hop to hop.
Một Client sử dụng Proxy – connection header để hỏi proxy làm cho TCP kết nối
một cách liên tục bởi vậy chúng được sử dụng lại để cho các yêu cầu khác trong
tương lai. Proxy –authorization header chứa sự ủy nhiệm để có thể truy cập vào
proxy, không phải server gốc.
II.5.1.4 Yêu cầu không phải là HTTP Proxy.
Cuối cùng chúng ta thử xem proxies đối xử với các yêu cầu không phải là
HTTP như thế nào. Đối với các Client thì chúng luôn hỗ trợ các giao thức khác
HTTP như là FTP, HTTPS điều này có nghĩa là chúng chúng luôn biết cách giao tiếp

trực tiếp với các FTP server như thế nào. Tuy nhiên hầu hết các caching proxy không
đế ý về FTP server, chính vì vậy bạn không thể đặt FTP vào trong caching proxy.
II.5.2 Khả năng lưu trữ
Mục đích chính của cache chính là lưu trữ một số các đáp ứng nó nhận được
từ server gốc. Một đáp ứng được gọi là đã được lưu trữ có nghĩa là nó có thể được sử
dụng để đáp ứng được những yêu cầu trong tương lai. Với các luồng dữ liệu yêu cầu
thì khoảng 75% các đáp ứng được lưu trữ.
Cache quyết định lưu trữ bằng việc xem xét các thành phần khác nhau của
yêu cầu và đáp ứng. Nó có thể kiểm tra các thông tin sau:
+ Đáp ứng về bảo mật
+ Các phương thức yêu cầu
Đỗ Hải Nam - KHMT - K46 Trang 14
Đồ án tốt nghiệp
+ Đáp ứng Cache-control trực tiếp
+ Các đáp ứng xác thực
+ Các yêu cầu kiểm tra tính xác thực
II.5.2.1 Bảo mật
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ý
3XX: Server đang hướng Client tới một vị trí khác
4XX: Có một lỗi xảy ra với yêu cầu của client..
Ví dụ như Authentication được yêu cầu, hay tài nguyên yêu cầu không tồn
tại
5XX: Một lỗi xảy ra trên server đối với một yêu cầu của Client
Trạng thái mã hóa thông dụng nhất là mã 200. Trạng thái này có nghĩa là yêu cầu đã
được đáp ứng thành công.

II.5.2.2 Các phương thức yêu cầu:
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
POST
Mặc đinh là không lưu; Nhưng sẽ lưu nếu Cache-control headers
cho 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ữ.
II.5.2.3 Thời gian kết thúc và tính xác thực
Đỗ Hải Nam - KHMT - K46 Trang 15
Đồ án tốt nghiệp

HTTP/1.1 cung cấp cả hai cách để có thể duy trì liên kết với server gốc. Hạn
thời gian và biến xác thực(validators). Cả hai cách này đều chắc chắn rằng người sử
dụng có thể được nhận những thông tin cập nhật nhất.
Một số Website thì gửi những thông tin pre-expired. Điều này có nghĩa là
cache phải kiểm tra thời gian của đáp ứng với yêu cầu tiếp theo của một số người sử
dụng. Pre-expiration thì thường được sử dụng cho server gốc mà nó muốn không
nhận thấy đấu vết truy cập đến site của họ nhưng lại muốn nội dung vẫn được lưu
trữ. Có hai cách để sử dụng pre-expire đó là thiết lập Expires header bằng với Date
header. Ví dụ
Date: Sun, 01 Apr 2001 18:32:48 GMT
Expires: Sun, 01 Apr 2001 18:32:48 GMT
Một cách khác là ta có thể gửi một giá trị ngày hợp lý hay giá trị “0”
Expires: 0
II.5.3 Cache-Hits, Cache-Misses
Khi Cache nhận được một yêu cầu thì nó sẽ kiểm tra xem nếu đáp ứng cho
yêu cầu này đã được lưu trữ hay chưa ? Nếu đáp ứng chưa được lưu trữ thì nó tiếp
tục chuyển yêu cầu này đến cho server gốc. Khi một yêu cầu chưa được thực hiện
trước đó bao giờ thì ta gọi đó là Cache-misses, đối tượng chưa được lưu trữ. Hoặc
đối tượng có thể đã bị xóa để dành chỗ cho một đối tượng mới. Có đến 50-70% các
yêu cầu là cache-misses
Nếu một đối tượng được đưa ra thì ta gọi đó là cache-hits. Tuy nhiên cache
phải quyết định xem lưu trữ đáp ứng là mới hay là đã lâu rồi. Một đáp ứng là mới nếu
như thời gian hết hạn không được tìm thấy ngược lại nó là cũ. Một đáp ứng mới là tốt
nhất vì chúng đưa tới cho client một cách ngay lập tức. Vì vậy chúngkhông có thời
gian trễ và không tốn băng thông tới server gốc. Chúng ta gọi chúng là unvalidated
hits.Ngược lại đối với những đáp ứng cũ thì chúng cũng phải yêu cầu kiểm tra đối
với server gốc
Mục đích của việc kiểm tra là đưa yêu cầu lên tới server gốc nếu các đáp
ứng vẫn còn giá trị. Nếu tài nguyên đã thay đổi thì chúng ta sẽ không muốn client
nhận những đáp ứng cũ. HTTP gọi chúng là những yêu cầu điều kiện (conditional

requests). Đáp ứng lại những yêu cầu điều kiện hoặc là một thông điệp “Not
Modified” hoặc tồn bộ một đáp ứng mới.
Nhưng làm thế nào để có thể biết đó là một đáp ứng mới hay đáp ứng cũ.
HTTP/1.1 cung cấp cho ta hai cách để có thể xác định được đólà dựa vào expires
header và max-age cache control. Giá trị expires header chính là ngày và giờ mà tại
đó nó trở thành đáp ứng cũ. Ví dụ
Date: Mon, 19 Feb 2001 01:46:17 GMT
Còn giá trị max-age thì chỉ dẫn cho ta biết số giây mà đáp ứng còn được
xem như là mới. Ví dụ
Cache-control: max-age=21600
Tình trạng này cho ta biết đáp ứng này còn đựoc coi là mới trong vòng 6h đồng hồ kể
từ khi nó được sinh ra.
Đỗ Hải Nam - KHMT - K46 Trang 16
Đồ án tốt nghiệp
II.5.4 Quá trình kiểm tra.
Ở phần trên thì chúng ta đã nghiên cứu quá trình kiểm tra của cache trong
các trạng thái là cache hits hay cache-misses. Ngay sau khi nhận được một yêu cầu về
một đối tượng, thì cache sẽ tiến hành xác định tính hợp lệ đối với server gốc. Nếu
như đối tượng được lưu vẫn còn hợp lệ thì server sẽ trả lời lại bằng một thông điệp
ngắn HTTP 304 (Not modifed). Nếu không thì tồn bộ đối tượng sẽ được gửi đi.
HTTP /1.1 cung cấp hai kĩ thuật để ta có thể kiểm tra đó là xác định thời điểm cuối
cùng đối tượng thay đổi last-modified và E Tag (entity Tags header).
II.5.4.1 Last-modified
Hầu hết các đáp ứng HTTP thì bao gồm last-modified header để xác định
thời gian khi đối tượng tài nguyên có sự thay đổi lần cuối cùng trên server gốc. Last-
Modified thì đưa ra thời gian GMT (Greenwich Mean Time) với đơn vị nhỏ nhất là
giây. Ví dụ
HTTP/1.1 200 OK
Date: Sun, 04 Mar 2001 03:57:45 GMT
Last-Modified: Fri, 02 Mar 2001 04:09:20 GMT

Khi cache xác định tính hợp lệ của đối tượng thì nó cũng gửi If-modified-
since header của yêu cầu điều kiện GET
GET HTTP/1.1
If-Modified-Since: Wed, 14 Feb 2001 15:35:26 GMT
Nếu server đưa trả về là đáp ứng 304(not modified ) thì đối tượng trong
cache vẫn hợp lệ và trong trường hợp này thì cache phải cập nhật đối tượng để có thể
tham chiếu tới tất cả các đáp ứng mới của HTTP header chẳng hạn như Date hay
Expires. Nếu server không trả lại đáp ứng là 304 thì cache sẽ xem xét đáp ứng từ
server như một nội dung mới thay thế và đối tượng đó và phân phối đến các client.
II.5.4.2 Entity Tags
HTTP /1.1 cung cấp một cách khác để có thể kiểm tra đó là E-tag (Entity
tags). Một E-tags như là một chuỗi ngẫu nhiên dùng để nhận dạng một thể hiện của
đối tượng. Ví dụ
HTTP/1.1 200 OK
ETag: "8cac4-276e-35b36b6a"
Cache sẽ sử dụng E-tags để xác nhận tính hợp lệ của đối tượng với yêu cầu
If-none-match header
GET /index.html HTTP/1.1
If-None-Match: "8cac4-276e-35b36b6a"
Ngay khi nhận được yêu cầu server gốc sx kiểm tra dữ liệu của đối tượng.
Nếu E-tags (8cac4-276e-35b36b6a) vẫn còn hợp lệ thì server sẽ trả về thông báo
304(Not modified). Ngược lại thì server sẽ bỏ qua If-none-match header và tiến hành
Đỗ Hải Nam - KHMT - K46 Trang 17
Đồ án tốt nghiệp
xử lý yêu cầu như bình thường. Và cũng như mọi lần nó sẽ trả về thông báo 200 với
một đối tượng mới, hay cập nhật nội dung.
II.5.5 Thay thế trong cache
Cache sẽ tiến hành thay thế nếu nó bị đầy và khi đó các đối tượng cũ sẽ bị
xóa đi để nhường chỗ cho những đối tượng mới. Thường thì Cache sẽ gán một vài
giá trị cho mỗi đối tượng. Thường thì các giá trị của đối tượng sẽ liên quan đến khả

năng nó có thể được yêu cầu lại một lần nữa. Caching đã nghiên cứu, phát triển và
đưa ra một số đề nghị về các giải thuật thay thế trong Cache.
Đỗ Hải Nam - KHMT - K46 Trang 18
Đồ án tốt nghiệp
II.5.5.1 Giá trị ít sử dụng gần đây nhất (Least Recently Used)(LRU)
LRU là một trong những giải thuật hayd được sử dụng bởi web caches. Giải
thuật này hồn tồn đơn giản và đễ thực hiện. Nó đưa ra được hiểu quả tốt trong mọi
hồn cảnh. Như tên của nó đã nói, LRU sẽ xóa bỏ những đối tượng mà nó không được
truy cập trong thời gian nhiều nhất. Giải thuật này có thể được tiến hành trên những
danh sách đơn giản. Tại mỗi thời điểm khi đối tượng được truy cập nó sẽ được di
chuyển đến đầu danh sách. Và khi đó đối tượng ít được sử dụng nhất sẽ chắc chắn tự
động di chuyển xuống cuối danh sách. Tuy nhiên vấn đề của giải thuật này chính là
nó không quan tâm tới kích thước của đối tượng. Bạn muốn lưu một đối tượng với
kích thước lớn hay nhiều đối tượng với kích thước nhỏ. Câu trả lời này có lẽ tùy
thuộc vào sự tối ưu của người quản trị. Nếu cần tiết kiệm băng thông thì bạn sẽ muốn
một đối tượng có kích thước lớn còn nếu bạn giảm số lần truy cập đến server gốc thě
các đối tượng có kích thước nhỏ lại là sự lựa chọn trong trường hợp này.
II.5.5.2 First In, First Out (FIFO)
FIFO là một giải thuật thậm chí còn đơn giản hơn cả LRU. Đối tượng ở đây
thì cùng một cấp bậc sau khi thêm vào. Giải thuật này không quan tâm đến sự phổ
biến của các đối tượng. FIFO thì ít được sử dụng nếu có thì nó được sử dụng cho
cache proxies.
II.5.5.3 Đối tượng ít được sử dụng (Least Frequently Used)(LFU)
LFU thì cũng tương tự như LRU, nhưng thay vì việc chọn lựa dựa trên yếu
tố thời gian truy cập thì dấu hiệu nhận biết đối với giải thuật này là số lần truy cập.
LFU sẽ thay thế những đối tượng mà số lần truy cập ít và giữ lại những đối tượng mà
có số lần truy cập thường xuyên. LFU cũng thỉnh thoảng được sử dụng trong các sản
phẩm nhưng chúng cũng ít được sử dụng thường xuyên.
II.5.5.4 Kích thước
Giải thuật dựa trên kích thước sử dụng kích thước của đối tượng như một

đặc điểm chính để làm tiêu chí xóa bỏ đối tượng. Đối tượng với kích thước lớn nhất
sẽ bị xóa bỏ đầu tiên. Giải thuật này thực sự là một kĩ thuật cũ. Khi đó trong Cache sẽ
lưu lại những đối tượng có kích thước nhỏ khi đó thì số lần truy cập tới server gốc để
kiểm tra sẽ tăng lên và khi đó sẽ làm hao tổn băng thông của đường truyền.
Tuy nhiên hiện nay thì các chương trình sử dụng Web caching đều sử dụng giải thuật
kết hợp các giải thuật ở trên. Vì vậy quá trình xử lý sẽ trở nên linh hoạt và hợp lý
hơn.
II.6 Sự kế thừa của các Cache.
Khi ta sử dụng một Web caching thì có thể có nhiều giới hạn về bộ nhớ
chính vì vậy việc kế thừa cache là một trong những điều mà ta mong đợi. Sự sắp xếp
các Caches để một cái này có thể liên kết được với những cái khác. Trong mô hình
thừa kế Caches, lớp thấp nhất sẽ chuyển những cache-misses lên những lớp cao hơn
cho đến khi cache-hits được tìm thấy hoặc yêu cầu có thể chuyển đến server gốc.
Việc kế thừa Cache thì rất được quan tâm vì khi đó nó có thể cải tiến hiệu năng làm
việc của hệ thống Web. Một số yêu cầu không có trong cache này thì sẽ được tìm
Đỗ Hải Nam - KHMT - K46 Trang 19
Đồ án tốt nghiệp
thấy trong cache của hàng xóm của chúng. Điều này sẽ giảm băng thông trên các
đường truyền WAN và tăng tốc độ download
II.6.1 Cache kế thừa hoạt động như thế nào
Web cache có thể trở lên phức tạp hoặc không định hình được. Chúng ta sẽ
sử dụng các thuật ngữ như cha (parent), con (child), anh chi em ruột (sibling) để mô
tả mối quan hệ giữa hai cache bất kỳ với nhau.
Một cache con thì sẽ gửi những cache-misses lên cho những cache cha của
nó. Cache cha sau đó sẽ cung cấp cho con của nó những thông tin đáp ứng từ cache
mà nó sở hữu hay server gốc, hay từ một cache khác. Cache cha có thể sử dụng băng
thông tới server gốc để đáp ứng những yêu cầu từ cache con của nó. Hình vẽ dưới
đây minh họa về một cache thừa kế
II.6.2 Các lợi ích của kế thừa Cache
II.6.2.1 Hiệu năng

Hiệu năng thì luôn làm cho mọi người muốn gia nhập vào hệ thống kế thừa.
Tuy nhiên hệ thống caching kế thừa không phải là điều thần kì, nó không đảm bảo
được chắc chắn hệ thống sẽ cải thiện được hiệu năng. Nếu bạn muốn tìm kiếm hiệu
năng tốt hơn thì bạn phải quyết định điều gì là quan trọng đối với bạn. Giảm băng
thông ? Giảm độ trễ. Bạn nên tạo ra một hệ thống cho việc giám sát hệ thống hiệu
năng Cache của bạn. Vậy để có một hệ thống hoạt động tốt thì cần chú ý những điểm
sau:
+ Một số đối tượng không tìm thấy trong cache của nó nhưng sẽ được tìm
thấy trong cache của hàng xóm của nó. Hay nói cách khác là bạn có thể nhận được
cache-hits từ cache hàng xóm
+ Cache-hits từ cache hàng xóm thì được phân bố nhanh hơn so với cache-
misses ở server gốc
+ Cache misses từ cache cha thì chậm hơn so với đáp ứng từ phía server
gốc.
Nếu một trong các điều kiện trên đây không thoả mãn thì hiệu năng hoạt
động cache của bạn sẽ bị ảnh hưởng. tuy nhiên chúng hoạt động đúng hay sai còn ảnh
hưởng của rất nhiều các nhân tố. Ví dụ như nếu cache tìm kiếm một cách chậm chạp
thì nó có thể chậm hơn so với kết nối trực tiếp đến server gốc. Và các hành vi của
chúng cũng có thể thay đổi theo thời gian, một ngày nào đó cache cha hoạt động rất
nhanh nhưng những ngày tiếp theo nó lại hoạt động một cách chậm chạp
Đỗ Hải Nam - KHMT - K46 Trang 20
Đồ án tốt nghiệp
II.6.2.2 Thay đổi quá trình định tuyến mặc định
Cache cha thì rất hữu ích khi bạn cần tăng tốc một luồng dữ liệu web. Một
ví dụ là việc vượt qua Filewall. Đối với các tổ chức thì việc sử dụng filewall để bảo
vệ mạng nội bộ của họ. Có rất nhiều cách để triển khai một filewall. Một số thì ngăn
chặn không cho người sử dụng có thể kết nối trực tiếp với các server bên ngồi. Họ
khố tất cả các đường kết nối đi ra cho tất cả các cổng bao gồm cả cổng HTTP(port
80). Trong trường hợp này chỉ có một cách để có thể vượt ra server bên ngồi là thông
qua filewall proxy, mà ở đó có thể đã được đặt cache. Nếu bạn có một caching proxy

trong mạng nội bộ của bạn thì filewall proxy là cache cha của tất cả các yêu cầu của
bạn để ra bên ngồi.
II.7 Cách cấu hình trên các máy Client
Có hai kĩ thuật mà bạn có thể sử dụng trong việc cấu hình cho các Client.
Một trong những kĩ thuật cũ đó là cấu hình bằng tay (manual configuration). Client sẽ
được đưa ra một hay nhiều địa chỉ proxy để sử dụng. Và kĩ thuật thứ 2 được đưa ra
bởi hàng Netscape đó là cấu hình proxy tự động(proxy auto configuration). Đối với
cách cấu hình này thì trình duyệt sẽ tự động thi hành một đoạn lệnh Java Script trước
mỗi yêu cầu. Đoạn Script sẽ đưa về cho trình duyệt một danh sách các địa chỉ proxy
mà ở đó có thể chuyển các yêu cầu đi. Cấu hình tự động sẽ tăng cường kiểm sốt lỗi
hơn so với cách cấu hình bằng tay. Ví dụ như nếu trình duyệt sử dụng proxy đầu tiên
trongdanh sách mà sau đó nó bị hỏng thì cái tiếp theo trong danh sách sẽ được sử
dụng.
Mặc dù cấu hình tự động thì mềm dẻo hơn, nó yêu cầu user phải có địa chỉ
của file Java Script. Để có thể loại trừ được bước này một số công ty đã đề nghị sử
dụng một giao thức đó là web proxy auto-discovery. Khi ta khởi động một trình duyệt
thì nó sẽ sử dụng DHCP(Dynamic Host Configuration Protocol) và DNS(Domain
Name System) để xác định proxy auto-configuration script. Nếu nó tìm thấy thì nó sẽ
tự động ghi lại kết quả của script đó là bắt đầu sử dụng caching proxy.
II.7.1 Proxy Addresses
Cũng như tất cả các dịch vụ Internet khác như mail hay FTP thì proxy
server như là một địa chỉ bao gồm cả địa chỉ IP và số cổng (port number). Tuy nhiên
không giống những dịch vụ khác proxies thì không có cổng mặc định. Vì thế ta có thể
nói là “kếtnối đến FTP server tại ftp.isp.net ” chứ không nói rằng “sử dụng proxy tại
proxy.isp.net ”. Một địa chỉ proxy thì luôn đi kèm với cổng của nó. Vì vậy theo mặc
định thì ta có thể viết đồng thời chúng sau dấu hai chấm. Ví dụ
172.16.4.1:8080
squid.ircache.net:3128
proxy1.bigisp.net:80
Mặc dù nó không có cổng mặc định nhưng hầu hết các proxies sử dụng các

port sau: 3128,8080,80 hoặc 1080. Ngày nay thì hầu hết các Web caches thì có thể
lắng nghe các yêu cầu trên nhiều cổng tại một thời điểm. Vì vậy có thể đáp ứng được
tốt hơn các yêu cầu của người dùng. Sau đây ta sẽ nghiên cứu cách cấu hình bằng tay
đối với một Client.
II.7.2 Cấu hình bằng tay
Đỗ Hải Nam - KHMT - K46 Trang 21
Đồ án tốt nghiệp
Như trên ta đã đưa ra việc cấu hình bằng tay đơn giản là thiết lập một địa chỉ
proxy cho một hoặc nhiều giao thức kết nối như HTTp, FTP, SSL. Thông thường thì
một proxy thì hỗ trợ tất cả bởi vây cùng một địa chỉ Proxy được sử dụng cho tất cả
các giao thức. Tuỳ thuộc vào mục đích sử dụng proxy của bạn mà ban có thể cần hay
không cần cấu hình các protocol. Nếu bạn sử dụng ở sau filewall thì bạn nó sẽ yêu
cầu proxy cho tất các các yêu cầu của bạn. Tuy nhiên cấu hình bằng tay thì cũng có
một số nhược điểm. Nó sẽ yêu cầu bạn sử dụng để cấu hình cho một số lượng lớn,
ngồi ra đối với những người dùng thông thương thì yêu cầu một cách trong sáng và
rõ ràng. Cộng thêm bạn phải cung cấp những cho những trình duyệt khác nhau và các
phiên bản khác nhau của cùng một trình duyệt. Khi một proxy bị lỗi thì trình duyệt sẽ
không thử kết nối trực tiếp hay sử dụng một proxy khác. Đó là những yếu điểm của
việc cấu hình bằng tay. Say đây ta sẽ cấu hình mẫu trong một trình duyệt thông dụng
nhất hiện nay đó là Internet Explore.
II.7.2.1 Cấu hình Microsoft Internet Explore
Để cấu hình cho trình duyệt này bạn chọn menu Tool sau đó chọn Internet
Options, ta sẽ thấy có 7 tab, chọn Tab connection
Chọn LAN Settings để cấu hình cho proxy, tại đây một cửa sổ xuất hiện sau đó bạn
thiết lập địa chỉ proxy và cổng của nó như hình dưới đây.
Đỗ Hải Nam - KHMT - K46 Trang 22
Đồ án tốt nghiệp
Nếu bạn muốn sử dụng nhiều proxy khác nhau cho các giao thức khác nhau
thì bạn có thể chọn nút Advanced . Khi đó bạn có thể điền các proxy khác nhau đối
với mỗi giao thức như hình dưới đây.

II.7.3 Cấu hình proxy tự động (Proxy Auto-Configuration Script)
Proxy Auto-Configuration Script (PAC) là một kĩ thuật được thiết kế để
khắc phục những vần đề hạn chế của việc cấu hình bằng tay. Thay vì việc cấu hình
bằng tay các địa chỉ của proxy thì trình duyệt sẽ tự động chạy một script khi có yêu
Đỗ Hải Nam - KHMT - K46 Trang 23
Đồ án tốt nghiệp
cầu. Khi đó nó sẽ trả về một danh sách các địa chỉ proxy mà trình duyệt có thể thử
cho đến khi yêu cầu được chuyển đi thành công.
Script PAC thì được viết bằng Java Script. Vì vậy nếu trình duyệt nào hỗ trợ
Java Script thì sẽ hỗ trợ PAC. Netscape là hãng sáng chế ra PAC và đã đưa vào trong
Version 2 của trình duyệt này và Microsoft cũng đưa PAC vào từ Version 3.
Đặc điểm tốt nhất của PAC chính là cho phép người quản trị có thể cấu hình
lại mà không cần sự can thiệp của người sử dụng. Nếu địa chi proxy thay đổi thì
người quản trị dễ dàng thay đổi PAC script để tham chiếu tới sự thay đổi đó. Các
trình duyệt sẽ nhận về các PAC URL vào mọi thời điểm chúng bắt đầu nhưng sẽ
không xuất hiện trong lúc nó đang chạy trừ trường hợp người dùng yêu cầu reload
lại.
Một đặc điểm khác cũng được coi là cải tiến cho việc cấu hình bằng tay của
đó chính là khả năng tìm lỗi. Nếu proxy đầu tiên bị lỗi thì nó sẽ tự động cố gắng tìm
những cái tiếp theo cho đến cuối cùng của danh danh proxy mà nó nhận được ban
đầu. Một lỗi được tìm thấy khi trình duyệt nhận được lỗi Connection Refused và thời
gian thiết lập kết nối vượt quá thời gian cho phép(time out).
II.7.4 Cách viết một PAC
Tên của hàm để thực hiện một PAC đó là FindProxyForURL() và có hai
tham số url và host. Giá trị trả về chính là chuỗi kí tự có thể để gửi yêu cầu đi. Nó có
thể là một hoặc nhiều dòng cách nhau bằng dấu hai chấm.
PROXY host:port
SOCKS host:port
DIRECT
Ví dụ

"PROXY proxy.web-cache.net:3128; DIRECT;
SOCKS socks.web-cache.net:1080;"
Khi bạn viết FindProxyForURL() thì bạn muốn xây dựng trong nó chức
năng tự phân tích URL. Để có thêm những thông tin chi tiết bạn có thể tham khảo tại
/>PAC phải được đặt trên Web server và server phải được cấu hình để trả về
giá trị MIME Content-type header trong đáp ứng của chúng. Nếu Content-type không
thiết lập Application/x-ns-proxy-autoconfig, thì trình duyệt sẽ không nhận biết được
PAC script. Và phần mở rộng của file này phải là .pac và sau đó chỉ dẫn cho HTTP
server trả lại Content-type cho tất cả các URIs với phần mở rộng này. Giả sử một
Webserver chạy Apache ta có thể thêm dòng sau:
Srm.conf.AddType application/x-ns-proxy-autoconfig.pac
II.7.5 Cấu hình cho PAC Script
Khi ta đã viết và đặt PAC script lên server thì ta phải cấu hình browser để
có thể sử dụng chúng. Tất cả những gì ta cần làm là đưa PAC Script URL trong cấu
hình phù hợp với trình duyệt.
Với Netscape ta đặt ở chế độ proxy auto configuration URL trong cùng cửa sổ để cấu
hình với proxy bằng tay. Ta chọn Edit =>Preferences… Sau đó chọn Advanced chọn
Select Proxies. Chọn “Automatic proxy configuration” như hình vẽ:
Đỗ Hải Nam - KHMT - K46 Trang 24
Đồ án tốt nghiệp
Còn nếu bạn sử dụng Microsoft Internet Explore thì bạn có thể làm tương tự
như trong phần cấu hình bằng tay nhưng bạn chọn chế độ use automatic
configuration script như hình vẽ và thêm URL của file PAC vào trong ô địa chỉ.
Đỗ Hải Nam - KHMT - K46 Trang 25

×