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
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
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ểuhttps://stackask.com?question=abc
, em có thể thấy dữ liệu của emquestion=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.2. Đối với giao thức POST thì sẽ cho phép truyền body cùng với url kiểu này:
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”.
Em trả lời post truyền data qua body
Sau đó bị hỏi: truyền qua body là như nào ?
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 ạ.
Đô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