CHƢƠNG II : MÔ HÌNH HÓA LƢU LƢỢNG WEB
2.3 Vai trò ảnh hƣởng của công nghệ mới trong mô hình lƣu lƣợng hiện đại
2.3.1 WebCache
Webcache là công nghệ sử dụng bộ nhớ tạm thời để lƣu giữ bản sao của trang Web nhƣ các trang HTML, ảnh, CSS, Javascript…. để giảm tải băng thông, giảm độ trễ của truyền thông giữa client và webserver, mang lại trải nghiệm truy cập tốt hơn với ngƣời dùng. Tốc độ vào trang ngay tức thì dĩ nhiên sẽ làm client cảm tình truy cập thƣờng xuyên hơn thay vì vào một trang mà phải đợi đến hàng chục giây để tải xong.
Các trạng thái của Cache
Cache hit: Nếu thời gian trong các gói dữ liệu cache chƣa hết hạn so với thời điểm hiện tại, thì trình duyệt sẽ đọc các phần dữ liệu trực tiếp từ cache – rồi ghép với phần không đƣợc đặt cache để hiển thị. Kết quả là tốc độ hiển thị rất nhanh – nếu tỉ lệ dữ liệu bị cache/ dữ liệu toàn trang là lớn.
Nếu thời gian của các gói dữ liệu cache đã hết hạn thì nó sẽ truy vấn Web server hỏi xem nội dung của URL đó đã đƣợc cập nhật chƣa. Đây là một truy vấn hoàn toàn mới. Tại đây sẽ xuất hiện hai trƣờng hợp:
Cache revalidate hit: nếu trang không đƣợc cập nhật thì server sẽ trả lời trình duyệt với HTTP header 304 và thông báo trang chƣa đƣợc cập nhật, gia hạn thời gian hết hạn của cache, lúc này trình duyệt sẽ cập nhật thời gian các gói dữ liệu và lấy luôn những dữ liệu này để hiển thị.
Cache miss: Nếu server thông báo trang có thay đổi mới thì nó sẽ trả về HTTP Header và gói chứa dữ liệu nhƣ bình thƣờng.
Hình 8 Mô hình hoạt động của cache
Các mô hình Webcache
Browse Cache: Khi ngƣời dùng truy cập máy chủ Web lần đầu tiên, nó sẽ tải dữ liệu của trang URL ngƣời dùng quan tâm, trình duyệt sẽ lƣu một phần các nội dung HTML, Javascript, CSS, ảnh trên trang đó [chỉ lƣu với tỉ lệ nhất định] lại trên thƣ mục tạm của trình duyệt [temporatory files Internet Explorer chẳng hạn] – dữ liệu này gọi là local cache.
Hình 9 Mô hình Browser Cache
Web server cache, Proxy cache: Với mô hình dạng này, các nhà cung cấp dịch vụ lƣu trữ chủ yếu đặt vị trí của máy chủ, trung tâm dữ liệu chứa bản sao của trang Web gốc phân tán khắp nơi trên thế giới. Với những yêu cầu truy vấn phục vụ từ bất kỳ ngƣời dùng nào thì máy chủ Web gần nhất với ngƣời dùng sẽ thực hiện
đáp ứng lại dữ liệu thay vì phải truy vấn máy chủ gốc. Rõ ràng cơ chế này giảm đáng kể thời gian trễ khi tải trang do phải truy vấn qua rất nhiều Router:
Hình 10 Dùng các CDN Server chứa bản sao của Website để phục vụ client theo vị trí gần nhất
Ảnh hƣởng của Webcache tới hành vi lƣu lƣợng Web thế hệ mới
Trong các mô hình thống kê dữ liệu của Choi & Lim hoặc các mô hình thống kê mới đều có tham số thống kê số yêu cầu truy vấn mà dữ liệu trả về là từ cache hoặc không từ cache. Về cơ bản trong lƣu lƣợng qua lại trên web vẫn tồn tại những truy vấn có dữ liệu trả về ngay trực tiếp từ cache mà không phát sinh thêm lƣu lƣợng dữ liệu tuy nhiên nó không ảnh hƣởng đến thời gian đọc trang của ngƣời dùng. Do đó công nghệ cache chỉ làm tăng tốc độ tải và tốc độ hiển thị dữ liệu mà không làm thay đổi bản chất truy vấn từng đối tƣợng của trình duyệt với máy chủ Web.
2.3.2 Ajax
2.3.2.1 Ajax là gì
Ajax viết tắt của Asynchronous JavaScript and XML nó không phải là một công nghệ mà là một tập các kỹ thuật phát triển Web có sự liên hệ với nhau đƣợc sử dụng ở phía trình duyệt máy ngƣời để tạo ra các ứng dụng Web không đồng bộ. Về cơ bản các ứng dụng này có thể gửi và lấy dữ liệu không đồng bộ từ máy chủ mà không can thiệp vào màn hình hiển thị cũng nhƣ hành vi của trang hiện tại. Dữ liệu có thể đƣợc lấy ra từ kết quả trả về của máy chủ bằng cách sử dụng đối tƣợng
XMLHttpRequest. Sử dụng định dạng XML trong truy vấn Ajax là không bắt buộc, thực tế hiện nay ngƣời ta thích sử dụng định dạng JSON phổ biến hơn do tính dễ dùng của nó.
Hình 11 Mô hình hoạt động cơ bản của Ajax so với truy vấn truyền thống Thực chất trong công nghệ Ajax, trình duyệt đƣợc trang bị máy Ajax Engine mới viết bằng Javascript. Bộ máy Engine này là chịu trách nhiệm cho cả việc dựng lại giao diện ngƣời dùng thấy và giao tiếp với các máy chủ trên danh nghĩa của ngƣời dùng.
Nhƣ hình vẽ 12, Ajax Engine làm nhiệm vụ trung gian và chạy trong các tiến trình ngầm, ngƣời dùng không nhìn thấy đƣợc mà chỉ nhìn thấy kết quả trả về khi thực hiện một thao tác vào nơi có hỗ trợ truy vấn và hiển thị dữ liệu qua Ajax. Bình thƣờng để ngƣời dùng biết rằng trình duyệt sẽ thao tác truy vấn dữ liệu qua Ajax tại đối tƣợng đó, các nhà phát triển thƣờng thêm biểu tƣợng đồng hồ cát hoặc xoáy xoáy chờ đợi để ngƣời dùng biết rằng trình duyệt đang thực hiện một truy vấn gì đó đến server. Khi ngƣời dùng muốn thực hiện một truy vấn, một yêu cầu sẽ đƣợc gửi qua lời gọi Javascript đến bộ Ajax Engine. Từ đây nếu có phản hồi trở lại ngƣời dùng nhƣ kiểm tra dữ liệu, chỉnh sửa dữ liệu… thì cũng không cần xác nhận từ server mà Engine này sẽ trực tiếp làm việc đó. Nếu Engine cần thêm bất cứ dữ liệu nào từ máy chủ thì nó sẽ tự gửi yêu cầu trả về dữ liệu từ máy chủ sử dụng XML hoặc JSON mà không làm ngƣng trệ bất kỳ tƣơng tác nào với ngƣời dùng với ứng dụng hiện tại.
Hình 12 Mô hình hoạt động chi tiết của Ajax – minh họa của Jesse James Garrett
2.3.2.2 Ảnh hƣởng của Ajax tới hành vi lƣu lƣợng Web thế hệ mới
Chính bởi lợi ích rất lớn của công nghệ Ajax khi tải dữ liệu mà không làm ảnh hƣởng tới tƣơng tác của ngƣời dùng trên trang web mà hiện nay hầu hết các ứng dụng Web hiện đại đều sử dụng công nghệ này. Do tính phổ biến của nó mà những đặc tính truy cập giữa trình duyệt và máy chủ có sự thay đổi lớn. Mô hình ON – OFF không thể áp dụng đƣợc vào những trang web có sử dụng Ajax do trong thời gian OFF ngƣời dùng đọc trang, vẫn tồn tại những truy vấn lấy dữ liệu xảy ra ẩn với
ngƣời dùng. Điều tƣơng tự xảy ra với công nghệ RSS với thời gian cập nhật dữ liệu theo định kỳ.