Learning Outcome & Exercises: Networking & Web server

2 câu hỏi~10 phút đọc, vài giờ làm labTừ khóa: learning outcome, Basic, Intermediate, Challenge, evidence

Tổng kết chương Networking & Web server: học xong mình phải làm được gì, và làm bài tập nào để chứng minh?

Đọc hiểu chưa đủ để đi phỏng vấn. Mỗi chương kết thúc bằng những việc làm được và chứng minh được: có code chạy, có test cho cả trường hợp lỗi, có log hoặc số đo. Bài tập nằm trong repo riêng java-backend-interview-labs, thư mục labs/networking.

1. Mục tiêu đầu ra

Học xong chương này, bạn tự làm được:

2. Basic: Giải phẫu request

Trạng thái: ⬜ Chưa triển khai: chưa có code/test, chưa tính là hoàn thành

curl -v --trace-time tới một API HTTPS; chú thích từng pha DNS, TCP, TLS, HTTP và thời gian.

Bài liên quan: Một request đi từ client tới Spring Boot, DNS, TLS/HTTPS

Hoàn thành khi:

3. Intermediate: Nginx reverse proxy

Trạng thái: ⬜ Chưa triển khai: chưa có code/test, chưa tính là hoàn thành

Nginx proxy tới 2 instance, round-robin, proxy_read_timeout; tắt một instance và quan sát.

Bài liên quan: Nginx reverse proxy, Tomcat: connector & thread, Load balancer L4/L7, NAT, VPC

Hoàn thành khi:

4. Challenge: Debug timeout

Trạng thái: ⬜ Chưa triển khai: chưa có code/test, chưa tính là hoàn thành

Tạo backend trễ 30s; chỉnh timeout client < Nginx < backend và giải thích lỗi nhận được ở mỗi tầng.

Bài liên quan: Timeout ở từng tầng, Debug mạng: curl, dig, ss, tcpdump, Ping được nhưng không connect được: port & firewall

Hoàn thành khi:

5. Tiêu chí hoàn thành chung

6. Lab và trạng thái

MứcBài tậpTrạng tháiTest / bằng chứng
BasicGiải phẫu request⬜ Chưa triển khai: chưa có code/test, chưa tính là hoàn thành—
IntermediateNginx reverse proxy⬜ Chưa triển khai: chưa có code/test, chưa tính là hoàn thành—
ChallengeDebug timeout⬜ Chưa triển khai: chưa có code/test, chưa tính là hoàn thành—

Repo lab: java-backend-interview-labs/labs/networking. TODO: link GitHub là placeholder cho tới khi repo được push.

Phỏng vấn hỏi về Networking & Web server, câu nào hay gặp nhất và trả lời sao?

Q1. Ping được server mà không connect được port 8080, nguyên nhân là gì?

🇻🇳 Tiếng Việt:

Ping dùng ICMP, chỉ chứng minh host sống. Connect cần TCP tới đúng port: có thể app không listen, chỉ bind localhost, hoặc firewall/security group chặn port.

🇬🇧 English:

Ping uses ICMP and only proves the host is up. A connect needs TCP on that port: the app may not be listening, may bind only to localhost, or a firewall or security group blocks the port.

Cách nhớ ngắn gọn


Tự kiểm tra

Bài tập Basic (Giải phẫu request) được coi là xong khi nào?

Log curl có chú thích. Chưa có code chạy và bằng chứng thì chưa tính là xong.

Bài tập Intermediate (Nginx reverse proxy) được coi là xong khi nào?

Cấu hình nginx.conf; Log 502/504 khi backend chết/chậm. Chưa có code chạy và bằng chứng thì chưa tính là xong.

Bài tập Challenge (Debug timeout) được coi là xong khi nào?

Bảng timeout và lỗi tương ứng. Chưa có code chạy và bằng chứng thì chưa tính là xong.