Nhu cầu truyền file qua mạng là vấn đề thường gặp. Hệ thống GNU/Linux hỗ trợ nhiều giao thức và công cụ để làm điều này, một số được thiết kế cho chia sẻ file tương đối vĩnh viễn (như SMB, AFP, NFS), trong khi những cái khác như Secure Copy (SCP) dùng cho truyền file thủ công và lập trình nhanh. Trong số đó có Giao thức Truyền Siêu Văn bản (HTTP), giao thức linh hoạt và phổ biến mà World Wide Web dựa vào.
Python, được bao gồm mặc định trong hầu hết bản phân phối Linux, cung cấp các HTTP server đơn giản qua module "SimpleHTTPServer" và "http.server". Cái trước nằm trong Thư viện Chuẩn Python 2, trong khi cái sau được bao gồm trong Python 3. Những HTTP server nhẹ này không yêu cầu cài đặt riêng biệt và có thể khởi động ngay lập tức với một lệnh duy nhất.
Cài đặt Python
Hệ thống của bạn rất có thể đã bao gồm ít nhất một phiên bản Python, nhưng nếu không, hãy cài đặt Python 3 bằng trình quản lý gói gốc.
Ví dụ, trên Debian và Ubuntu:
sudo apt update sudo apt install -y python3
Khởi động HTTP Server
Ghi nhớ địa chỉ IP được máy gửi sử dụng.
ip a s

Tìm hiểu phiên bản Python nào được cài đặt bằng các lệnh sau:
python --version python3 --version
Trên cùng máy đó, thay đổi thư mục làm việc thành thư mục chứa file bạn đang truyền. Hãy ý thức rằng toàn bộ nội dung thư mục làm việc hiện tại của bạn có thể truy cập được bởi bất kỳ ai trên mạng (hoặc Internet nếu máy gửi có địa chỉ IP công khai), trong khi Python HTTP server đang chạy.
cd /đường/dẫn/đến/file/
Ví dụ:
cd /home/user/Documents/
Bây giờ bạn có thể khởi động HTTP server. Cho Python 2.x, dùng module SimpleHTTPServer:
python -m SimpleHTTPServer
Hoặc http.server trong trường hợp Python 3.x:
python3 -m http.server
Cả hai biến thể đều lắng nghe trên cổng 8000 mặc dù, tuy nhiên bạn có thể chỉ định rõ số cổng khác sau tên module.
python -m SimpleHTTPServer [cổng] python3 -m http.server [cổng]
Lưu ý: quyền root là bắt buộc nếu bạn chọn cổng dưới 1024.
Tải file của bạn
Trên máy nhận, bạn có thể dùng bất kỳ máy khách HTTP nào để tải file. Nếu bạn đang dùng môi trường đồ họa, trình duyệt thường tiện lợi hơn tiện ích dòng lệnh. Chỉ cần duyệt tới https://ĐỊA_CHỈ_IP:8000, trong đó "ĐỊA_CHỈ_IP" là địa chỉ IP của máy gửi, và nhấp vào file mong muốn để tải.

Thay vào đó, bạn có thể dùng Wget hoặc cURL để tải file. Bạn nên đã cài đặt một hoặc cả hai. Nếu không có, chúng tôi gợi ý cài đặt Wget, vì nó thân thiện hơn với người dùng và hỗ trợ tải toàn bộ thư mục.
Cho Debian và Ubuntu:
sudo apt install wget
Cho RHEL và CentOS 6/7:
sudo yum install wget
Cho Fedora và RHEL/CentOS 8:
sudo dnf install wget
Sử dụng Wget
Để tải một file đơn lẻ với Wget, chỉ cần gọi Wget theo sau là URL của file bạn muốn tải.
wget https://ĐỊA_CHỈ_IP:8000/tên_file

Bạn cũng có thể dùng Wget để tải đệ quy toàn bộ thư mục bằng cách thêm cờ -r.
wget -r https://ĐỊA_CHỈ_IP:8000/

Sử dụng cURL
Mặc định, curl cố gắng in nội dung file ra terminal. Vì vậy để lưu file thay vào đó, hãy chỉ định tên file với cờ -o.
curl https://ĐỊA_CHỈ_IP:8000/tên_file -o tên_file

Kết luận
Chức năng HTTP trong thư viện chuẩn của Python cung cấp một cách truyền file cơ bản nhưng nhanh chóng và tiện lợi, hoàn hảo cho một số tình huống. Nhưng hãy nhớ rằng vì đây là HTTP thuần túy không có mã hóa hay xác thực, bạn nên cẩn thận để không lộ file nhạy cảm.