HTTP Request là gì? Các phương thức HTTP request

Ở bài viết Sơ lược về mô hình Client-Server và giao thức HTTP, chúng ta đã cùng hiểu về mô hình client-server, hiểu được nguyên lý hoạt động của giao thức HTTP. Ở bài viết này, chúng ta sẽ đi sâu tìm hiểu thế nào là HTTP request và các phương thức của HTTP request.

Ở bài viết Sơ lược về mô hình Client-Server và giao thức HTTP, chúng ta đã cùng hiểu về mô hình client-server, hiểu được nguyên lý hoạt động của giao thức HTTP. Ở bài viết này, chúng ta sẽ đi sâu tìm hiểu thế nào là HTTP request và các phương thức của HTTP request.

1. Thế nào là HTTP request

HTTP request là thông tin được gửi từ client lên server, để yêu cầu server tìm hoặc xử lý một số thông tin, dữ liệu mà client muốn. HTTP request có thể là một file text dưới dạng XML hoặc Json mà cả hai đều có thể hiểu được. Dưới đây là một HTTP request sử dụng phương thức GET

2. Các phương thức của HTTP request

2.1. Phương thức GET

Get là phương thức được Client gửi dữ liệu lên Server thông qua đường dẫn URL nằm trên thanh địa chỉ của Browser. Server sẽ nhận đường dẫn đó và phân tích trả về kết quả cho bạn. Hơn nữa, nó là một phương thức được sử dụng phổ biến mà không cần có request body.

Ví dụ điển hình là khi bạn mở một trang web, Client sẽ gửi một phương thức Get lên server để truy xuất nội dung hiển thị của trang web. Nó tương đương với thao tác đọc.

Một số đặc điểm chính của phương thức Get là:

  • Giới hạn độ dài của các giá trị là 255 kí tự.
  • Chỉ hỗ trợ các dữ liệu kiểu String.
  • Có thể lưu vào bộ nhớ cache.
  • Các tham số truyền vào được lưu trữ trong lịch sử trình duyệt.
  • Có thể được bookmark (đánh dấu rồi xem lại sau) do được lưu trong lịch sử trình duyệt.

2.2. Phương thức POST

Phương thức Post là phương thức gửi dữ liệu đến server giúp bạn có thể thêm mới dữ liệu hoặc cập nhật dữ liệu đã có vào database.

Chúng ta sẽ gửi thông tin cần thêm hoặc cập nhật trong phần body request.

Một số đặc điểm chính của Post là:

  • Dữ liệu cần thêm hoặc cập nhật không được hiển thị trong URL của trình duyệt.
  • Dữ liệu không được lưu trong lịch sử trình duyệt.
  • Không có hạn chế về độ dài của dữ liệu.
  • Hỗ trợ nhiều kiểu dữ liệu như: String, binary, integers,..

2.3. Phương thức PUT

Cách hoạt động tương tự như Post nhưng nó chỉ được sử dụng để cập nhật dữ liệu đã có trong database. Khi sử dụng nó, bạn phải sửa toàn bộ dữ liệu của một đối tượng.

2.4. Phương thức PATCH

Tượng tự như Post và Put, nhưng Patch được sử dụng khi phải cập nhật một phần dữ liệu của đối tượng.

2.5. Phương thức DELETE

Giống như tên gọi, khi sử dụng phương thức Delete sẽ xoá các dữ liệu của server về tài nguyên thông qua URI. Cũng giống như GET, phương thức này không có body request.

2.6. Phương thức HEAD

HEAD gần giống giống với lại GET, tuy nhiên nó không có response body.

Nói một cách khác, nếu sử dụng phương thức GET tới đường dẫn /Books thì sẽ trả về danh sách các sản phẩm, còn khi sử dụng HEAD tới đường dẫn /Books nhưng không nhận được danh sách các sản phẩm.

Truy vấn HEAD hữu ích khi chúng ta sử dụng nó để kiểm tra API có hoạt động không do không có response body nên thời gian phản hồi nhanh hơn so với phương thức Get. Và thường được sử dụng để kiếm tra trước khi download file do cứ gọi đến api dowload sẽ download file nên thêm phương thức head vào nó kiểm tra xem api có đang hoạt động tốt không tránh down nhiều.

3. Cấu trúc của HTTP request

Một HTTP request bao gồm:

  • Request line
  • Body request ( có thể có hoặc không)

Một ví dụ về HTTP request đơn giản: https://bookstore.toolsqa.com/BookStore/v1/Books bao gồm các thành phần:

  • URL nguồn( URL chung cho tất cả Api trong hệ thống): https://bookstore.toolsqa.com/
  • Parameter( định danh cho 1 Api cụ thể) : BookStore/v1/Books

Bây giờ các bạn hãy mở một tab mới, paste URL https://bookstore.toolsqa.com/BookStore/v1/Books thanh công cụ tìm kiếm rồi enter. Sau đó bạn ấn chuột phải và chọn Inspect để mở các công cụ dành cho nhà phát triển. Tiếp đó chọn tab Network như bên dưới

Cuối cùng, các bạn ấn F5 lại trình duyệt, điều bất ngờ sẽ hiển thị ra. Chúng ta có thể nhìn thấy mô tả chi tiết của request. Hình dưới là chi tiết của phương thức Get

3.1. Request line

Request line là dòng đầu tiên trong HTTP request. Nó bao gồm 3 phần:

  • Phương thức HTTP được sử dụng
  • URI( Uniform Resource Identifier) giúp xác định các tài nguyên mà client yêu cầu.
  • Phiên bản của giao thức HTTP

Một request line sẽ có định dạng như sau: GET /BookStore/v1/Books HTTP/1.1

3.2. Request header

Request header giúp client có thể gửi yêu cầu lên server. Mỗi yêu cầu sẽ kèm theo các thông số, và các thông số đó được gọi là Header Parameters. Trình duyệt và server sẽ dựa vào các thông số header này để trả dữ liệu và hiển thị dữ liệu cho phù hợp.

Các thông số mà các bạn có thể gặp khá thường xuyên như:

  • User-Agent: cho phép server xác định ứng dụng, hệ điều hành, nhà cung cấp và phiên bản.
  • Connection: kiểm soát kết nối mạng. Nói cách khác, cho phép dừng hoặc tiếp tục kết nối sau khi server thực hiện xong yêu cầu.
  • Cache-Control: chỉ định chính sách bộ nhớ đệm của trình duyệt.
  • Accept-Language: cho biết tất cả các ngôn ngữ (tự nhiên) mà client có thể hiểu được.

3.3. Request body

Cho phép client gừi đến yêu cầu bổ sung cần server thực hiện như: tạo mới hoặc cập nhật dữ liệu mà không thể truyền trên Header Parameters.

Request body thường được sử dụng trong các phương thức Post, Put, Patch.

Dưới đây là request tạo account mới, với 2 parameter là userName và password

Tài liệu tham khảo: https://toolsqa.com/client-server/http-request/

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