MƯỜI CHẶNG

Website & trình duyệt

Minh mở đúng địa chỉ trên điện thoại. Bống mở đúng địa chỉ đó trên máy tính ở nhà, cách xa mấy cây số. Cả hai cùng thấy y hệt một trang. Trang đó thật ra đang nằm ở đâu?

server ở nơi khác
CHẶNG 1

Chuyện là thế này

CLB Tin học đang làm một việc rất nhỏ — nhưng sắp khiến Minh thắc mắc cả buổi.

Sắp tới trường có Hội chợ Khoa học. Thầy Huy giao cho CLB Tin học làm một trang web bé xíu để giới thiệu — mấy dòng chữ, một tấm ảnh, và lịch các gian hàng.

Làm xong, thầy Huy gửi cho cả lớp đúng một dòng địa chỉ web, dặn: "Cứ gõ đúng dòng này vào trình duyệt, xem thử."

Tối đó, Minh gõ địa chỉ trên điện thoại của mình. Cùng lúc, Bống — đang ở nhà, cách Minh mấy cây số — gõ y hệt địa chỉ đó trên máy tính bàn nhà mình.

Hai đứa nhắn tin cho nhau ngay sau đó: cả hai cùng thấy đúng một trang, giống nhau đến từng chữ, dù đang dùng hai thiết bị khác hẳn nhau, ở hai nơi chẳng liên quan gì đến nhau.

Minh — điện thoại cách nhau vài cây số Bống — máy tính bàn
Hai thiết bị khác hẳn nhau, ở hai nơi chẳng liên quan — vậy mà nội dung hiện ra giống nhau đến từng chữ.

Trước khi đọc tiếp, thử tự hỏi mình

Nếu em cũng gõ đúng một địa chỉ web trên điện thoại của em ngay bây giờ, em nghĩ trang đó đang "nằm" ở máy nào — máy của em, hay ở một nơi nào khác?

CHẶNG 2

Rắc rối xuất hiện

Minh nghĩ chuyện này bình thường thôi — cho tới lúc thử giải thích nó cho Bống nghe.

Minh bảo: "Chắc lúc gõ địa chỉ, máy mình tự tải trang đó về, giống như tải một tấm ảnh vậy."

Bống gật đầu, rồi bỗng khựng lại: "Ừ nhưng nếu máy tớ cũng tự tải một bản về máy tớ... thì bây giờ đang có hai bản riêng à? Một bản trong điện thoại cậu, một bản trong máy tớ?"

Minh im lặng. Nghe thì có lý — nhưng có gì đó không ổn.

điện thoại Minh máy tính Bống ? trang này thật sự đang nằm ở đâu?
Nội dung giống hệt nhau, hiện trên hai thiết bị khác hẳn nhau. Vậy nó nằm ở máy nào — hay chẳng nằm ở máy nào trong hai máy đó cả?
CHẶNG 3

Tại sao lại vậy nhỉ?

Minh và Bống mang đúng câu hỏi đó tới CLB Rô-bốt, chỗ thầy Huy đang ngồi sửa dây điện cho một con robot nhỏ.

Minh hỏi thẳng: "Thầy ơi, trang web đó không nằm trên điện thoại con, cũng chẳng nằm trên máy Bống — vậy nó thật sự nằm ở đâu, mà cả hai đứa cùng mở ra giống hệt nhau được ạ?"

Thầy Huy không trả lời ngay. Thầy hỏi ngược lại: "Hai đứa nghĩ xem — nếu mỗi máy tự tải riêng một bản, thì khi cô giáo sửa lại lịch thi trên website trường, có phải mọi học sinh phải tự tải lại một bản mới không? Có ai từng phải làm thế chưa?"

Minh và Bống nhìn nhau. Không — chưa bao giờ ai phải làm vậy cả. Cứ mở lại trang là thấy bản mới nhất, tự nhiên như thể chẳng có gì phải "tải lại".

LỊCH THI — sửa một lần
Không ai phải tự tải lại gì — mở lại là thấy bản mới. Nếu mỗi máy tự giữ một bản riêng, cảnh này không thể xảy ra được.

Vậy thì cái giả thiết ban đầu sai ở đâu?

Nếu mỗi máy giữ một bản riêng, sao sửa một lần trên trường lại khiến mọi học sinh nhìn thấy bản mới — mà không ai phải làm gì cả? Đây chính là chỗ cần một cách giải thích khác.

CHẶNG 4

À!

Thầy Huy vẽ một hình rất đơn giản lên bảng, và mọi thứ bỗng sáng tỏ.

