Sobes.tech
Junior — Middle

Czy można przesłać plik za pomocą żądania HTTP GET?

sobes.tech AI

Odpowiedź od AI

Przesyłanie pliku za pomocą żądania HTTP GET jest technicznie możliwe, ale jest to wysoce niezalecane i praktycznie nieużywane.

Przyczyny:

  • Metoda GET jest przeznaczona do pobierania zasobów, a nie do przesyłania dużych ilości danych.
  • W URL (gdzie przekazywane są parametry GET) istnieje ograniczenie długości, zazwyczaj około 2000 znaków.
  • Pliki są zazwyczaj zbyt duże, aby zmieściły się w URL.

Poprawny sposób przesyłania pliku to użycie metody POST z multipart/form-data, gdzie plik jest przesyłany w ciele żądania.

Przykład przesyłania pliku przez POST w Pythonie z użyciem requests:

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

Dlatego do przesyłania plików używaj POST, a nie GET.