HTTP là nền tảng của Web, một giao thức chịu trách nhiệm truyền tải dữ liệu giữa trình duyệt và máy chủ web. Trong bài viết này, tôi sẽ giúp các bạn hiểu rõ các khía cạnh chi tiết về HTTP, từ cơ bản đến nâng cao, cũng như các ví dụ minh họa cụ thể.
HTTP (HyperText Transfer Protocol) là giao thức truyền tải siêu văn bản, được sử dụng rộng rãi để truyền dữ liệu trên World Wide Web. HTTP đã trở thành chuẩn mực để truyền tải tài liệu, hình ảnh và video qua Internet.
HTTP hoạt động theo mô hình Client-Server. Trình duyệt của các bạn (client) sẽ gửi yêu cầu HTTP đến máy chủ (server). Sau đó, server xử lý yêu cầu và gửi về phản hồi (response) chứa dữ liệu hoặc thông điệp cần thiết.
Yêu cầu HTTP bao gồm:
Phản hồi HTTP bao gồm:
Phương thức này yêu cầu server trả về tài liệu đã xác định. GET được sử dụng rộng rãi để yêu cầu tài liệu tĩnh như hình ảnh, văn bản.
GET /index.html HTTP/1.1
Sử dụng để gửi dữ liệu đến server, thông thường qua các biểu mẫu.
POST /form-submit HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: 27 name=John+Doe&[email protected]
Sử dụng để thay thế hoặc tạo mới tài liệu trên server.
PUT /new-page.html HTTP/1.1 Content-Type: text/html Content-Length: 39 <html><body>New Page</body></html>
Sử dụng để xóa tài liệu trên server.
DELETE /old-page.html HTTP/1.1
Các mã trạng thái 2xx cho biết yêu cầu đã được xử lý thành công:
Các mã trạng thái 3xx cho biết trình duyệt cần phải thực hiện các bước khác để hoàn thành yêu cầu.
Các mã trạng thái 4xx cho biết có lỗi xảy ra vì lý do client:
Các mã trạng thái 5xx cho biết có lỗi xảy ra từ phía server:
HTTP truyền tải dữ liệu dạng văn bản rõ ràng và không bảo mật. Điều này có nghĩa là bất kỳ ai có quyền truy cập vào đường truyền giữa trình duyệt và server đều có thể đọc được dữ liệu này.
HTTPS (HTTP Secure) sử dụng SSL/TLS để mã hóa các dữ liệu truyền tải, đảm bảo rằng dữ liệu không bị đánh cắp hoặc thay đổi trong quá trình truyền.
https://example.com
Yêu cầu tài liệu HTML từ server:
GET /index.html HTTP/1.1 Host: example.com
Gửi dữ liệu biểu mẫu đăng ký đến server:
POST /signup HTTP/1.1 Host: example.com Content-Type: application/x-www-form-urlencoded Content-Length: 48 username=newuser&password=123456&[email protected]
Tạo mới hoặc cập nhật tài liệu trên server:
PUT /docs/newfile.txt HTTP/1.1 Host: example.com Content-Type: text/plain Content-Length: 21 This is new content.
Qua bài viết này, tôi hy vọng các bạn đã nắm vững kiến thức về HTTP, các phương thức và mã trạng thái khác nhau, cũng như sự khác biệt giữa HTTP và HTTPS. Để thực hành tốt hơn, hãy thử nghiệm với các ví dụ và tình huống cụ thể để hiểu sâu hơn. Chúc các bạn thành công trong việc học và ứng dụng HTTP vào dự án của mình.