Bạn đã trải nghiệm qua hầu hết các trình duyệt web như Firefox, Internet Explorer, Google Chrome hay Opera,... và cũng từng nghe đến những lời giới thiệu về công nghệ đằng sau chúng mỗi khi các nhà sản xuất công bố phiên bản mới.
Liệu bạn đã bao giờ tò mò về vấn đề này và tại sao nó lại quan trọng đến như vậy không? Nếu có, thông qua bài viết này, bạn sẽ được cung cấp những thông tin cần thiết về 'trái tim' của phần lớn các trình duyệt hiện nay.
Chúng ta sẽ bắt đầu với khái niệm engine của trình duyệt, hoặc được biết đến chi tiết hơn là layout engine. Nếu thiếu engine, website sẽ không thể hiện và chỉ là một tập hợp mã nguồn mà nhà phát triển sử dụng để thiết kế.
Hiện nay, có bốn engine chi phối toàn bộ trình duyệt web: Trident, Gecko, Webkit và Presto. Trident, engine của Microsoft, sẽ được giới thiệu đầu tiên.
Trident ra mắt lần đầu vào năm 1997, kèm với phiên bản Internet Explorer 4 của Microsoft. Microsoft thiết kế Trident để dễ dàng cho các nhà phát triển sử dụng engine này.
Engine này được đóng gói trong tập tin mshtml.dll để thuận tiện cho việc sử dụng. Mặc dù Trident có kiến trúc phức tạp, nhưng mshtml.dll vẫn là phần quan trọng nhất.
Mặc dù không công bố mã nguồn Trident, nhưng Microsoft hoàn toàn cho phép sử dụng miễn phí engine này. Do đó, hiện nay có nhiều trình duyệt web phát triển dựa trên Trident, như Maxthon, Avant. Ngoài ra, các ứng dụng như Microsoft Outlook, Outlook Express và Skype cũng sử dụng engine Trident để biên dịch HTML.
Mọi layout engine đều phải tuân thủ các chuẩn của W3C, tổ chức quản lý và phát triển chuẩn internet.
Trong phiên bản Trident 5 cho Internet Explorer 8 và 9, engine này có thể hỗ trợ các chuẩn mới như CSS3 và HTML5. Tuy nhiên, với một số tính năng mở rộng của CSS3, Trident 5 vẫn chưa hoàn thiện. Trident 6 cho Internet Explorer 10 được phát triển để hỗ trợ HTML5 và CSS3 tốt hơn.
Mặc dù mạnh mẽ và hữu ích trong phát triển ứng dụng, Microsoft không thể sử dụng Trident cho hệ điều hành Mac. Thay vào đó, họ đã phát triển engine Tasman, dựa trên một số thành phần của Trident.
Tasman hoạt động hiệu quả đến mức có tin đồn rằng nó sẽ thay thế Trident. Tuy nhiên, sau đó Microsoft đã quyết định không sử dụng Tasman mà chuyển sang sử dụng WebKit cho Microsoft Outlook trên Mac.
Gecko là layout engine ban đầu được phát triển bởi Netscape vào năm 1997 để khắc phục nhược điểm của trình duyệt Netscape so với Internet Explorer của Microsoft.
Ban đầu, Gecko có tên mã dự án là Raptor và được chia thành hai phần chính: Browser Engine và Rendering Engine, phục vụ cho việc tương tác của người dùng với trình duyệt.
Rendering Engine sẽ biên dịch các mã như HTML, XML, Javascript được sử dụng trong thiết kế website. Kết quả là website hoàn chỉnh sẽ được trả về cho người dùng.
Redering Engine sử dụng các thành phần như Necko để đảm bảo bảo mật và đúng đắn trong giao thức internet, Spider Monkey để xử lý Javascript, và các thành phần khác cho XML và giao diện hình ảnh.
Sau khi mua lại Netscape vào năm 2003, AOL đã ngừng phát triển Gecko. Mozilla tiếp tục phát triển layout engine này.
Gecko đã được sử dụng trong nhiều trình duyệt và ứng dụng như K-Meleon, Seamonkey và Thunderbird. Tuy nhiên, điểm yếu của nó là bảo mật so với Trident.
Gecko đã hoàn thành bài kiểm tra Acid2 và hoạt động tốt với HTML5, nhưng vẫn có một số vấn đề với CSS3.
WebKit đã có 12 năm phát triển và được nhiều hãng như Adobe, Samsung và Google ưa thích. Google Chrome và Safari là sản phẩm phổ biến được xây dựng trên nền WebKit.
WebKit bao gồm hai kỹ thuật chính, KHTML và KJS, đã được phát triển bởi dự án của KDE, tổ chức phát triển ứng dụng miễn phí.
Phần cốt lõi của WebKit bao gồm hai thành phần quan trọng: WebCore và JavaScriptCore. WebCore đảm nhận việc biên dịch các phần tử định dạng của một trang web như HTML, CSS, đặc biệt là định dạng SVG - một loại hình ảnh dựa trên ngôn ngữ đánh dấu XML với khả năng trình bày hình ảnh vượt trội so với các định dạng hình ảnh thông thường như JPEG hoặc PNG.
Ngoài ra, WebCore đã hoàn thành thành công cả hai bài kiểm tra Acid2 và Acid3 với hiệu suất xử lý nhanh chóng và tiêu thụ tài nguyên phần cứng rất ít. WebCore cũng tuân thủ các tiêu chuẩn định dạng được W3C quy định với khả năng xử lý CSS3 và HTML5 rất tốt.
Tiếp theo là JavaScriptCore. Phát triển từ KJS với một số cải tiến đáng kể. JavaScriptCore của WebKit có khả năng thu gom rác rất tốt, cải thiện tài nguyên phần cứng mỗi khi trình duyệt hoạt động. Không những thế, JavaScriptCore còn vượt qua bài kiểm tra chuẩn Javscript của Mozilla.
Apple đã giới thiệu chuẩn WebKit2 với khả năng xử lý đa tiến trình đồng thời, tăng hiệu suất xử lý của trình duyệt Safari. Đối với Google, Chrome Webkit cũng đã áp dụng kỹ thuật này sớm hơn.
Ngoài việc là 'trái tim' của trình duyệt Safari và Google Chrome, WebKit còn được sử dụng trong nhiều sản phẩm khác như iPhone, iPod và các ứng dụng cho các thiết bị công nghệ mới của Adobe như Adobe Air.
Cuối cùng là Presto, bộ máy trình bày của trình duyệt Opera. Presto được Opera giới thiệu vào năm 2003 với mục tiêu thay thế bộ máy trình bày Elektra của họ và vẫn được sử dụng cho đến ngày nay với Opera 11.
Khác biệt so với ba trình duyệt đã được đề cập, Presto thuộc sở hữu độc quyền của Opera và họ vẫn giữ bí mật về công nghệ của mình. Chỉ những đối tác từ bên thứ ba mới có được thông tin phát triển khi mua quyền sử dụng Presto từ Opera.
Presto hiệu quả khi làm việc với JavaScript và đã vượt qua nhiều bài kiểm tra JavaScript khác nhau. Tương tự như WebKit, Presto cũng đã hoàn thành cả hai bài kiểm tra chuẩn Acid2 và Acid3 một cách xuất sắc.
Ngoài ra, một số ứng dụng của Nintendo cũng đã sử dụng Presto làm bộ máy trình bày. Trước đây, Adobe cũng đã sử dụng bộ máy trình bày này cho một số sản phẩm của họ, nhưng sau đó họ đã chuyển sang sử dụng WebKit.
Đây là một cái nhìn tổng quan về những gì ẩn sau các trình duyệt mà chúng ta đang sử dụng. Từ đó, chúng ta có thể hiểu được lý do dẫn đến sự khác biệt về tốc độ giữa các trình duyệt phổ biến hiện nay.