NhaLapTrinh.comNhà Lập Trình
Máy tính chạy thế nào

Chuyện gì xảy ra khi bạn gõ một địa chỉ trang web?

Khi bạn gõ một địa chỉ web, máy bạn hỏi hệ thống tên miền để đổi tên thành địa chỉ số, mở kết nối có mã hoá tới máy chủ, gửi yêu cầu, nhận về trang và tải thêm hàng chục tệp nhỏ rồi mới vẽ lên màn hình. Mỗi bước đều có thể chậm hoặc hỏng.

🎙️
📑 Nội dung theo chương
  1. 0:35 Chặng một: đổi tên thành địa chỉ
  2. 1:27 Chặng hai: bắt tay và mã hoá
  3. 2:18 Chặng ba: máy chủ nhận yêu cầu và làm việc
  4. 3:10 Chặng bốn: trình duyệt vẽ trang
  5. 3:58 Vì sao hiểu hành trình này lại quan trọng?
  6. 4:48 Câu hỏi thường gặp
🔊 Bản audio (lồng nhạc nền)

Khi bạn gõ một địa chỉ web và bấm phím, máy bạn trước hết hỏi hệ thống tên miền để đổi cái tên dễ nhớ thành một địa chỉ số, rồi mở một kết nối có mã hoá tới máy chủ, gửi yêu cầu, nhận về trang, tải thêm hàng chục tệp nhỏ và cuối cùng vẽ lên màn hình. Tất cả thường chỉ mất chưa tới một giây, và mỗi bước đều có thể là chỗ hỏng.

Chào bạn, đây là Nhà Lập Trình. Đây là câu hỏi mà người phỏng vấn rất thích hỏi, không phải vì họ cần bạn thuộc lòng, mà vì câu trả lời cho thấy bạn hiểu thế giới bên dưới đoạn mã mình viết tới đâu. Mình sẽ kể hành trình đó như kể một chuyến giao hàng.

Chặng một: đổi tên thành địa chỉ

Máy tính không tìm nhau bằng tên, mà bằng địa chỉ số, giống như bưu điện cần số nhà chứ không cần biết tên chủ nhà. Cái tên bạn gõ chỉ là một nhãn dễ nhớ. Việc đầu tiên máy bạn làm là hỏi: tên này ứng với địa chỉ số nào.

Nó hỏi lần lượt nhiều nơi. Trước hết là trí nhớ của chính trình duyệt và máy tính, xem gần đây đã hỏi chưa. Chưa thì hỏi máy chủ phân giải tên của nhà mạng. Máy chủ đó nếu chưa biết sẽ đi hỏi tiếp theo một cây phân cấp, từ gốc, tới đuôi tên miền như chấm com hay chấm vn, tới nơi đang giữ bản ghi của đúng tên miền đó.

Mỗi câu trả lời đi kèm một thời hạn được phép nhớ. Đây là lý do khi bạn đổi máy chủ cho một trang web, có người thấy trang mới ngay, có người vài giờ sau vẫn thấy trang cũ. Họ đang dùng câu trả lời đã nhớ từ trước.

Với người lập trình, chặng này là chỗ đầu tiên cần nghi khi trang web không vào được mà máy chủ vẫn chạy bình thường.

Chặng hai: bắt tay và mã hoá

Có địa chỉ rồi, máy bạn mở một kết nối tới máy chủ. Hai bên trao đổi vài gói tin qua lại để xác nhận cả hai đều nghe được nhau. Người trong nghề gọi đó là bắt tay.

Với trang web có ổ khoá trên thanh địa chỉ, còn thêm một vòng bắt tay nữa để thiết lập mã hoá. Máy chủ đưa ra chứng chỉ, giống như căn cước, được một tổ chức đáng tin xác nhận. Trình duyệt kiểm tra chứng chỉ đó có đúng tên miền, còn hạn không. Sau đó hai bên thống nhất một chìa khoá bí mật chỉ dùng cho phiên này.

Chứng chỉ hết hạn là một trong những lỗi phổ biến và ngớ ngẩn nhất. Trang web đang chạy tốt bỗng một sáng hiện cảnh báo đỏ không an toàn, chỉ vì không ai nhớ gia hạn. Nhiều đội giờ để máy tự gia hạn, nhưng tự động cũng có ngày hỏng lặng lẽ.

Nếu khoảng cách xa, mỗi vòng bắt tay tốn thêm thời gian đi về. Đây là một lý do máy chủ đặt ở gần người dùng thì trang mở nhanh hơn, dù máy chủ ở xa có mạnh hơn.

Chặng ba: máy chủ nhận yêu cầu và làm việc

Kết nối xong, trình duyệt gửi một yêu cầu, nói rằng mình muốn trang nào, mình là trình duyệt gì, mình hiểu ngôn ngữ nào, và kèm theo những mẩu ghi nhớ từ lần trước như thông tin đăng nhập.

