Sư khác nhau giữa GET và POST

Đọc trên mạng có nhiều luận điểm khác nhau quá ! Mọi ng cho ý kiến với ạ !

Theo mình biết thì cái nào có liên quan đến password thì dùng POST, còn không thì dùng GET. Vì khi dùng GET nó hiện cả cái thông tin mình nhập vào thanh địa chỉ!

Get thì dữ liệu từ form truyền qua Url, còn Post dữ liệu truyền qua Http

Hiểu sai rồi.
URL cũng là HTTP thôi.

2 Likes

Cảm ơn bạn nhé
Mình chỉnh lại
GET truyền dữ liệu qua url của get request, ví dụ :
/test/demo_form.asp?name1=value1&name2=value2


POST truyền dữ liệu trong body của post request, ví dụ
POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2

Mình đưa link tham khảo. Bạn đọc để hiểu thêm về 2 phương thức này.

http://www.w3schools.com/tags/ref_httpmethods.asp

Có nhiều lập trình viên dùng lẫn lộn giữa POST và GET.

Mẹo để quyết định xem dùng POST hay GET:

  • Có cần đẩy thông tin từ form lên & lưu gì vào cơ sở dữ liệu / file trên server hay không? Nếu có, dùng POST.

  • Nếu chỉ để lấy thông tin trên server về ta dùng GET - mặc dù GET có thể nhận thông tin từ form nhưng ít thôi, và không lưu vào đâu trên server hoặc lưu chút xíu so với POST.

3 Likes

POST cũng truyền được params mà

1 Like

Và get cũng truyền được dữ liệu vào body :grinning:. Nhưng về quy chuẩn thì không nên làm vậy.

Hai cái này về bản chất nó không khác nhau (khác nhau 4 ký tự đầu tiên trong http request http://www.tutorialspoint.com/http/http_messages.htm). Khác biệt là cách xử lý của trình duyệt đối với form có action="Get"và action=“Post” nó khác nhau (1 cái nó đưa params vào url, 1 cái đưa vào body). Cách thức server xử lý thì do lập trình viên quy định, nhưng theo chuẩn chung thì get dùng để “get” dữ liệu, và post dùng để “create” dữ liệu.

2 Likes

Theo mình biết về 1 số điểm khác nhau giữa 2 method này:
GET:

  • Là phương thức mặc định của HTTPRequest để gửi data từ client về server.
  • Hiển thị parameters trên URL của browser --> không đảm bảo được vấn đề sercurity đối với các thông tin nhạy cảm như password… và liên quan đến giới hạn độ dài của URL --> giới hạn số param truyền đến server.
  • Có thể bookmark được webpage trên browser được.

POST:

  • Không hiển thị parameters trên URL của browser (trong body request) --> đảm bảo được vấn đề sercurity, không giới hạn số param truyền đến server.

Cho mình hỏi nói như parameters không chứ trong body request vậy nó chứa ở đâu ? (Đang nói về POST)

nó chứa ở body chứ ở đâu bạn@@
trừ những thanh niên code server rảnh chuyển về header thì chịu thôi
Hoặc trường hợp post dữ liệu trống

1 Like

mình thấy get dùng để select dữ liệu còn post dùng để input dữ liệu , vì lúc trước làm webservice có đủ 4 method get,post,put,delete tương ứng với CRUD…

Phương thức GET : Yêu cầu thực thi một chương trình trên server, dữ liệu từ
user được kèm theo URL ( giống như gửi thư không bao thư).
Phương thức POST : Yêu cầu thực thi một chương trình trên server, dữ liệu
từ user không được kèm theo URL mà được đóng gói truyền ngầm( giống
như gửi thư có bao thư)

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?