Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 20025|Odpověď: 0

[ASP.NET] ASP.NET průchod parametrů, limity délky a opatření při používání.

[Kopírovat odkaz]
Zveřejněno 08.03.2018 10:18:07 | | | |
1. Příčiny problému
V příloze "Post-Release Problems" ve statistikách chyb po vydání projektu jsou:   



Jako akumulace zkušeností budou tyto problémy, příčiny a řešení zahrnuty do kontrolního seznamu, a pak:
První otázka: Je horní hranice URL parametru přesná reference? Jaký je horní limit?
Druhá otázka: Proč je při POST omezení dat? Je limit 128 tisíc?  
2. Analýza problému
1. První:
1) V URL neexistuje horní hranice parametrů. Problém je ve skutečnosti v tom, že IE má limit délky na URL.
2) Specifikace protokolu HTTP také neomezuje délku URL. Toto omezení je omezení uvalené konkrétním prohlížečem a serverem. Limit délky URL IE je 2083 bajtů (2K+35). U jiných prohlížečů jako Netscape, FireFox atd. neexistuje teoretické omezení délky a jeho limit závisí na podpoře operačního systému. [Ref. 1]
3) "Parametry proměnné délky jsou předávány přes URL" ve skutečnosti znamená, že při odesílání formuláře se používá metoda GET, nikoli metoda POST. Příčinou této možné chyby je použití metody GET pro odesílání formulářových dat. Protože metoda GET předává data v URL serveru ke zpracování.
4) Všimněte si, že tento limit je celá délka URL, nikoli pouze délka parametru, hodnota dat.
5) Protože je to limit délky URL v IE, mají toto omezení jak metoda, GET, tak POST.
(Podrobnosti o metodách GET a POST v FORM [Ref. 2]) naleznete v souvisejícím dokumentu.)  
Doporučení:
1) Porozumět prostředí, ve kterém se aplikace nachází, například prohlížeči a serveru webové aplikace, a porozumět jejím specifickým omezením parametrů.
2) Používat metodu POST co nejvíce k odesílání složitých dat. Poznámka: Pokud FORM nezapisuje atribut metody, výchozí je použití metody GET.
Závěr (napište na kontrolní seznam):
Při odesílání dat pomocí metody GET je třeba zohlednit limit délky URL 2083 bajtů v prostředí IE.
2. Druhá:
1) Teoreticky POST nemá žádné omezení velikosti. Specifikace HTTP protokolu také nemá žádné omezení velikosti.
2) "Existuje limit velikosti 128K pro POST data" není dostatečně přesný, neexistuje žádný limit pro POST data a výpočetní výkon procesoru serveru hraje omezující roli.
3) Pro programy ASP existuje limit délky dat 100 000, když objekt Request zpracovává každé pole formuláře. Ale u Request.BinaryRead takové omezení není. Pro řešení vyžadující zpracování více než 100K doménových dat viz [Ref. 3] níže.
4) Rozšířeně Microsoft pro IIS 6.0 zvýšil omezení z bezpečnostních důvodů [Ref. 4]. Musíme také věnovat pozornost:
   IIS 6.0 ve výchozím nastavení umožňuje maximálně 200 KB dat ASP POST a limit je 100 KB na pole formuláře.
    Výchozí velikost uploadových souborů IIS 6.0 je 4MB.
    IIS 6.0 má výchozí maximální záhlavku požadavku 16KB.
    Tato omezení nebyla před IIS 6.0 dostupná.
Doporučení:
1) Znalost výchozích nastavení běžícího prostředí vám pomůže navrhnout a rychle řešit vznikající problémy.
2) Je třeba zvážit verzi serveru. Každá verze IIS má pro tyto parametry jiné výchozí nastavení, takže pokud je to nutné, najděte informace a sestavte srovnávací tabulku. Tímto způsobem existuje referenční bod pro vývoj a testování.
3) Tato omezení IIS 6.0 jsou ve skutečnosti jen jeho výchozí nastavení, která můžete upravovat přímo v aplikačním prostředí.
    V WINNT/system32/inetsrv/MetaBase.xml je výchozí definice:
        AspBufferingLimit="4194304" odpovídá maximální velikosti nahraného souboru
        AspMaxRequestEntityAllowed="204800" odpovídá maximálnímu množství dat v POST
        ...
Závěr (napište na kontrolní seznam):
Při použití ASP je třeba vzít v úvahu, že POST formulář má limit 100KB na pole pro obecné čtení textu. Zvažte, zda použít Request.Binary.





Předchozí:asp.net mvc nastaví formulářový příspěvek tak, aby umožnil odeslání HTML
Další:System.Linq.Dynamic
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com