Article View: pl.comp.www.server-side
Article #61414Re: http header - connection
From: porneL
Date: Tue, 24 Jan 2012 20:40
Date: Tue, 24 Jan 2012 20:40
48 lines
3099 bytes
3099 bytes
On Mon, 23 Jan 2012 22:41:37 -0000, Marek Horodyski <marek.horodyski@interia.pl> wrote: > Dzien dobry. > To chyba jedyna grupa w .pl do zadania takiego pytania. > > Szukam sposobu na podtrzymanie po³aczenia Client-Server. Serwerem jest > aplikacja Harbourowa (www.harbour-project.org). W nag³ówku http w > connection > wstawiam keep-alive, ale jedynie Chrome mi to jako¶ uwzglêdnia. Inne > przegl±darki co chwile wyskakuj± z ¿±daniami na nowych portach. De facto > maj± jeden port, i to gdzie¶ po drodze "przyrasta". Co prawda mogê robiæ > connection=closed, ale zale¿y mi na podtrzymaniu sesji, gdy¿ po stronie > serwera mo¿na w ten sposób du¿o osi±gn±æ. Nie wiem czy to jako¶ z date > po³±czyæ, czy mo¿e zaznaczyæ jak±¶ reu¿ywalno¶æ socketu ? Chodzi mi o to > aby > przegl±darka z kolejnym odwo³aniem trafi³a do serwera na porcie (po > stronie > serwera) gdzie po porzednim wywo³aniu powsta³ dla przegl±darki w±tek w > którym przygotowano zasoby do przysz³ej pracy. Teraz skróci³em w±tki do 5 > min., a i tak mno¿y mi siê ich bez liku. Jak zwi±zaæ w±tek serwera z > przegl±dark± (ale nie sesid, tylko przypi±c przegl±darkê do socketa) ? > Czy > nag³ówkiem HTTP, parametrami socketów, czy mo¿e taka praktyka nale¿y do > "brzydkich" ? Nie da się. HTTP działa na zasadzie request-response, a połączenia to detal implementacji. Jeśli po drodze jest jakieś proxy, to nawet nie będziesz mieć połączenia TCP/IP z przeglądarką. Możesz kontrolować port na serwerze zmieniając port w URLu (Location: http://example.com:999), ale o kontrolowaniu portu przeglądarki w ogóle nie ma mowy. Możesz sugerować klientom, aby używali tego samego połączenia: Connection: Keep-Alive Keep-Alive: timeout=3600, max=1000 ale i tak mają prawo otwierać nowe połączenia albo zamknąć to połączenie wcześniej. Większość przeglądarek używa 6 połączeń, bo to przyśpiesza ładowanie zwykłych stron. Jak masz serwer bardzo czuły na szczegół, który ma nie meć znaczenia w HTTP, to musisz sobie postawić przed serwerem swoje proxy (może HAProxy albo Varnish da się odpowiednio skonfigurować? Nie próbowałem... Jak te nie dadzą rady, to zrób własny serwer w Node.js) -- regards, porneL
Technical Details
Message-ID:
<op.v8lvo9esvq69rq@aimac.local>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<jfknfs$ult$1@node2.news.atman.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: porneL <niusy5@pornel.net> Newsgroups: pl.comp.www.server-side Subject: Re: http header - connection Date: Tue, 24 Jan 2012 20:40:11 -0000 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 48 Message-ID: <op.v8lvo9esvq69rq@aimac.local> References: <jfknfs$ult$1@node2.news.atman.pl> NNTP-Posting-Host: 87-205-172-41.adsl.inetia.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1327437611 4419 87.205.172.41 (24 Jan 2012 20:40:11 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Tue, 24 Jan 2012 20:40:11 +0000 (UTC) X-User: pornelspam User-Agent: Opera Mail/11.61 (MacIntel) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit