Можно ли передать файл через HTTP

«Можно ли передать файл через HTTP» — вопрос из категории API и интеграции, который задают на 24% собеседований Бизнес Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, файлы можно передавать через HTTP с помощью методов POST или PUT, используя multipart/form-data или binary data в теле запроса.

Пример с multipart/form-data (Python, requests):

import requests

url = 'https://example.com/upload'
files = {'file': open('example.txt', 'rb')}
response = requests.post(url, files=files)
print(response.status_code)

Ключевые моменты:

  • Для загрузки файлов чаще используют POST.
  • multipart/form-data подходит для форм с файлами и текстовыми полями.
  • Для передачи сырых бинарных данных (например, JSON + файл) можно использовать Base64-кодирование.
  • Максимальный размер файла может ограничиваться сервером (обычно настраивается в веб-сервере, например, client_max_body_size в Nginx).