CURL POST --data-binary vs -form
У меня есть простой вопрос относительно использования cURL. Не нашел много информации на странице поиска Google или Man, чтобы получить четкий ответ.
В здесь говорится об использовании --data
vs --form
при отправке файла/вложения. Мне любопытно узнать, в чем основное отличие и при каких сценариях вы бы выбрали --data-binary
VS --form
?
Тело "POST" POST может быть отправлено через --data (for application/x-www-form-urlencoded)
или --form (for multipart/form-data)
:
-F "foo=bar" # 'foo' value is 'bar'
-F "foo=<foovalue.txt" # the specified file is sent as plain text input
-F "[email protected]" # the specified file is sent as an attachment
-d "foo=bar"
-d "foo=<foovalue.txt"
-d "[email protected]"
-d "@entirebody.txt" # the specified file is used as the POST body
--data-binary "@binarybody.jpg"
Ответы
Ответ 1
Разница объясняется в разделе HTML 4.01 Specification в Формах:
application/x-www-form-urlencoded - это тип содержимого по умолчанию.
Тип содержимого "application/x-www-form-urlencoded" неэффективен для отправки больших количеств двоичных данных или текста, содержащих символы, отличные от ASCII. Тип контента "multipart/form-data" должен использоваться для отправки форм, содержащих файлы, данные, отличные от ASCII, и двоичные данные.
Ответ 2
Это точно основное отличие, тип данных, отправляемых на сервер (application/x-www-form-urlencoded
vs multipart/form-data
)