HTTP là gì?
HTTP (Hypertext transfer protocol – giao thức chuyển giao siêu văn bản) là một giao thức tầng ứng dụng trong
mô hình tập hợp giao thức internet cho hệ thống thông tin đa phương tiện, hợp tác và phân tán. HTTP là cơ sở cho
trao đổi thông tin dữ liệu cho World Wide Web, nơi tài liệu siêu văn bản bao gồm siêu liên kết tới tài nguyên khác
cái người dùng có thể dễ dàng truy cập, ví dụ bằng cái click chuột hay chạm màn hình trong một trình duyệt web.
HTTP/1 được hoàn thành và có hướng dẫn chuẩn hóa vào năm 1996. Nó phát triển thành phiên bản 1.1 vào năm 1997,
HTTP/2 vào năm 2015, HTTP/3 vào năm 2022.
HTTP có chức năng như giao thức yêu cầu – trả lời trong mô hình máy chủ – máy khách. Một trình duyệt web, ví dụ, có
thể là máy khách trong khi một quá trình, có tên là máy chủ web, chạy trên một máy tính, hosting một hay nhiều hơn
một website. Máy khách đệ trình thông điệp HTTP request tới máy chủ. Máy chủ, cái cung cấp tài nguyên như HTML files
và nội dung khác hay thực hiện chức năng khác thay mặt máy khách, trả về một thông điệp trả lời tới máy khách. Câu
trả lời chứa thông tin trạng thái hoàn thành về yêu cầu và cũng có thể chứa nội dung được yêu cầu trong phần
thân thông điệp của nó.
Một trình duyệt web là một ví dụ về một user agent (UA). Dạng khác của user agent bao gồm phần mềm chỉ mục được sử
dụng bởi nhà cung cấp tìm kiếm (web crawlers), trình duyệt giọng nói, ứng dụng mobile và phần mềm khác cái truy cập, tiêu
dùng và hiển thị nội dung web.
HTTP là một giao thức tầng ứng dụng được thiết kế bên trong một khung của tập hợp giao thức internet. Định nghĩa
của nó giả định một giao thức tầng vận chuyển bên trong và đáng tin cậy, vì vậy TCP (Transmission Control Protocol
– giao thức kiểm soát chuyển vận) được sử dụng phổ biến. Tuy nhiên, HTTP có thể thích nghi để sử dụng các giao thức
không đáng tin cậy như UDP (User Datagram protocol) và SSDP.
Trong HTTP/1.0 một kết nối riêng rẽ tới cùng máy chủ được thực hiện cho mọi yêu cầu tài nguyên.
Trong HTTP/1.1 thay vào đó một kết nối TCP có thể được sử dụng lại để thực hiện nhiều yêu cầu tài nguyên.
Trao đổi thông tin HTTP/1.1 vì vậy trải nghiệm ít độ trễ hơn khi thiết lập kêt nối TCP chịu phí tổn đáng
kể,đặc biệt dưới điều kiện lưu lượng mạng cao.