Very hot <<== bấm vào

Lý thuyết chung, tổng quát về tăng tốc web

Submitted by superthin on 09/02/2020 - 08:33:56
Chỉnh các yếu tố giúp tăng tốc web

Để có thể làm tăng hiệu suất, tốc độ nạp về của một website người ta buộc phải tìm hiểu kỹ những yếu tố nào ảnh hưởng đến việc nạp trang, sắp xếp theo thứ tự ưu tiên của chúng để phối hợp điều chỉnh sao cho đạt mức tối ưu. Việc làm này đôi lúc gọi là tối ưu hóa website.

Hiểu được cách thức một trang web được nạp về máy tính người dùng

Lưu ý quan trọng: từ trang web, website có lúc được dùng lẫn lộn với nhau, trang web có lúc là một trang đơn như một file HTML nên bạn cần có chút... tỉnh táo.

Có bao giờ bạn đặt câu hỏi chuyện gì xảy ra khi bạn gõ một địa chỉ trang web vào thanh địa chỉ trình duyệt web? Với một số người dùng không có kiến thức về IT hoặc lười biếng, không nhớ được địa chỉ trang web, đơn giản là gõ vào Google rồi click lên kết quả đầu tiên.

Để Thin giải thích qua cho bạn biết nếu chưa từng biết qua một ví dụ cụ thể nhé. Bạn mở trình duyệt web lên, trường hợp bạn không biết trình duyệt web là cái gì, đơn giản là bạn từng bấm chuột hoặc chọc đầu ngón tay (trên điện thoại) vào một trong những hình trong danh sách sau:

Biểu tượng trình duyệt web trên máy tính, di động
Biểu tượng icon các trình duyệt web thông dụng

Rồi tìm kiếm, click vào cái gì bạn tìm thấy, nó mang bạn vào 1 trang web, như superthinlabs.com này:

Giao diện superthinlabs.com trên mobile
Giao diện website superthinlabs.com trên mobile/ smartphone

Đó là những gì bạn thấy, giống bạn ngồi uống ly cà phê vậy. Đằng sau hậu trường đó là gì? Sự phức tạp, rắc rối đủ để bạn làm một luận văn tiến sỹ về công nghệ thông tin, Thin đơn giản hóa:

1- Trình duyệt web kiểm tra xem mạng Internet bạn có tồn tại? Nếu không, báo lỗi ngay. Nếu có, nó gửi yêu cầu truy cập của bạn lên Internet. Trên đó sẽ có những máy chủ DNS có vai trò như người dẫn đường (hình dung giống kiểm soát viên không lưu ở sân bay) tìm một máy chủ có tên miền đại diện: superthinlabs.com

2- Máy chủ xem xét yêu cầu truy cập có hợp lệ hay không? Hợp lệ sẽ gửi trả về trang web tương ứng, ở đây không có kèm địa chỉ URL cụ thể, nó sẽ trả về trang index, default được thiết lập sẵn trên máy chủ. Không hợp lệ, hoặc có vấn đề bạn sẽ nhận được các lỗi thông báo, hay thấy thông báo lỗi kèm những con số như 403, 404, 500, 501, 502, 503, v.v,...

3- Trình duyệt web nhận về file HTML kèm những thứ được nhúng trong trong nội dung HTML: kịch bản JavaScript, quy định về kiểu dáng, luật hiển thị các thành phần trên trang HTML (Cascading Style Sheets, viết tắt CSS), nội dung đa phương tiện media: hình ảnh, âm thanh, video clip

4- Bạn đang là người dùng thông thường, nên trình duyệt web của bạn chắc chắn không phải là loại hiển thị file HTML mà nó lấy về dưới dạng một đống mã rối rắm. Nó sẽ "xào nấu" mớ mà nó lấy về đó, rồi hiển thị lên màn hình của bạn các bài viết, hình ảnh trông hơi giống với trang bìa của một tờ báo ngày.

Quá trình từ 1-4 trên thông thường mất 2 đến 10 giây. Những trường hợp nhanh hơn/ chậm hơn là do hạ tầng mạng đang quá tốt/ quá tệ hoặc trang web có vấn đề, hoặc trang web là một dạng ứng dụng đặc biệt.

Tuyến đường vận chuyển một file tài liệu HTML từ web server về đến máy tính, điện thoại của bạn

Qua 4 bước trên, nếu bạn là người sở hữu một website, bạn nhìn thấy quá trình một trang web chạy/ nạp về máy người truy cập có gì đó giống như việc một công ty cấp nước sinh hoạt ở thành phố. Bạn là nhà cung cấp nước, bạn sẽ làm gì? Thử xem sao:

- Làm cái hồ chứa cho lớn, chứa được nhiều nước

- Hệ thống bơm áp lực mạnh để đẩy nước vào giờ cao điểm

