HTTP là một thuật ngữ quan trọng mà mọi dân lập trình đều phải biết, đây còn là một yếu tố quan trọng hình thành nên website.
HTTP là gì?
HTTP - HyperText Transfer Protocol, đây được biết đến là một giao thức có khả năng truyền tải siêu văn bản, thường được sử dụng trong World Wide Web hỗ trợ truyền tải dữ liệu giữa web server đến các trình duyệt web và ngược lại.
Giao thức này thực hiện mọi công việc thông qua Port 80.
Thêm vào đó, HTTP là một trong số những giao thức ứng dụng được sử dụng khá thường xuyên trong bộ các giao thức TCP/IP, bao gồm nhóm giao thức nền tảng trên Internet.
Khi sử dụng HTTP, bạn sẽ được cung cấp một cách tiêu chuẩn hóa cho các máy tính giúp chúng có thể dễ dàng giao tiếp với nhau.
Những đặc trưng cơ bản của HTTP
- HTTP - Giao thức kết nối không liên tục: Quy trình xử lý, phản hồi yêu cầu thông thường của HTTP sẽ diễn ra theo quy trình là Client tạo yêu cầu => dừng kết nối với Server để đợi phản hồi => Server tiến hành xử lý yêu cầu => thiết lập kết nối tới Client và gửi phản hồi.
- HTTP - Giao thức hoạt động độc lập: Với đặc trưng này, bạn có thể tiến hành gửi mọi loại dữ liệu qua HTTP, nhưng cần đảm bảo Server và Client có biện pháp kiểm soát các nội dung trong dữ liệu. Đồng thời, Client và Server cũng cần xác định nội dung gửi đi thuộc định dạng nào, để lựa chọn MIME tương ứng.
- HTTP - Stateless: Do là connectionless nên HTTP được gọi là Stateless. Chỉ với một yêu cầu là đã có thể kết nối Server và Client, nhưng chỉ ở thời điểm hiện tại. Đặc biệt hơn, cả Server và Client đều có khả năng lưu trữ thông tin về những yêu cầu giữ các website.
HTTP hoạt động như thế nào?
HTTP thực hiện mọi công việc dựa trên nguyên lý:
- Client khởi tạo yêu cầu thông qua việc tạo kết nối TCP tới Port 80 (hay bất kỳ cổng nào trên Server) => Server tiếp nhận yêu cầu => Tiến hành gửi lại trạng thái cho Client với thông điệp (có thể là thông tin yêu cầu, thông báo lỗi hay bất kỳ thông tin nào khác).
Sau khi hoàn thành giao thức, kết nối HTTP sẽ tự động đóng lại, bởi nó là một hệ thống Stateless.
Trong hoạt động giao tiếp giữa Server và Client, HTTP cần có sự hỗ trợ từ một loạt các tin nhắn, nhưng đa phần nó sẽ sử dụng nhiều nhất ba loại:
- HTTP GET: Loại này chỉ là là một đường dẫn gửi đến Server và chỉ tiếp nhận dữ liệu mang một mục đích sử dụng chính. Server sẽ tiến hành xử lý dữ liệu của URL và gửi phản hồi về cho trình duyệt. Việc này diễn ra khi Client cần lấy toàn bộ nội dung URL.
- HTTP POST: Mục đích của loại tin nhắn này là để đặt các tham số dữ liệu vào phần thân của thông báo yêu cầu, thường được dùng khi cần upload tệp tin hay submit form web, chủ đề…
- HTTP HEAD: Hoạt động tương tự như HTTP GET, khác ở chỗ Server sẽ phản hồi thông tin về Header.
Tính năng của HTTP
Xác thực
Nhờ có HTTP, chúng ta biết rằng các website được bảo vệ bằng mật khẩu, đồng thời chỉ cho phép một số người dùng nhất định truy cập vào.
Với HTTP, bạn sẽ được cung cấp xác thực cơ bản thông qua việc sử dụng WWW-Authenticate, cùng các tiêu đề tương tự hay bằng việc thiết lập một phiên cụ thể bằng cách sử dụng Cookie HTTP.
Bộ nhớ đệm
Với khả năng kiểm soát cách tài liệu được lưu vào bộ nhớ đệm.
Thông qua đó, Server có thể cho Proxy và Client biết những gì và thời gian lưu vào bộ nhớ Cache.
Với tính năng này, Server còn có khả năng hướng dẫn Proxy bộ đệm trung gian bỏ qua tài liệu được lưu trữ.
Proxy và đường truyền
Server và Client thường nằm trên mạng nội bộ, nơi địa chỉ IP thực của chúng bị ẩn khỏi các máy tính khác.
Muốn vượt qua rào cản mạng này, các yêu cầu HTTP được định tuyến thông qua Proxy.
Mặc dù vậy, không phải Proxy nào cũng được xem như Proxy HTTP.
Giảm ràng buộc nguồn gốc
Hiểu rõ về HTTP, bạn sẽ biết các trình duyệt web thực thi sự tách biệt nghiêm ngặt giữa các trang web, nhằm ngăn chặn các hành vi xâm phạm quyền riêng tư và việc theo dõi người khác.
Nhưng HTTP vẫn có thể làm giảm sự phân tách nghiêm ngặt này ở phía Server, đồng thời cho phép một tài liệu trở thành một tập hợp thông tin có nguồn gốc từ các miền khác nhau.
Phiên
Thông qua việc dùng Cookie HTTP, bạn có thể liên kết các yêu cầu với trạng thái trên Server.
Tuy HTTP là một giao thức không trạng thái, cũng chính điều này tạo ra các phiên.
Thế nên, HTTP không chỉ hữu ích cho các giỏ mua hàng thương mại điện tử, mà còn cho mọi trang web nào cho phép người dùng tùy chỉnh kết quả đầu ra.