HTTP/1.1 là phiên bản nền tảng của giao thức HTTP, được sử dụng rộng rãi trên internet. Để hiểu rõ cách hoạt động của HTTP, thực hành trực tiếp là phương pháp hiệu quả nhất. Trong bài viết này, chúng ta sẽ cùng tìm hiểu HTTP/1.1 thông qua việc cấu hình và sử dụng Nginx làm web server.
Install Nginx
Trên các hệ điều hành Linux phổ biến, bạn có thể cài Nginx bằng trình quản lý gói (apt/yum):
# Trên Ubuntu/Debian
sudo apt update
sudo apt install nginx
# Trên CentOS/RedHat
sudo yum install nginx
Sau khi cài đặt, khởi động Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx
Kiểm tra cài đặt bằng cách truy cập http://localhost
trên trình duyệt. Nếu thành công, bạn sẽ thấy trang chào mừng của Nginx.
Configure Basic Nginx
Truy cập thư mục cấu hình của Nginx:
cd /etc/nginx
Sửa file cấu hình chính (default) hoặc tạo mới một file trong thư mục /etc/nginx/sites-available/
. Ví dụ cấu hình cho một server HTTP/1.1:
server {
listen 80;
server_name localhost;
location / {
root /var/www/html;
index index.html;
}
}
Nếu bạn tạo 1 file mới, ví dụ có tên web-config
, để nginx
có thể run được file config đó, bạn cần symbolic link nó đến folder sites-enabled:
sudo ln -s /etc/nginx/sites-available/web-config /etc/nginx/sites-enabled/
Kiểm tra cấu hình
sudo nginx -t
Nếu config không có lỗi (error), tải lại Nginx:
sudo systemctl reload nginx
Tạo trang HTML Mẫu
sudo mkdir -p /var/www/html
echo "<h1>Chào mừng đến với Nginx!</h1>" | sudo tee /var/www/html/index.html
HTTP/1.1 with cURL
Gửi yêu cầu GET cơ bản
curl -v http://localhost
Trả về:
* Trying 127.0.0.1:80...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> Host: localhost
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: nginx/1.26.2
< Date: Thu, 28 Nov 2024 09:25:30 GMT
< Content-Type: text/html
< Content-Length: 41
< Last-Modified: Thu, 28 Nov 2024 09:21:08 GMT
< Connection: keep-alive
< ETag: "67483604-29"
< Accept-Ranges: bytes
<
<h1>Chào mừng đến với Nginx</h1>
* Connection #0 to host localhost left intact
Những điểm cần chú ý trong phản hồi:
- Phiên bản HTTP:
HTTP/1.1
- Mã trạng thái (Status Code):
200 OK
- Header: Bao gồm
Content-Type
,Connection
, và các thông tin khác.
Kết Luận
Trong bài viết này, chúng ta đã khám phá những khái niệm cơ bản của HTTP/1.1 thông qua Nginx, từ cài đặt, cấu hình đến kiểm tra các tính năng như kết nối liên tục, chunked transfer, và header tuỳ chỉnh.
Hãy đón chờ Phần 2, nơi chúng ta sẽ tìm hiểu sâu hơn về các tính năng nâng cao của HTTP/1.1 và bắt đầu khám phá HTTP/2!