Sobes.tech
Junior — Middle

Може ли да се изпрати файл чрез HTTP заявка с метод GET?

sobes.tech AI

Отговор от AI

Прехвърлянето на файл чрез HTTP GET заявка е технически възможно, но силно се препоръчва да не се прави и практически не се използва.

Причини:

  • Методът GET е предназначен за получаване на ресурси, а не за прехвърляне на големи обеми данни.
  • В URL (където се предават параметрите GET) има ограничение на дължината, обикновено около 2000 символа.
  • Файловете обикновено са твърде големи, за да се поберат в URL.

Правилният начин за прехвърляне на файл е използването на метода POST с multipart/form-data, където файлът се изпраща в тялото на заявката.

Пример за прехвърляне на файл чрез POST в Python с requests:

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

Затова за прехвърляне на файлове използвайте POST, а не GET.