Trong bài viết trước, chúng ta đã cùng nhau tìm hiểu về giao thức HTTP và một phiên bản có thể được coi là nâng cấp của nó đó là HTTPS. Tất nhiên và với mọi loại giao thức đều sẽ có hai thực thể song hành với nhau, đó là request (yêu cầu) và response (phản hồi). Tuần này, Stringee sẽ giới thiệu tới bạn đọc các thông tin về HTTP request và các phương thức mà giao thức HTTP cho phép chúng ta có thể gửi yêu cầu

1. HTTP request là gì?

Theo định nghĩa của các nhà phát triển đến từ Mozilla, HTTP request là một tập các phương thức được định nghĩa để có thể thực hiện một số hành động dựa trên các tài nguyên gửi lên cho web server.

Các hành động của người dùng khi truy cập một trang web chính là ra lệnh cho trình duyệt thực hiện một chuỗi các HTTP request theo thứ tự hoặc một quy luật mà các lập trình viên đã tạo ra từ trước.

Ví dụ trên đây là thông tin mà web server của Stringee sẽ trả về để trình duyệt của các bạn đọc có thể hiển thị ra được trang web của chúng tôi.

2. Cấu trúc của một HTTP request

2.1. Request line

Đây là dòng đầu tiên của HTTP Request, với ba loại chính là method, path ( hay URL) và HTTP version. Cụ thể:

  • Method: gồm nhiều loại nhưng phổ biến nhất là GET và POST. Trong đó, phương thức GET có tác dụng dùng để yêu cầu các tài nguyên cung cấp trong URL.
  • Path (URL): có tác dụng định danh các nguồn tài nguyên được yêu cầu bởi khách hàng, người dùng và bắt buộc phải có dấu “/".
  • HTTP version: Đây là phiên bản HTTP được sử dụng, trong đó phổ biến nhất là HTTP/1.0 hay HTTP/1.1. (Với các bản cập nhật gần đây của các trình duyệt như Chrome, giao thức được mặc định sử dụng nếu không có sự can thiệp của lập trình viên sẽ là HTTP/1.2 vì các giao thức đã kể hiện không còn đủ an toàn trước sự tấn công của các hacker)

2.2. Headers

Yếu tố thứ hai góp phần làm hình thành HTTP Request đó là các header. Thông tin được bổ sung sẽ truyền tải giữa cả máy chủ và máy khách, chẳng hạn như cookie, thông tin về ủy quyền, tác nhân người dùng… Tương tự một HTTP Request, header sẽ phân biệt chữ thường và chữ hoa, theo sau đó là dấu “.” và một giá trị.

2.3. Message body

Yếu tố thứ ba được đề cập đến đó là massage body. Máy chủ dùng nội dung thư để cung cấp những thông thông tin cần thiết nhất đến với máy khách. Massage body có chứa các dòng yêu cầu, thông tin, dòng trống, tiêu đề, và nội dung. Trong đó, yếu tố nội dung sẽ tùy chọn. Không phải tất cả các yêu cầu đều có nội dung nhưng sẽ dùng POST để phân phối tải trọng.

>>> Xem thêm bài viết:

- Bài 1: Cài đặt Python và tạo dựng môi trường làm việc

- Bài 2: Biến và kiểu dữ liệu cơ bản trong Python

- Bài 3: Câu lệnh điều kiện if trong Python

3. Các phương thức để thực hiện một HTTP request

3.1. GET

Get là một trong các phương thức được sử dụng nhiều nhất bởi phía Client. Nó cho phép Client gửi yêu cầu thông qua đường dẫn (URL) lên server. Web server sẽ nhận đường dẫn đó và phân tích để trả về kết quả cho bạn. 

Phương thức GET không yêu cầu có request body để thực hiện. Khi bạn mở một trang web, client sẽ gửi lên server để truy xuất nội dung hiển thị của web, hành động này giống với một thao tác đọc của con người.

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.

3.2. 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. Post cũng là một phương thức được sử dụng trong hầu hết các phiên làm việc sử dụng giao thức HTTP.

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

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

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

3.5. DELETE

Giống như tên gọi, khi sử dụng phương thức Delete sẽ xóa 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.

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

Kết

Bài viết trên đã giới thiệu đến bạn khái niệm HTTP Request và một vài phương thức cơ bản nhất. Mỗi phương thức có những đặc điểm riêng để hỗ trợ nhu cầu của người dùng. Hy vọng những thông tin trên đây sẽ giúp bạn hiểu hơn về HTTP Request.


Stringee Communication APIs là giải pháp cung cấp các tính năng giao tiếp như gọi thoại, gọi video, tin nhắn chat, SMS hay tổng đài CSKH cho phép tích hợp trực tiếp vào ứng dụng/website của doanh nghiệp nhanh chóng. Nhờ đó giúp tiết kiệm đến 80% thời gian và chi phí cho doanh nghiệp bởi thông thường nếu tự phát triển các tính năng này có thể mất từ 1 - 3 năm.

Bộ API giao tiếp của Stringee hiện đang được tin dùng bởi các doanh nghiệp ở mọi quy mô, lĩnh vực ngành nghề như TPBank, VOVBacsi24, VNDirect, Shinhan Finance, Ahamove, Logivan, Homedy,  Adavigo, bTaskee…

Quý bạn đọc quan tâm xin mời đăng ký NHẬN TƯ VẤN TẠI ĐÂY: