Giao thức HTTP – HyperText Transfer Protocol

giao thức http | Multicontents
Bình chọn bài viết

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).

Giao thức HTTP và cấu trúc cơ bản của HTTP Message

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ể:

So Sánh 2 Mô Hình Mạng Máy Tính Phổ Biến Nhất OSI Và TCP/IP

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

Sử dụng các HTTP Verbs GET POST PUT DELETE trong Web API
Các phương thức chính trong 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.

Mã trạng thái HTTP là gì?
Các mã trạng thái cơ bản trong http

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.

Biên tập bởi Multi-contents
Bạn đang xem bài viết được đăng tải tại Multicontents. Mọi sao chép hay đăng tải lại đều phải dẫn nguồn. Nếu có góp ý vui lòng để lại bình luận phía bên dưới hoặc liên hệ . Chúc bạn có một ngày gặt hái được nhiều thành công. Trân trọng.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *