Kiến thức cần có
1. Quá trình upload có 2 giai đoạn và mỗi giai đoạn có những rủi ro riêng biệt

2. Cơ chế hoạt động của HTTPd
HTTPd là viết tắt của "HTTP daemon" – một chương trình máy chủ web chạy ở chế độ nền, lắng nghe và xử lý các yêu cầu HTTP/HTTPS từ trình duyệt hoặc ứng dụng client.
- Vai trò:
- Tiếp nhận request (GET, POST, PUT, DELETE...)
- Là phần mềm máy chủ web (web server)
- Phản hồi bằng tài nguyên web (HTML, hình ảnh, JSON...) hoặc mã trạng thái (404, 500...)
- Các implementation phổ biến:
- Apache HTTP Server (thường gọi là "httpd" trên Linux)
- Nginx (engine-x)
- Microsoft IIS
- Lighttpd, Caddy...
- Hoạt động:
- Chạy như một dịch vụ (service/daemon)
- Lắng nghe cổng mặc định (80 cho HTTP, 443 cho HTTPS)
- Xử lý đa luồng/đa tiến trình

- Document Root: là đường dẫn tới thư mục chứa tất cả tài nguyên của trang web (home.html, index.php, images,...)
- Có thể ví Document Root như nhà bếp trong nhà hàng, nơi chứa các món ăn có sẵn, hoặc món ăn cần chế biến để phục vụ user
- Document Root mặc định nằm ở/var/www/html
- Khi user truy cập vào home.html thì HTTPd sẽ vào Document Root để tìm file đó và trả nội dung về cho user
- mod-php là một module của Apache HTTP Server cho phép chạy mã PHP trực tiếp bên trong Apache process.
3. Quá trình upload file trên php