Các phương thức Request trong giao thức HTTP

Phương thức Request HTTP

Giao thức HTTP là gì?

Giao thức HTTP (Hypertext Transfer Protocol) được thiết kế để cho phép giao tiếp giữa clients và servers.

HTTP làm việc như một giao thức yêu cầu-phản hồi (request-response) giữa client và server.

Ví dụ: Một client (browser) gửi một request HTTP tới server; rồi server response lại client. Response này chứa thông tin trạng thái về request đó và có thể cũng chứa nội dung của request.

Bạn cần nắm rõ cơ chế hoạt động của phương thức HTTP để sử dụng cho ứng dụng web động hoặc Web API.


Các phương thức HTTP

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH
  • OPTIONS
  • CONNECT
  • TRACE

Hai phương thức thông dụng HTTP là: GET và POST.


Phương thức GET

GET được sử dụng để request dữ liệu từ một tài nguyên chỉ định.

Chú ý rằng query string là một cặp name/value được gắn vào URL của request GET:

Ví dụ: https://timoday.edu.vn/test/demo_form.php?name1=value1&name2=value2

Một vài điểm chú ý về request GET:

  • request GET có thể được lưu vào bộ nhớ đệm (cached)
  • reguest GET có thể được giữ lại trong lịch sử trình duyệt
  • request GET có thể được lưu lại trong bookmarked
  • request GET không nên sử dung khi bạn gửi đi những dữ liệu nhạy cảm ví dụ như mật khẩu, số tài khoản …
  • request GET hạn chế về độ dài
  • request GET chỉ được sử dụng để lấy dữ liệu (không sửa đổi)

Phương thức POST

POST được sử dụng để gửi dữ liệu tới server để thêm mới/cập nhật (create/update) một tài nguyên.

Dữ liệu gửi tới server với phương thức POST được lưu trữ trong thân của request HTTP.:

POST /test/demo_form.php HTTP/1.1
Host: timoday.edu.vnname1=value1&name2=value2

Một vào chú ý với request POST:

  • request POST không bao giờ được lưu vào bộ nhớ đệm (cached)
  • request POST không giữ lại trong lịch sử trình duyệt
  • request POST không thể lưu lại trong bookmarked
  • request POST không bị hạn chế về độ dài dữ liệu

So sánh GET với POST

Bản sau đây so sánh hai phương thức HTTP: GET và POST.

GET POST
Nút BACK/Reload Không ảnh hưởng gì, không có hại gì Dữ liệu sẽ bị gửi lại (trình duyệt sẽ thông báo tới người dùng rằng dữ liệu sẽ bị được gửi lại)
Bookmarked Có thể được bookmarked Không thể bookmarked
Cached Có thể cached Không cached
Encoding type application/x-www-form-urlencoded application/x-www-form-urlencoded hoặc multipart/form-data. Sử dụng multipart encoding cho dữ liệu binary
History Các tham số (Parameters) được lưu giữ trong lịch sử trình duyệt Parameters không được lưu giữ trong lịch sử trình duyệt
Giới hạn về độ dài dữ liệu Có, khi dữ liệu gửi đi, phương thức GET thêm dữ liệu tới URL; và độ dài URL là giới hại (độ dài tối đa URL là 2048 ký tự) Không hạn chế
Hạn chế kề kiểu ký tự Chỉ chấp nhận các ký tự ASCII Không hạn chế. Dữ liệu nhị phân cũng cho phép.
Security GET là ít bảo mật hơn so với POST bở vì dữ liệu được đưa lên URL và mọi người có thể nhìn thấy

Không bao giờ được dùng GET để gửi dữ liệu nhạy cảm như mật khẩu, số tài khoản …

POST an toàn hơn GET vì các tham số không được lưu trữ trong lịch sử trình duyệt hoặc trong các logs của web server
Visibility Dữ liệu hiển thị hết cho mọi người trên URL Data không được hiển thị trên URL

Có thể bạn sẽ thích…

Trả lời