Q

Quản trị viên

Là một lập trình viên yêu công nghệ, thích viết blog để chia sẻ kiến thức, kinh nghiệm lập trình và những điều thú vị trong thế giới tech.

2312 bài viết · Website
Web 22/09/2026 6 phút

Mã trạng thái và redirect HTTP: 301 vs 302 vs 307/308, và bẫy đổi POST thành GET

Ai cũng biết 404 và 500, nhưng khác biệt thật giữa 301 và 302, giữa 307 và 308 thì nhiều người mơ hồ. Điểm mấu chốt không chỉ là vĩnh viễn hay tạm thời — mà là có giữ nguyên phương thức POST hay không. Bài này đo thật: 301/302 âm thầm đổi POST thành GET, 307/308 giữ nguyên, và một vòng lặp redirect dừng ở đâu.

Web 22/09/2026 5 phút

Nginx reverse proxy: một cửa trước nhiều backend — đo round-robin và X-Forwarded

Reverse proxy đứng trước các server, thay mặt chúng trả lời client: cân bằng tải, kết thúc TLS, gom nhiều service sau một tên miền. Bài này dựng nginx proxy tới 3 backend, đo round-robin chia đúng 10/10/10 trên 30 request, và giải thích vì sao thiếu header X-Forwarded-* làm backend thấy sai IP và giao thức của client.

Web 22/09/2026 5 phút

Nén nội dung HTTP: gzip vs brotli vs zstd — đo tỉ lệ nén thật

Một trang HTML 224 KB có thể xuống còn 16 KB trên đường truyền mà người dùng không hề hay biết. Cơ chế: client mời (Accept-Encoding), server chọn (Content-Encoding), nén trong suốt hai đầu. Bài này đo thật tỉ lệ nén của gzip, brotli, zstd trên một trang HTML thật, và xem nginx thương lượng nén qua HTTP.

Web 22/09/2026 6 phút

Chứng chỉ X.509 và chuỗi tin cậy: vì sao trình duyệt tin server — tự dựng CA để hiểu

Cái ổ khóa xanh trên trình duyệt dựa trên một chuỗi tin cậy: cert của site được một CA ký, CA đó lại được CA gốc ký, và trình duyệt chỉ tin sẵn vài CA gốc. Bài này tự dựng một CA rồi ký cert cho web.local bằng openssl, đọc cấu trúc cert (subject, issuer, SAN, hạn), và chứng minh xác thực chuỗi thành công với CA đúng, thất bại với CA sai.