HTTP là gì?
HyperText Transfer Protocol – Giao thức truyền tải siêu văn bản
Là một trong các giao thức chuẩn về mạng Internet, được dùng để liên hệ thông tin giữa máy cung cấp dịch vụ (Web server) và máy sử dụng dịch vụ (Web client)
Là giao thức Client/Server dùng cho World Wide Web – WWW
HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền tảng cho Internet).

Sơ đồ hoạt động của HTTP
HTTP hoạt động dựa trên mô hình Client – Server.
Trong mô hình client – server, các máy tính của người dùng sẽ đóng vai trò làm máy khách (Client). Sau một thao tác nào đó của người dùng, các máy khách sẽ gửi yêu cầu đến máy chủ (Server) và chờ đợi câu trả lời từ những máy chủ này.
HTTP là một stateless protocol. Hay nói cách khác, request hiện tại không biết những gì đã hoàn thành trong request trước đó.
HTTP cho phép tạo các yêu cầu gửi và nhận các kiểu dữ liệu, do đó cho phép xây dựng hệ thống độc lập với dữ liệu được truyển giao.
Uniform Resource Locator (URL)
Một URL được sử dụng để xác định duy nhất một tài nguyên trên Web và có cấu trúc như sau:
protocol://hostname:port/path-and-file-name
Trong một URL có 4 thành phần:
- Protocol: giao thức tầng ứng dụng được sử dụng bởi client và server
- Hostname: tên DNS domain
- Port: Cổng TCP để server lắng nghe request từ client
- Path-and-file-name: Tên và vị trí của tài nguyên yêu cầu.
Một số khái niệm liên quan
HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP.
Bộ giao thức TCP/IP là một bộ các giao thức truyền thông cài đặt chồng giao thức mà internet và hầu hết các mạng máy tính thương mại đang chạy trên đó.
Bộ giao thức TCP/IP này được đặt tên theo hai giao thức chính của nó là TCP (Transmission Control Protocol – Giao thức điều khiển truyền vận) và IP (Internet Protocol – Giao thức Internet).
Các giao thức được phân chia thành các tầng, Trong đó TCP/IP có 4 tầng mỗi tầng lại sử dụng các giao thức ở tầng dưới để đạt đc mục đích.
Các tầng trong mô hình TCP/IP
Mô hình TCP/IP được chia thành 4 tầng (Layer), mỗi layer bao gồm các giao thức cụ thể:

Tầng Application
- Cung cấp cho các ứng dụng những trao đổi dữ liệu chuẩn hóa.
- Các giao thức: HTTP, FTP, Post Office Protocol 3 (POP3), Simple Mail Transfer Protocol (SMTP) và Simple Network Management Protocol (SNMP).
- Dữ liệu trong tầng này là dữ liệu ứng dụng thực tế.
Tầng Transport
- Chịu trách nhiệm duy trì thông tin liên tạc end-to-end trên toàn mạng. TCP xử lý thông tin liên lạc giữa các máy chủ và cung cấp khả năng kiểm soát luồng, ghép kênh và độ tin cậy.
- Các giao thức: TCP và UDP (User Datagram Protocol).
Tầng Internet
- Xử lý các network packet và kết nối các mạng độc lập. Từ đó vận chuyển các packet qua network.
- Giao thức: IP và ICMP (Internet Control Message Protocol) – dùng để báo cáo lỗi.
Tầng Physical
- Còn gọi là Link Layer, gồm các giao thức chỉ hoạt động trên một liên kết – thành phần mạng kết nối các nút hoặc máy chủ trong mạng.
- Các giao thức: Ethernet (cho mạng LAN) và ARP.
Các thành phần chính của HTTP

HTTP – Requests
HTTP Request Method: Là phương thức để chỉ ra hành động mong muốn được thực hiện trên tài nguyên đã xác định.
Cấu trúc của một HTTP Request:
Request-line = Phương thức + URI–Request + Phiên bản HTTP.
Giao thức HTTP định nghĩa một tập các giao thức GET, POST, HEAD, PUT … Client có thể sử dụng một trong các phương thức đó để gửi request lên server.
Có thể có hoặc không các trường header
Một dòng trống để đánh dấu sự kết thúc của các trường Header.
Request Header Fields: Các trường header cho phép client truyền thông tin bổ sung về yêu cầu, và về chính client, đến server. Một số trường: Accept-Charset, Accept-Encoding, Accept-Language, Authorization, Expect, From, Host, …
Khi request đến server, server sẽ thực hiện một trong 3 hành động sau:
Server phân tích request nhận được, maps yêu cầu vào một chương trình trên server, thực thi chương trình và trả lại kết quả của chương trình đó.
Server phân tích request nhận được, maps yêu cầu với tập tin trong tập tài liệu của server, và trả lại tập tin yêu cầu cho client.
Request từ client không thể đáp ứng, server trả lại thông báo lỗi.
Giao thức HTTP định nghĩa một tập các phương thức request, client có thể sử dụng một trong các phương thức này để tạo request tới HTTP server, dưới đây liệt kê một số phương thức phổ biến.
1 số HTTP Request method thường dùng:
HTTP – Responses
Cấu trúc của một HTTP response:
Status-line = Phiên bản HTTP + Mã trạng thái + Trạng thái.
Có thể có hoặc không có các trường header
Một dòng trống để đánh dấu sự kết thúc của các trường header
Tùy chọn một thông điệp
Mã trạng thái: Thông báo về kết quả khi nhận được yêu cầu và xử lí bên server cho client.

Các kiểu mã trạng thái:
1xx: Thông tin (100 -> 101)
- VD: 100 (Continue), ….
2xx: Thành công (200 -> 206)
- VD: 200 (OK), 201 (CREATED), …
3xx: Sự điều hướng lại (300 -> 307)
- VD: 305 (USE PROXY), …
4xx: Lỗi phía Client (400 -> 417)
- VD: 403 (FORBIDDEN), 404 (NOT FOUND), …
5xx: Lỗi phía Server (500 -> 505)
- VD: 500 (INTERNAL SERVER ERROR)
Sự khác biệt giữa http và https là gì? cùng tham khảo bài viết tại đây.
Trên là những kiến thức cơ bản về HTTP. Hiểu được các thông tin trên các request message hay các response message giúp bạn dễ dàng hơn trong quá trình phát triển web, hay tìm lỗi. Cảm ơn bạn đã xem bài viết. Hãy để lại bình luận nếu có gì thắc mắc.
28 Tháng 9, 2021