Ответ
В POST-запросе данные передаются в теле запроса (body), а не в строке URL (как в GET-запросах). Это позволяет отправлять большие объемы данных и обеспечивает лучшую безопасность, так как содержимое не отображается в адресной строке браузера и не сохраняется в истории.
Почему это важно?
- Безопасность: Конфиденциальные данные (пароли, токены) не видны в URL.
- Объем: Нет ограничений длины, накладываемых на URL.
- Типы данных: Можно передавать не только текст, но и бинарные данные (файлы).
Пример HTTP-запроса:
POST /api/login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
username=johndoe&password=secret
Практический пример на Python с requests:
import requests
# Отправка данных формы
url = 'https://api.example.com/login'
form_data = {'username': 'johndoe', 'password': 'secret'}
response = requests.post(url, data=form_data)
# Отправка JSON
json_data = {'title': 'Post', 'body': 'Content', 'userId': 1}
response = requests.post(url, json=json_data)
Основные форматы тела запроса (указываются в заголовке Content-Type):
application/x-www-form-urlencoded(стандартные формы)application/json(структурированные данные API)multipart/form-data(загрузка файлов)