Website không được "tải về và cất" trong máy như một file thông thường. Nó nằm trên một máy chủ — gọi là server — đặt ở đâu đó, có khi cách trường hàng trăm cây số.

Còn trình duyệt trên điện thoại Minh, hay trên máy tính Bống, không hề giữ một bản riêng nào cả. Nó chỉ giống một "cửa sổ" — mỗi lần em ghé, nó lại hiển thị lại đúng nội dung đang có trên server, y hệt như đang nhìn qua khung cửa vào đúng cùng một căn phòng.

Hai chiếc điện thoại, hai máy tính khác nhau — nhưng cả hai đang nhìn qua hai khung cửa sổ khác nhau vào đúng một nơi.

cửa sổ 1 cửa sổ 2 SERVER (1 nơi) hai khung cửa khác nhau — nhưng cùng nhìn vào một nơi
Không phải hai bản riêng. Chỉ một nơi thật sự giữ nội dung, còn lại là những khung cửa nhìn sang.
Trình duyệt không chứa web.
Nó chỉ là cửa sổ nhìn sang
nơi web đang thật sự nằm.
CHẶNG 5

Gọi tên nó

Bây giờ đã hiểu bản chất, gọi đúng tên hai thứ này cho khỏi nhầm.

Cái nội dung nằm trên server, hiển thị được thông qua một địa chỉ web — người ta gọi là WEBSITE.

Còn phần mềm em dùng để mở và hiển thị nó ra — như Chrome, Safari, hay Cốc Cốc — gọi là TRÌNH DUYỆT (tiếng Anh: browser).

Vậy website là cái đang được xem, còn trình duyệt là công cụ để xem nó. Nhưng nếu trình duyệt chỉ là cửa sổ, không hề giữ gì cả — thì mỗi lần em bấm vào một đường liên kết, chuyện gì thật sự đang xảy ra phía sau?

TRÌNH DUYỆT công cụ để xem WEBSITE nội dung đang được xem
Trình duyệt và website là hai thứ khác nhau — một cái để xem, một cái được xem.

Một chữ dễ lẫn

Nhiều người quen gọi tắt "vào mạng" hay "lên web" — nhưng đúng ra là: mở trình duyệt, để nó hiển thị lại một website đang nằm ở nơi khác. Trình duyệt và website là hai thứ khác nhau, không phải một.

CHẶNG 6

Bản chất thật sự

Chặng này giải thích chính xác điều gì xảy ra mỗi lần em gõ địa chỉ hoặc bấm vào một liên kết — chặng quan trọng nhất bài.

Mỗi lần vậy, trình duyệt gửi một yêu cầu tới đúng server đang giữ website đó (đúng như cuốn Server & Client đã kể — trình duyệt đóng vai client, người gọi món). Server nhận yêu cầu, chuẩn bị đúng nội dung, rồi trả về. Trình duyệt nhận nội dung đó và vẽ lại thành trang em đang nhìn thấy.

GỬI YÊU CẦU trình duyệt hỏi server SERVER tìm đúng nội dung và chuẩn bị trả lời VẼ LẠI TRANG trình duyệt hiển thị ba bước này lặp lại y hệt mỗi lần em ghé, cho bất kỳ ai gõ đúng địa chỉ
Không có bước nào là "lấy từ máy của em" cả — mọi nội dung đều được server chuẩn bị lại, mỗi lần được hỏi.

Vì vậy, khi Minh và Bống cùng mở một địa chỉ, cả hai đều đang "hỏi" đúng một server — không phải mỗi máy tự giữ một bản riêng. Nên trang hiện ra mới giống hệt nhau, đến từng chữ.

Trừ một trường hợp

Có những trang hiển thị nội dung riêng theo từng người — ví dụ trang cá nhân hiện đúng tên em. Lúc đó server vẫn trả lời cho cả hai người hỏi, chỉ là nó biết ai đang hỏi để trả đúng phần dành cho người đó. Bản chất "hỏi cùng một server" vẫn không đổi.

CHẶNG 7

Một ví dụ khác — ngay trong thư viện trường

Không cần máy tính mới thấy được điều này. Thư viện của cô Hạnh cũng đang hoạt động y hệt vậy.

Cô Hạnh giữ đúng một bản gốc duy nhất của mỗi cuốn sách quý trong thư viện. Học sinh tới đọc, cô đưa ra, các bạn đọc tại chỗ rồi trả lại — ai đọc cũng đang xem đúng một bản gốc đó.

Chuyện đó khác hẳn với việc mỗi bạn tự phô tô một bản riêng mang về nhà. Nếu làm vậy, sau này cô Hạnh sửa một lỗi in trong sách, cô chỉ sửa được bản gốc — còn hàng chục bản phô tô đã phát tán khắp nơi thì vẫn giữ nguyên lỗi cũ, chẳng ai cập nhật lại được.

