ENCTYPE= MULTIPART/FORM-DATA LÀ GÌ

     

Trong thừa trình thao tác làm việc với API, mình gặp một chút vấn đề với hình dạng mã hóa dữ liệu khi submit form và gửi tài liệu cho server. Sau thời điểm tìm hiểu, bạn thích chia sẻ lại kỹ năng và kiến thức này cũng phần đông người, mong muốn nó đã giúp chúng ta hiểu phần nào.

Bạn đang xem: Enctype= multipart/form-data là gì

1. Giới thiệu

Bây giờ, ta sẽ đi sâu vào những loại này hơn nhé.

2. URL Encoded Form

Ví dụ:

Ở đây, thủ tục đước sử dụng là phương thức POST, bởi vậy dữ liệu sẽ có trong body của request. Thứ hạng mã hóa được dùng ở đây là kiểu URL Encoded. Hiểu dễ dàng và đơn giản thì dữ liệu được trình diễn dưới dạng (key, value), nối cùng với nhau bởi ký hiệu & thành một chuỗi (long string). Trong mỗi cặp (key, value), key cùng value bóc tách nhau bở vệt =.

Ví dụ: key1=value1&key2=value2

Với size như trong lấy ví dụ như thì dữ liệu trình lên sẽ là: username=sidthesloth&password=slothsecret.

Ngoài ra, chú ý thuộc tính kích hoạt của form gồm /urlencoded?firstname=sid&lastname=sloth. Dữ liệu này và tài liệu truyền lên từ khung giống nhau về phong cách mã hóa.

*
Ta thấy, sinh hoạt trường Content-Type trên header của request có xác định kiểu mã hóa là application/x-www-form-urlencoded.

3. Multipart Forms

Xem tin tức của request:

*
Chú ý ngôi trường Content-Type với payload của request.

Xem thêm: Em Ơi Bao Lâu Mới Đến Ngày Mai Cover, Em Ơi Bao Lâu Mới Đến Ngày Mai

Content-Type Header

Ngoài giá trị multipart/form-data, ngơi nghỉ Content-Type còn tồn tại giá trị boundary. Quý giá này bởi vì trình duyệt tạo nên ra, tuy thế nếu đề nghị thì ta vẫn hoàn toàn có thể xác định nó.

Request Body

Mỗi cặp (key, value) được màn biểu diễn dưới dạng:

-->Content-Disposition: form-data; name=">">Kết thúc payload sẽ là cực hiếm của boundary nối với kí hiệu --.

-->Content-Disposition: form-data; name=">">-->Content-Disposition: form-data; name=">">-->--Như vậy, với thứ hạng mã hóa application/x-www-form-urlencoded, mỗi cặp (key, value) được ngăn cách với nhau bằng dấu & đến chép vps biết nơi bắt đầu và xong của một tham số. CÒn với hình trạng multipart/form-data, những giá trị boundary thực hiện các bước này.

Ví dụ, nếu để boundary=XXX thì

Content-Type: multipart/form-data; boundary=XXXpayload gồm dạng:

--XXXContent-Disposition: form-data; name="username"sidthesloth--XXXContent-Disposition: form-data; name="password"slothsecret--XXX--Như vậy, trình thông qua sẽ đọc được ban đầu và dứt của những giá trị.

4. Text/plain Forms

Kiểu mã hóa này gần giống với giao diện URL encoded forms, bên cạnh việc những trường của form không được mã hóa khi gửi lên server. Kiểu này sẽ không được dùng rộng rãi vì format này hoàn toàn có thể đọc được với kém bảo mật. Để hiểu hơn, chúng ta có thể đọc trên đây.

Xem thêm: Cách Sử Dụng Code Block S Bản Nosetup, Hướng Dẫn Sử Dụng Code::Blocks

5. Tổng kết

Trên đây là một số tra cứu hiểu của mình về những loại HTML form Encoding. Tuy không thật sự hoàn chỉnh nhưng hy vọng rằng rất có thể giúp các bạn hiểu và tách biệt cơ bản. Cảm ơn các bạn.

Tài liệu tham khảo

https://dev.to/sidthesloth92/understanding-html-form-encoding-url-encoded-and-multipart-forms-3lpa#:~:text=application%2Fx-www-form,user wants to lớn upload files

https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data