Ответ
Тело POST-запроса может передавать данные в различных форматах, указанных в заголовке Content-Type. Основные форматы:
-
application/x-www-form-urlencodedСтандартный формат для HTML-форм. Данные кодируются в виде парключ=значение, объединенных амперсандом&. Символы пробела заменяются на+.POST /submit HTTP/1.1 Content-Type: application/x-www-form-urlencoded name=John+Doe&age=30&city=New+York -
multipart/form-dataИспользуется для загрузки файлов. Каждая часть данных (поля формы или файлы) разделяется уникальной границей (boundary).POST /upload HTTP/1.1 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryABC123 ----WebKitFormBoundaryABC123 Content-Disposition: form-data; name="description" Profile picture ----WebKitFormBoundaryABC123 Content-Disposition: form-data; name="file"; filename="photo.jpg" Content-Type: image/jpeg [бинарные данные файла] ----WebKitFormBoundaryABC123-- -
application/jsonНаиболее популярный формат для REST API. Данные передаются в структурированном JSON-виде.POST /api/users HTTP/1.1 Content-Type: application/json { "name": "John Doe", "age": 30, "city": "New York" } -
text/xmlилиapplication/xmlИспользуется в SOAP API и некоторых legacy-системах.POST /soap/service HTTP/1.1 Content-Type: text/xml <user> <name>John Doe</name> <age>30</age> </user>
Выбор формата зависит от требований API: multipart/form-data — для файлов, application/json — для структурированных данных в современных API, x-www-form-urlencoded — для простых форм.