Phía máy chủ, yêu cầu thường đi qua vài lớp. Lớp đầu đón khách, phân luồng, trả luôn những tệp tĩnh như ảnh. Yêu cầu cần xử lý thì được chuyển vào chương trình do lập trình viên viết. Chương trình đó đọc cơ sở dữ liệu, ghép dữ liệu vào khuôn trang, rồi trả kết quả ngược ra.

Đây là chặng mà lập trình viên kiểm soát nhiều nhất, và cũng là chặng hay chậm nhất nếu viết không cẩn thận. Một trang phải hỏi cơ sở dữ liệu hai trăm lần thay vì hai lần sẽ khiến người dùng đợi, dù mạng rất nhanh.

Máy chủ trả lời kèm một mã trạng thái. Hai trăm nghĩa là ổn. Bốn trăm linh bốn là không tìm thấy. Năm trăm là máy chủ gặp lỗi bên trong. Học đọc mã này là bước đầu tiên của gỡ lỗi web.

Chặng bốn: trình duyệt vẽ trang

Thứ trả về đầu tiên thường chỉ là khung văn bản của trang. Trình duyệt đọc nó và phát hiện cần thêm rất nhiều thứ khác: tệp định dạng giao diện, tệp chương trình chạy trên trình duyệt, ảnh, phông chữ. Mỗi thứ lại là một yêu cầu mới, có khi tới vài chục, vài trăm yêu cầu.

Trình duyệt vừa tải vừa dựng. Nó đọc cấu trúc trang, áp định dạng, tính vị trí từng phần tử, rồi vẽ lên màn hình. Nếu một tệp chương trình nằm chặn ở đầu trang, trình duyệt có thể phải đợi nó tải và chạy xong mới vẽ tiếp. Người dùng thấy màn hình trắng.

Đây là lý do một trang web có máy chủ trả lời rất nhanh vẫn có thể cảm thấy chậm. Phần lớn thời gian nằm ở chặng cuối, ở những tấm ảnh chưa nén, phông chữ nặng, hàng loạt đoạn chương trình quảng cáo và theo dõi.

Khi ai đó phàn nàn trang chậm, người lập trình giỏi sẽ hỏi chậm ở chặng nào trước khi sửa.

Vì sao hiểu hành trình này lại quan trọng?

Bạn có thể viết mã web nhiều năm mà không cần nghĩ tới những chặng này. Cho đến một ngày trang không vào được, và bạn không biết bắt đầu tìm từ đâu. Người hiểu hành trình sẽ khoanh vùng rất nhanh: tên miền có phân giải đúng không, kết nối có tới máy chủ không, máy chủ trả mã gì, trình duyệt kẹt ở tệp nào.

Hiểu hành trình cũng giúp bạn viết mã tốt hơn ngay từ đầu. Bạn sẽ tự nhiên nghĩ tới việc giảm số yêu cầu, nén ảnh, đặt tệp nặng xuống cuối, và để máy chủ gần người dùng.

Và nó giúp bạn nói chuyện với đồng nghiệp ở các mảng khác. Người quản trị mạng, người vận hành máy chủ, người làm giao diện, mỗi người lo một chặng. Khi bạn hiểu cả chuyến đi, bạn biết nên gọi ai khi chặng nào có vấn đề.

Lần tới khi bạn gõ một địa chỉ và trang hiện ra trong nháy mắt, hãy thử hình dung chuyến giao hàng vừa diễn ra qua bao nhiêu trạm.

Câu hỏi thường gặp

Vì sao đổi máy chủ rồi mà một số người vẫn vào trang cũ?

Vì máy của họ hoặc nhà mạng của họ còn nhớ địa chỉ cũ trong thời hạn được phép nhớ. Khi thời hạn đó hết, họ sẽ hỏi lại và nhận địa chỉ mới.

Ổ khoá trên thanh địa chỉ có nghĩa là trang web an toàn không?

Ổ khoá chỉ có nghĩa là đường truyền giữa bạn và trang đó được mã hoá và chứng chỉ khớp tên miền. Nó không bảo đảm chủ trang đáng tin, trang lừa đảo cũng có thể có ổ khoá.

Mã lỗi năm trăm và bốn trăm linh bốn khác nhau thế nào?

Bốn trăm linh bốn nghĩa là máy chủ chạy bình thường nhưng không tìm thấy trang bạn yêu cầu. Năm trăm nghĩa là máy chủ gặp lỗi khi xử lý, thường do lỗi trong chương trình hoặc cơ sở dữ liệu.

Vì sao trang web mở lần hai nhanh hơn lần đầu?

Vì trình duyệt đã nhớ địa chỉ tên miền, giữ sẵn kết nối và lưu lại nhiều tệp như ảnh, phông chữ, tệp định dạng. Lần sau nó chỉ cần tải phần thay đổi.

Lập trình viên web có cần học về mạng máy tính không?

Không cần sâu như kỹ sư mạng, nhưng nên hiểu các chặng cơ bản như phân giải tên miền, kết nối, mã trạng thái và bộ nhớ đệm. Hiểu những điều này giúp gỡ lỗi nhanh hơn rất nhiều.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.