1 BẢN GỐC ba bạn cùng đọc lại đúng một bản, không ai giữ bản riêng
Website giống kiểu đầu: có một "bản gốc" trên server, ai cũng đang xem lại đúng bản đó qua trình duyệt của mình.

Vậy nếu website hoạt động theo kiểu "mỗi người tự phô tô một bản" thay vì "một bản gốc, ai cũng xem lại" — điều gì sẽ xảy ra khi cần sửa một chỗ sai?

CHẶNG 8

Nếu không có nó thì sao

Thử tưởng tượng một thế giới không có website và trình duyệt như bây giờ — chỉ để thấy rõ hơn nó đang giúp gì.

Nếu không có cơ chế "một bản gốc trên server, ai cũng xem lại", thì mỗi người muốn xem cùng một nội dung phải được gửi riêng một bản sao — giống như gửi kèm một file đính vào email cho từng người một.

Vậy khi cô giáo sửa lịch thi, cô sẽ phải gửi lại file mới cho từng học sinh một, và hy vọng không ai lỡ mở nhầm bản cũ đã lưu từ trước.

NẾU KHÔNG CÓ WEBSITE/TRÌNH DUYỆT Mỗi người giữ một bản sao riêng
Sửa một lần, phải gửi lại cho từng người
Không cách nào chắc mọi người đang xem đúng bản mới nhất
VÌ CÓ WEBSITE/TRÌNH DUYỆT Chỉ một bản gốc, nằm trên server
Sửa một lần trên server là xong
Ai mở lại cũng thấy đúng bản mới nhất, ngay lập tức
CÔ GIÁO bản 1 bản 2 bản 3 mỗi lần sửa, phải gửi lại — cho từng người, từng bản một
Không có "một bản gốc để ai cũng xem lại", việc chia sẻ thông tin sẽ chậm và dễ nhầm bản cũ.

Vậy điều gì khiến hàng triệu người trên khắp thế giới có thể cùng xem, cùng cập nhật một nội dung theo thời gian thực — mà không ai phải gửi lại gì cho ai?

CHẶNG 9

Em đã gặp nó ở đâu rồi

Chuyện này không chỉ có ở CLB Tin học. Rất có thể em đã gặp nó nhiều lần rồi, mà chưa để ý.

Cập nhật lịch thi trên website trường: cô giáo chỉ sửa một lần trên server, mọi học sinh mở lại đều thấy bản mới ngay — không ai cần được gửi lại file nào cả.

Còn cái trang "404 not found" mà thỉnh thoảng em gặp khi bấm nhầm một liên kết? Đó là lúc trình duyệt đã hỏi đúng server, nhưng server tìm mãi không thấy đúng nội dung được yêu cầu — nên trả lời "không tìm thấy", chứ không phải máy em bị lỗi gì cả.

trình duyệt server "không tìm thấy" 404 — server có trả lời, chỉ là không có đúng nội dung được hỏi
Không phải máy em hỏng — server chỉ đang thành thật báo là không tìm thấy trang đó.

Đọc xong rồi, thử tự kiểm tra nhé

Không chấm điểm đâu — bấm vào câu em nghĩ là đúng, xem gợi ý bên dưới.

1. Minh và Bống ở hai nơi khác nhau nhưng thấy cùng một trang web — điều đó chứng tỏ trang web nằm ở máy của ai?

2. Nếu cô giáo sửa lịch thi trên website trường, học sinh có cần cài lại gì trên máy mình để thấy bản mới không?

3. Trang "404 not found" thật ra đang báo điều gì?

Còn phần em — câu hỏi của riêng em là gì?

Đọc xong bài, chắc em còn thắc mắc gì đó chưa được giải thích hết. Viết ra đây, không cần đúng-sai, chỉ cần thật.

    Cuộn nốt xuống dưới nhé — sắp xong trang này rồi!

    CHẶNG 10

    Kể lại cho bạn trong 30 giây

    Nếu chỉ được nhớ một câu từ cả bài này, hãy nhớ câu này.

    Tối đó Minh thử kể lại cho Bống nghe những gì thầy Huy giải thích — bằng đúng một câu, ngắn nhất có thể.

    Trình duyệt không chứa web —
    nó chỉ là cửa sổ nhìn sang server đang giữ web đó.

    Từ giờ, mỗi lần gõ một địa chỉ web, Minh sẽ nhớ tự hỏi: mình đang mở một bản của riêng mình, hay đang nhìn qua cửa sổ sang đúng nơi mọi người khác cũng đang nhìn vào?