HTTP là một giao thức tầng ứng dụng (application-level) dùng trong các hệ thống thông tin phân tán, cộng tác và đa phương tiện (hypermedia). Kể từ năm 1990 đây là nền tảng căn bản để giao tiếp dữ liệu trên World Wide Web (WWW – VD: Internet). HTTP là một giao thức chung và phi trạng thái (stateless), nó có thể được sử dụng cho nhiều mục đích khác nhau bằng cách sử dụng những mở rộng từ các thành phần của nó như : các phương thức request, mã lỗi và header.
Căn bản, HTTP là một giao thức truyền thông dựa trên TCP/IP, nó được sử dụng để gửi các dữ liệu (tệp HTML, hình ảnh, kết quả truy vấn, v.v.) trên World Wide Wed. Cổng TCP mặc định của giao thức này là 80, nhưng các cổng khác vẫn có thể được sử dụng. Chúng cung cấp một cách thức chuẩn để các máy tính giao tiếp với nhau. HTTP đặc tả cụ thể cấu trúc của dữ liệu được gửi (request) từ client (máy khách) lên server (máy chủ), cách thức server phản hồi (response) lại các request đó.
Các đặc tính căn bản
Có ba đặc điểm khiến giao thức HTTP đơn giản nhưng mạnh mẽ:
- HTTP là phi liên kết (connectionless): HTTP client, VD một trình duyệt khởi tạo một request và sau khi request được tạo ra, client ngắt kết nối với server và đợi một phản hồi (response) từ phía server. Server xử lý request và thiết lập lại kết nối với client để gửi lại dữ liệu (response).
- HTTP độc lập với media: Điều đó có nghĩa là, bất kỳ loại dữ liệu nào cũng có thể được gửi bởi HTTP miễn là cả server và client đều biết cách xử lý chúng. Điều này đòi hỏi client và server phải đặc tả loại thông tin sử dụng MIME-type thích hợp.
- HTTP là phi trạng thái (stateless): Như đã nói ở trên, HTTP là phi liên kết và nó sẽ dẫn đến kết quả HTTP là một giao thức phi trạng thái. Server và client nhận biết nhau chỉ trong request hiện tại. Sau đó, cả hai “quên” nhau. Do tính chất của giao thức, cả client lẫn trình duyệt không thể giữ lại thông tin giữa các request khác nhau trên các trang web.
HTTP/1.0 sử dụng một kết nối mới cho mỗi request/response, trong khi đó kết nối của HTTP/1.1 có thể được sử dụng cho một hoặc nhiều request/response. |
Kiến trúc căn bản
Sơ đồ dưới đây mô tả kiến trúc căn bản nhất của một ứng dụng web và miêu tả vị trí của HTTP trong kiến trúc này:
Giao thức HTTP là một giao thức request/response dựa trên kiến trúc client/server, trong đó các trình duyệt web, các robot và search engine, v.v. là các HTTP client, và Web server đóng vai trò là server.
Client
HTTP client gửi một request đến server qua một gói dữ liệu gồm phương thức request, URI, và phiên bản giao thức, tiếp theo là một thông điệp MIME chứa các thông tin yêu cầu, thông tin về client, và những thông tin có thể được truyền tải nhờ kết nối TCP/IP.
Server
HTTP server phản hồi với một dòng trạng thái, bao gồm phiên bản giao thức và mã lỗi hoặc mã thành công, tiếp theo là một thông điệp MIME chứa các thông tin về server, thông tin siêu thực thể, và những nội dung khác có thể.