Mục lục bài họcĐang ở d04-b1
How the web works
Internet and World Wide Web are not the same
| the internet | the global network infrastructure — the cables, routers and protocols that connect computers worldwide |
| the World Wide Web | the collection of web pages and websites that are accessed using the internet |
The internet is the road system; the web is the traffic travelling on it. Email, file transfer and online gaming also use the internet but are not part of the web.
The parts of a URL
A uniform resource locator has three parts:
$$\underbrace{\text{https://}}_{\text{protocol}}\ \underbrace{\text{www.example.com}}_{\text{domain name}}\ \underbrace{\text{/pages/index.html}}_{\text{file path and name}}$$- protocol — the set of rules used, usually $\text{http}$ or $\text{https}$;
- domain name — the name of the server holding the site;
- file path and name — which page on that server is wanted.
HTTP and HTTPS
HTTP is the protocol for transferring web pages. HTTPS is the same protocol with encryption added, using $\text{SSL}$ or $\text{TLS}$.
The single letter matters: with $\text{https}$, anyone intercepting the traffic sees only ciphertext. This is essential for passwords, card numbers and any personal data — and it is why browsers show a padlock.
The Domain Name Service
Computers find each other by IP address, a number. People remember names. The DNS bridges the two.
- the user types a domain name into the browser;
- the browser asks a DNS server for the matching IP address;
- if that server does not know it, it passes the request to another DNS server;
- the IP address is returned to the browser;
- the browser uses the IP address to request the page from the web server;
- the server sends the page back, and the browser renders it.
Note the browser's job: it does not store the pages. It requests them, then interprets the HTML and displays the result.
Cookies
A cookie is a small text file stored on the user's computer by a website.
| session cookie | held in memory and deleted when the browser closes — used for a shopping basket during one visit |
| persistent cookie | saved on the hard disk and survives closing the browser — used to remember logins, language and preferences |
Uses: saving preferences, keeping a user logged in, holding items in a basket, and tracking which pages a user visits for targeted advertising.
The last use is why cookies raise privacy concerns, and why sites must ask permission.
Digital currency and blockchain
Digital currency exists only electronically. Its problem is trust: without a bank, what stops someone spending the same coin twice?
Blockchain solves this with a decentralised digital ledger — a record of every transaction, copied across many computers.
Each block contains the transaction data, a timestamp, and a hash of the previous block. That last part is the key: changing an old block changes its hash, which breaks every block after it, so tampering is immediately visible.
Because the ledger is held on many computers rather than one, there is no single copy to attack or alter.
Internet và World Wide Web không phải một.
- Internet — hạ tầng mạng toàn cầu: hệ thống cáp, bộ định tuyến và giao thức nối các máy tính trên khắp thế giới;
- World Wide Web — tập hợp các trang web và website được truy cập bằng Internet.
Internet là hệ thống đường sá; World Wide Web là dòng xe chạy trên đó. Thư điện tử, truyền tệp và chơi game trực tuyến cũng dùng Internet nhưng không thuộc World Wide Web.
Các phần của một địa chỉ web. Một địa chỉ web có ba phần:
$$\underbrace{\text{https://}}_{\text{giao thức}}\ \underbrace{\text{www.example.com}}_{\text{tên miền}}\ \underbrace{\text{/pages/index.html}}_{\text{đường dẫn và tên tệp}}$$- giao thức — bộ quy tắc được dùng, thường là $\text{http}$ hoặc $\text{https}$;
- tên miền — tên của máy chủ chứa trang;
- đường dẫn và tên tệp — trang nào trên máy chủ đó đang được yêu cầu.
HTTP và HTTPS. HTTP là giao thức truyền trang web. HTTPS là chính giao thức đó kèm mã hoá, dùng $\text{SSL}$ hoặc $\text{TLS}$.
Một chữ cái thôi mà rất quan trọng: với $\text{https}$, ai chặn được lưu lượng cũng chỉ thấy bản mã. Điều này thiết yếu với mật khẩu, số thẻ và mọi dữ liệu cá nhân — và đó là lý do trình duyệt hiển thị hình ổ khoá.
Dịch vụ tên miền. Máy tính tìm nhau bằng địa chỉ IP, tức một dãy số. Con người thì nhớ tên. Dịch vụ tên miền nối hai thứ đó lại.
- người dùng gõ tên miền vào trình duyệt;
- trình duyệt hỏi một máy chủ tên miền để lấy địa chỉ IP tương ứng;
- nếu máy chủ đó không biết, nó chuyển yêu cầu sang một máy chủ tên miền khác;
- địa chỉ IP được trả về cho trình duyệt;
- trình duyệt dùng địa chỉ IP để yêu cầu trang từ máy chủ web;
- máy chủ gửi trang về, và trình duyệt dựng hình trang đó.
Chú ý nhiệm vụ của trình duyệt: nó không lưu trữ các trang. Nó yêu cầu trang, rồi diễn giải mã HTML và hiển thị kết quả.
Cookie. Cookie là một tệp văn bản nhỏ mà website lưu trên máy người dùng.
- Cookie phiên — giữ trong bộ nhớ và bị xoá khi đóng trình duyệt; dùng cho giỏ hàng trong một lần ghé thăm;
- Cookie lâu dài — lưu trên ổ cứng và tồn tại qua nhiều lần đóng mở; dùng để nhớ đăng nhập, ngôn ngữ và tuỳ chọn.
Công dụng: lưu tuỳ chọn, giữ trạng thái đăng nhập, giữ hàng trong giỏ, và theo dõi người dùng ghé những trang nào để quảng cáo nhắm đích.
Chính công dụng cuối là lý do cookie gây lo ngại về quyền riêng tư, và là lý do website phải xin phép.
Tiền số và chuỗi khối. Tiền số chỉ tồn tại dưới dạng điện tử. Vấn đề của nó là lòng tin: không có ngân hàng đứng giữa thì lấy gì ngăn một người tiêu cùng một đồng hai lần?
Chuỗi khối giải bài toán đó bằng một sổ cái điện tử phi tập trung — bản ghi mọi giao dịch, được sao chép trên rất nhiều máy tính.
Mỗi khối chứa dữ liệu giao dịch, dấu thời gian, và mã băm của khối liền trước. Chi tiết cuối mới là mấu chốt: sửa một khối cũ sẽ làm đổi mã băm của nó, và điều đó phá vỡ mọi khối phía sau — nên việc can thiệp lộ ra ngay lập tức.
Vì sổ cái nằm trên rất nhiều máy chứ không phải một, không có bản duy nhất nào để tấn công hay sửa đổi.
Một người gõ một địa chỉ web vào trình duyệt. Mô tả các bước từ lúc gõ tới lúc trang hiện ra, và nêu rõ nhiệm vụ của trình duyệt.
Bước 1 — người dùng gõ tên miền. Người dùng nhập một địa chỉ dạng $\text{https://www.example.com/index.html}$.
Địa chỉ này gồm ba phần: giao thức ($\text{https}$), tên miền ($\text{www.example.com}$), và đường dẫn tệp ($\text{/index.html}$).
Bước 2 — trình duyệt hỏi máy chủ tên miền. Máy tính không tìm nhau bằng tên mà bằng địa chỉ IP, tức một dãy số. Nên trình duyệt gửi tên miền tới một máy chủ tên miền để hỏi địa chỉ IP tương ứng.
Bước 3 — tra cứu, có thể qua nhiều máy chủ. Nếu máy chủ tên miền đó không có bản ghi cho tên này, nó chuyển yêu cầu sang một máy chủ tên miền khác cho tới khi tìm được.
Bước 4 — địa chỉ IP được trả về. Trình duyệt nhận được con số nó cần.
Bước 5 — yêu cầu trang từ máy chủ web. Trình duyệt dùng địa chỉ IP đó gửi yêu cầu tới đúng máy chủ web đang chứa trang. Máy chủ gửi lại mã HTML của trang.
Bước 6 — trình duyệt dựng hình. Trình duyệt diễn giải mã HTML và hiển thị kết quả thành trang mà người dùng nhìn thấy.
Nhiệm vụ của trình duyệt — điểm hay bị hiểu sai.
Trình duyệt không lưu trữ các trang web. Nó làm ba việc: gửi yêu cầu, nhận mã HTML, và diễn giải mã đó để hiển thị.
Tương tự, máy chủ tên miền không chứa trang web nào cả — nó chỉ là một quyển danh bạ đổi tên thành số. Trang thật nằm ở máy chủ web.
Vai trò của chữ “s” trong $\text{https}$. Nó cho biết dữ liệu trao đổi được mã hoá bằng $\text{SSL}$ hoặc $\text{TLS}$, nên ai chặn được cũng chỉ thấy bản mã. Trình duyệt hiển thị hình ổ khoá để báo điều đó.
Giải thích vấn đề mà tiền số phải giải, chuỗi khối giải nó thế nào, và vì sao việc sửa một khối cũ lại bị phát hiện ngay.
Vấn đề cần giải: lòng tin.
Với tiền mặt, đưa tờ tiền cho người khác là mình không còn nó nữa. Với tiền số, một “đồng tiền” chỉ là dữ liệu — mà dữ liệu thì sao chép được.
Vậy điều gì ngăn một người tiêu cùng một đồng tiền hai lần? Cách truyền thống là để một ngân hàng đứng giữa ghi sổ. Nhưng khi đó mọi người phải tin ngân hàng đó, và nó trở thành một điểm duy nhất có thể sai sót hoặc bị tấn công.
Chuỗi khối giải thế nào.
Nó dùng một sổ cái điện tử phi tập trung: bản ghi mọi giao dịch, được sao chép trên rất nhiều máy tính.
Vì không có bản duy nhất, không có điểm nào để tấn công. Muốn sửa sổ cái, kẻ tấn công phải sửa được bản ghi trên đa số các máy cùng lúc — điều gần như không khả thi.
Vì sao sửa một khối cũ bị phát hiện ngay.
Mỗi khối chứa ba thứ: dữ liệu giao dịch, dấu thời gian, và mã băm của khối liền trước.
Mã băm là một giá trị tính ra từ toàn bộ nội dung của khối. Đổi dù chỉ một ký tự trong khối thì mã băm của nó đổi hoàn toàn.
Bây giờ giả sử kẻ tấn công sửa một giao dịch trong khối số $50$:
- mã băm của khối $50$ đổi;
- nhưng khối $51$ vẫn đang ghi mã băm cũ của khối $50$ — nên nó không còn khớp;
- muốn che, kẻ tấn công phải sửa luôn khối $51$ — nhưng làm vậy thì mã băm của khối $51$ lại đổi, và khối $52$ không khớp;
- và cứ thế tới khối cuối cùng.
Nói cách khác, sửa một khối cũ buộc phải tính lại toàn bộ chuỗi phía sau, đồng thời làm việc đó trên đa số máy tính trong mạng nhanh hơn tốc độ mạng đang tạo khối mới.
Đó là lý do chuỗi khối được coi là chống sửa đổi: không phải vì không thể sửa, mà vì việc sửa lộ ra ngay và cái giá để che giấu là không kham nổi.
Đọc xong rồi — làm thử ngay
Bài tập của chương The Internet and Its Uses gồm 14 câu trắc nghiệm và 5 đề tự luận. Đáp án hiện ngay khi chọn, miễn phí.