Má požadavek http vždy dokončit?

hlasů
1

Je-li požadavek na http vyrobeny a volající opouští požadavek to dostat dokončen vlastně je? Například asynchronní JavaScript požadavek GET k přihlášení banner kliknutí do DB a pak přesměrovat. Má skript muset čekat na odpověď?

Položena 26/08/2009 v 23:47
zdroj uživatelem
V jiných jazycích...                            


5 odpovědí

hlasů
3

Jak důležitá je váš požadavek? Co když databáze není k dispozici v té době? Co když na straně serveru kódu výjimku?

Pro velmi kritických požadavků, může být nutné provést nějakou Message Queuing, který je schopen pojmout data požadavku, dokud nebude možné zcela zpracovány. To se ještě dále komplikuje, pokud máte co do činění s mřížkami a mraky (můžete nejen fronty zprávy na jednom uzlu, protože uzel může mít potenciálně selhání hardwaru). Ale to je extrémní případ, kde jste skončili s vyhrazenými front servery.

Odpovězeno 27/08/2009 v 00:06
zdroj uživatelem

hlasů
2

Ve většině případů, jakmile je požadavek přijat serverem, bude to nezastaví zpracování, pokud klient přestane naslouchání.

Server však může stále selhat při servisu požadavek, tak to asi není dobrý nápad předpokládat, že dokončil.

Odpovězeno 26/08/2009 v 23:54
zdroj uživatelem

hlasů
2

Klient neodesílá žádné oznámení na serveru, který je ruší požadavek.

PHP neví, jestli má klient odpojen, dokud se pokusí odeslat klientovi nějaká data (např., Nepufrovaném echo()volání), takže pokud váš skript nevrací žádná data pro uživatele, bude plně realizovat. Pokud tomu tak vrací data, která může přerušit před dokončením skrz, ale to může být změněna ignore_user_abort()) Pokud používáte jiný prostředí, budete muset prozkoumat dokumentaci.

Odpovězeno 26/08/2009 v 23:54
zdroj uživatelem

hlasů
1

Nemusíte čekat na odpověď v pořadí pro žádosti o přístup k serveru. Server může kontrolovat, jestli někdo stále poslouchat při zpracování žádosti, ale zpracování požadavku začne, i když nikdo nenaslouchá na odpověď (pokud došlo k chybě na cestě, samozřejmě).

Pokud si chcete být jisti, že žádost ve skutečnosti bylo zpracováno, měli byste čekat na odpověď, ale to není nutné pro žádost o projít na server.

Odpovězeno 27/08/2009 v 00:16
zdroj uživatelem

hlasů
1

Měli byste počkat na to, aby byl v bezpečí. Nikdy nevíte, kdy se server dostane kolem zpracování požadavku (i když je to obvykle během několika stovek milisekund nebo méně), takže nebudete vědět, jestli se něco vypršel, selhal, nebo pokud jste šli na přidělení jiná odpověď, než bylo očekáváno, pokud budete čekat.

Odpovězeno 26/08/2009 v 23:51
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more