🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.www.server-side
Article #61414

Re: http header - connection

#61414
From: porneL
Date: Tue, 24 Jan 2012 20:40
48 lines
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-mail
References: <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