Avatar
0
Cường Nguyễn Hữu Beginner
Cách thức gửi data của get và post
Em chỉ biết get gửi qua url còn post gửi ngầm qua body. Anh/chị có thể giải thích chi tiết gửi ngầm qua body là như nào, hôm trước đi phỏng vấn em bị tạch câu này
  • Answer
Remain: 5
2 Answers
Avatar
monkey Beginner
monkey Beginner
  1. Get là một giao thức cho việc để lấy dữ liệu, vị dụ trình duyệt lấy về 1 trang web chẳng hạn, ví dụ em gọi https://stackask.com chẳng hạn bản thân nó sẽ là GET https://stackask.com<. Tuy nhiên trên thanh công cụ của trình duyệt sẽ chỉ có ô để nhập URL thôi nên không có cách nào để nhập được body cả, thay vào đó em sẽ truyền dữ liệu cho GET thông qua parameter kiểu https://stackask.com?question=abc<, em có thể thấy dữ liệu của em question=abc nó bị hiển thị clear ra không?. Và hiện tại có nhiều thư viện lập trình HTTP client cũng không cho phép gửi GET kèm theo body và anh cũng không hiểu tại sao. Em có thể xem thêm ở cuộc thảo luận này.

  1. Đối với giao thức POST thì sẽ cho phép truyền body cùng với url kiểu này:

curl --location --request POST 'http://localhost:8080/api/v1/author/add' \
--header 'Content-Type: application/json' \
--data-raw '{
    "authorName": "Dzung"
}'

Nghĩa là em sẽ không cần phải truyền data qua request param nữa và nó cũng sẽ không xuất hiện trên url của em. Và có lẽ người phỏng vấn em hiểu việc dữ liệu không hiển thị trên url của em nữa được gọi là "ngầm".

  • 0
  • Reply
Em trả lời post truyền data qua body

Sau đó bị hỏi: truyền qua body là như nào ?

 –  Cường Nguyễn Hữu 1640036985000
Bản thân HTTP xây dựng trên TCP, nên body sẽ được truyền qua stream giữa client và server em ạ. Giao thức HTTP sẽ quy định một số thứ, trong đó phần body sẽ nằm sau phần header em ạ.  –  monkey 1640037756000
Avatar
Trung Nguyễn Beginner
Đôi khi hiểu Network cũng mới hiểu sâu và giải thích các bạn Interview có tình thể hiện này
  • 0
  • Reply