Autor | Zpráva | ||
---|---|---|---|
_pepak Profil * |
#1 · Zasláno: 27. 3. 2013, 12:54:14
Každý klient a každý druhý server dnes používá kompresi pro svoje odpovědi. Řešil někdo i případ, kdy by klient komprimoval svůj požadavek (např. při POSTování dlouhých ale dobře komprimovatelných souborů) a server si ho automaticky dekomprimoval? Jak chápu protokol HTTP, tak by to v zásadě mělo fungovat, když si do hlavičky požadavku dám správný Content-Encoding, ale podporují to servery v praxi? Tzn. můj request by vypadal například takhle:
POST /form.php HTTP/1.1 Host: www.mojedomena.cz Content-type: application/x-www-form-urlencoded Content-length: 123456 Content-encoding: gzip a tady by byl zaGZIPovaný obsah formuláře. Dokázal by to server správně dekódovat tak, aby třeba PHP skript na jeho straně viděl login=franta&password=123456, místo aby si musel sám řešit dekódování toho obsahu? |
||
ShiraNai7 Profil |
Zkusil jsem to a takto poslaná data se neukážou v
$_POST . Musel bys kontrolovat $_SERVER['CONTENT_TYPE'] a $_SERVER['HTTP_CONTENT_ENCODING'] a data si zpracovat sám. Tyto data (komprimovaná a ve formátu application/x-www-form-urlencoded ) získáš takto:
$input = fopen('php://input', 'r'); $data = stream_get_contents($input); fclose($input); Zřejmě to PHP nepodporuje. Jestli to je správně nebo špatně nevím. |
||
Davex Profil |
#3 · Zasláno: 27. 3. 2013, 19:06:39
_pepak:
Apache by měl přijatá data automaticky rozbalit, pokud se správně nastaví kompresní modul mod_deflate. |
||
_pepak Profil * |
#4 · Zasláno: 27. 3. 2013, 20:24:21
<b>Davex:</b> No vida, to by mohla být odpověď! Děkuju!
|
||
Časová prodleva: 5 dní
|
|||
_pepak Profil * |
#5 · Zasláno: 1. 4. 2013, 14:40:29
Kdyby to někoho zajímalo, tak to opravdu funguje. Akorát si člověk musí ten požadavek zkomprimovat sám.
|
||
Časová prodleva: 11 let
|
0