Web hoạt động như thế nào?


Câu hỏi phỏng vấn:

  • Bạn vào trình duyệt Web
  • Bạn gõ "google.com"
  • Chuyện gì sẽ xảy ra phía sau, sau khi bạn ấn nút Enter?
  • Cho đến lúc trang web "google.com" hiển thị ?

Có nhiều cách giải thích, có cách giải thích khái quát, có cách giải thích chuyên sâu, thực ra cơ chế hoạt động thực tế thì rất phức tạp.


Kết quả hình ảnh cho web operation

Cách giải thích khái quát sơ sơ:

  1. Đầu tiên, trình sẽ ko biết nó sẽ hoạt động dựa trên máy chủ nào?
    • Do vậy, trình duyệt sẽ đọc từ file host trước
      • Để kiểm tra xem tương đương với IP nào
    • Ko có thì trình duyệt sẽ hỏi DNS
      • DNS là gì? Có thể hiểu nó là 1 Server chứa toàn bộ tên miền (Domain Name)
      • Vì địa chỉ IP là một dãy các con số nên rất khó nhớ.
    •  DNS sẽ dịch "google.com" này thành địa chỉ IP
      • VD:  "google.com" <=> DNS <=> 192.168.6.9
  2. Sau khi trình duyệt nó đã biết cái IP rồi thì:
    • Trình duyệt sẽ kết nối đến Server thông qua giao thức gọi là: TCP
    • TCP? là phương thức truyền các gói tin qua lại giữa trình duyệt và Server
    • Giao thức là gì? Có thể hiểu đơn giản nó chỉ là cách để cho 2 thằng giao tiếp <=> với nhau
    • Tới bước 2 bên thiết lập, Server sẽ phản hồi trình duyệt
    • Trình duyệt nhận đc và xác nhận, gửi tiếp cho Server, cả 2 bên đc xác nhận là kết nối đã thiết lập xong.
  3. Sau khi 2 bên thiết lập xong, trình duyệt sẽ nói chuyện với Server
    • Nói chuyện với nhau thông qua giao thức HTTP
    • Giao thức HTTP? là giao thức nó nằm phía trên TCP, nhưng dựa trên TCP để truyền dữ liệu qua lại
    • VD:  Bạn vào "Google.com" nó sẽ truyền một giao thức HTTP (với method là GET)
  4. Server sẽ trả về những file mà trình duyệt web yêu cầu(HTML, CSS, ...) để trình duyệt render xây lên website.

Đó chỉ là giải thích khái quát sơ sơ ngắn gọn vậy thôi, thực tế chuyên sâu thì quá trình nó "rất" phức tạp hơn nhiều.

  • Nếu bạn đi phỏng vấn về mạng:
    • Làm sao để trình duyệt kết nối đến DNS?
    • DNS nó truyền các gói tin như thế nào?
    • DNS nó trả về các gói tin ra sao?
  • Nếu bạn đi phỏng vấn về BackEnd:
    • Khi mà trình duyệt gửi method là GET tới Server, thì Server nó sẽ làm gì?
    • Nó parse cái URL ra sao?
    • Nó gọi tới Database kiểu gì?
    • Nó lấy Database ra sao?
  • Nếu bạn đi phỏng vấn về FrontEnd:
    • CSS và JavaScript nó chạy như thế nào?
    • JavaScript khi nhận về nó hoạt động ra sao?
    • Các JS hiển thị trang, render, ... các hành động đó nó diễn ra như thế nào?



Nhận xét

Bài đăng phổ biến từ blog này

Tổng hợp phím tắt Eclipse

Phân biệt abstract và virtual

nvarchar khác char ở điểm nào? khi nào dùng nvarchar ? khi nào dùng char?