- Đường ống to, lòng ống thông thoáng để nước chảy nhanh

- Thủ tục cấp đồng hồ nước dễ dàng, thuận tiện, nhanh chóng

Còn gì nữa không? Nếu nghĩ không ra, bạn nên quan sát, học hỏi ở một công ty cấp nước khác để học hỏi.

Tương tự như vậy, để một file HTML từ máy chủ web "chảy về" trình duyệt web người dùng một cách thông suốt, mượt mà nhất, bạn cũng phải làm nhiều thứ, ta gom vào 3 nhóm chính:

Nhóm thứ nhất: phần cứng máy tính, hạ tầng mạng, đường truyền

Về mặt lý thuyết, phần cứng máy chủ web đời càng mới, ổ cứng công nghệ mới truy xuất nhanh, RAM càng lớn, CPU càng mạnh sẽ xử lý trang web của bạn nhanh, sớm phản hồi yêu cầu từ trình duyệt web. Tất nhiên, thời gian trả lời không bao giờ có thể đạt ở mức zero, không mili giây nào. Bạn đừng yêu cầu đạt được mức độ không tưởng đó.

Máy chủ được đặt ở trung tâm dữ liệu có hạ tầng mạng tốt, đạt các tiêu chuẩn quốc tế, không bị lỗi định tuyến vớ vẩn sẽ giúp cho trang web của bạn đi qua hệ thống "ngọt xớt", dễ dàng truyền ra ngoài đến hệ thống mạng backbone để truyền về ISP của người duyệt web.

Nhóm thứ hai: phần mềm hệ điều hành server, web server, cơ sở dữ liệu chứa nội dung web, ngôn ngữ lập trình web (nếu là web động - ngày nay hầu hết trang web là web động)

Người ta hay gọi nhóm này là technical stack (solution stack) là một tập hợp những phần mềm/ công nghệ phối hợp chung với nhau, tạo thành một nền tảng để ứng dụng web của bạn có thể hoạt động được.

Về mặt lý thuyết, không có cái gọi là stack nào là tốt nhất hay tệ nhất. Bạn chọn stack quá xa lạ, không tìm được những lập trình viên giỏi hoặc sử dụng mã nguồn quá cũ, lỗi thời, nhiều bug sẽ dẫn đến tạo ra một ứng dụng web thảm họa.

Nhóm thứ ba: kỹ thuật xây dựng/ thiết kế trang web

Ở đây chỉ bàn về giao diện hiển thị trang web với người dùng, cũng chỉ bàn đến web loại thông thường như các trang tin tức, hoặc ứng dụng web đơn giản. Các trang web dạng đặc biệt kiểu như game, ứng dụng phức tạp sẽ không bàn đến ở đây vì một khi bạn sở hữu một loại ứng dụng như vậy, bài này là chuyện vớ vẩn đối với bạn.

Một trang web được thiết kế tốt, gọn ghẽ, nạc (không thừa mã linh tinh) sẽ giúp cho trang web có kích thước nhỏ gọn. Về lý thuyết, kích thước trang web tỉ lệ nghịch với thời gian truyền đi, bởi vì tốc độ trên mạng được đo bằng kbps (kilô bít trên giây).

Ngoài kích thước nhỏ ra, trang web còn phải có mã HTML được viết thế nào đó hợp chuẩn để trình duyệt có thể phân giải nhanh, giúp thời gian hiển thị trước mắt người dùng nhanh chóng.

Bạn có thể trực tiếp nhúng tay vào chỗ nào trong những thứ kể trên?

Nếu có khả năng để vọc được vào hầu hết các thứ kể trên, biết cách tối ưu như thế nào để cho trang web trở nên nạp nhanh hơn, điều đó thật tuyệt vời. Trường hợp chỉ biết chút ít, có thể làm một phần nào đó thì cũng cứ thử bắt tay làm xem sao, trong quá trình làm sẽ học hỏi thêm. Học thêm bằng cách đọc bài trên các trang web của những nhà phát triển web, blog cá nhân của một số lập trình viên, dự hội thảo, học qua bạn, qua thầy, qua đồng nghiệp,... Có rất nhiều nơi để học hỏi, ăn thua là bạn có muốn học hay không mà thôi.

Những bài viết khác cùng chuyên mục tăng tốc web, Thin sẽ lần lượt trình bày từng thứ một, những thứ Thin đã tự học được và áp dụng cho chính trang web này. Mời các bạn hàng tuần ghé lại, đón đọc!

Trường hợp bạn tính toán rằng việc bỏ thời gian để tự tay làm tăng tốc web của bạn là không hiệu quả, bạn dành thời gian cho việc khác tốt hơn, bạn cần thuê người khác làm giúp.

Bài viết có hữu ích chút nào với bạn? Hãy cho chúng tôi biết bằng cách bình luận bên dưới./.