No ono se vzdycky ukaze, ze to neni jedina cesta :-)
Jenom nekdo tomu klientovi musi vysvetlit, ze pacha stejne smysluplny cin, jako je zatloukani sroubu kladivem. Dokonce i se setejnym vysledkem - nakonec to tam nabusite. Otazka je jen, kdy a za jakych nakladu.
V RFC žádný limit není jak pro GET, tak pro POST ale většina klientů ho omezuje a pro GET považuje něco nad 4kB za množství "větší než malé". A pokud MS píše "However, the POST method is not limited by the size..." tak tím myslí: 64kB paměti je dostatečné pro každého programátora :-)
Většina netového software byla navržena v době, kdy 31 bitů bylo strašně moc a 2GB limit si nikdo nedokázal představit. Takže takový IE umí 2GB, stejně jako FF, IIS zvládně 4GB. FF i IE se při poslání 3GB souboru nerozpakují poslat hlavičku
Content-Length: -1243515235
a jen ten FF se při tom začervená.
Až třeba Chrome či Opera ve svých jádrech respektují RFC a to omezení posouvají na standardních 63 bitů, které nám snad nějakou dobu vydrží a dneska vypadaji skoro jak bez limitu. A ty staré klienty a servery snad taky někdo časem přeprogramuje ...
No, neni. Často je to ovšem jediná cesta. A máme i klienty, kteří chtějí dostat přes http desítky GB a pak je ještě nacpat do SQL. Taky nevím, k čemu je to dobré.
Dnešní soubory ale do gigabajtů dorostly, některé servery také, principielně žádný problém není. Kromě těch blbě navržených klientů.
Chápu, že dávat desetigigový soubor přes http do SQL je srovnatelné.
Ale nahrávat 2GB video z browserů je dnes už celkem běžná akce. Většina dnešního SW umí se soubory nad 2GB normálně pracovat. Není důvod, proč by to neměli umět také http klienti.
Jezdit autem sám je taky zoufale neefektivní, přesto existuje určité množství lidí, kteří se do vlaku nenaštosují. A když přijedou do práce autem, není to tak dokonalý, jako kdyby jeli vlakem, ale věřte mi, že jich neubude. Možná mají větší riziko havárie, ale zase se neumažou a nechytí chřipku.
Zoufale neefektivní je ztrácet čas lidí. V době kumutovaných plnohodnotných připojení k internetu bylo celkem efektivní přesvědčit člověka, aby si pro nahrání většího souboru nainstaloval software, naučil se s ním dělat a za x desítek hodin ho po modemu dostal na server.
V době pevných rychlých neplnohodnotných linek s několika firewaly na cestě a jediným povoleným portem 80 je nejefektivnější plácnout do webového formuláře input type="file". A věřte mi, že soubor nahraný přes http je docela stejně dokonalý, jako přes jakýkoliv jiný protokol.
Bylo by to nejefektivnější i pro soubory nad 2GB, kdyby autoři http klientů typu IE a FF rosuměli tomu, co je to RFC, věděli, že http hlavička "500 server error" neznamená "100 continue" a že "nelimitovaná velikost" dnes neznamená 31 bitů.
Jenže takhle musí rigidní ajťák říkat: No, víte, pro ten soubor, který chcete nahrát, si musíte nainstalovat Google chrome, protože to je jediný software, který jakž takž dodržuje navržené protokoly. Najdete jí tam a tam. A následuje několikahodinové školení a telefonáty, kterým jak ajťák, tak klient ztrácí drahocenný čas.