Portál AbcLinuxu, 10. května 2025 07:25
Content-Length:
chrome stránku zobrazí, aby se zobrazovala i v Mozile musím navíc přestat uzavírat socket po odeslání odpovědi.
Zkusil jsem ještě odpověď podle HTTP/0.9, tzn. odeslat pouze stránku a socket uzavřít. Mozila 3.6.17 na linuxu zobrazovala bez problémů, oba prohlížeče na win XP hlási chybu.
Je problém ve win XP, nebo se u novějších prohlížečů nepočítá s podporou HTTP/0.9 a 1.0, nebo dělám chybu jinde?
Content-Length
(pokud zůstane spojení otevřené, měla by se zároveň poslat hlavička Connection: keep-alive
). Pokud to nechcete jen na vlastní pokusy, je lepší napsat to tak, aby to odpovídalo specifikaci, ne jen zkoušet, co který prohlížeč snese.
"HTTP/1.0 200 OK\r\n" "\r\n" "HTML HEAD /HEAD BODY Nejlepsi http server. /BODY /HTML \r\n" "\r\n"a zavřu spojení, tak je to dobře (HTML tagy jsem musel očesat aby to sem šlo vložit)?
HTTP/1.0 200 OK <HTML><HEAD></HEAD><BODY>Nejlepsi http server.</BODY></HTML>Po odeslání se stránka zobrazí a dál se točí kolečko informující o načítání, po uzavření spojení se kolečko přestane točit a stránka je načtená. V tom vašem kódu nikde nevidím, že byste načítal celý požadavek. To by třeba mohl být jeden z problémů – prohlížeč nemusí čekat, že odpověď přijde dřív, než požadavek. Také nikde nemáte zaručeno, že se vaše odpověď pošle celá –
write
vám vrací počet skutečně odeslaných bajtů, a musíte jej opakovat tak dlouho (a posouvat se v bufferu), dokud se neodešle vše.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.