Portál AbcLinuxu, 10. května 2025 07:25

Dotaz: HTTP/0.9 a 1.0 v nových prohlížečích

22.8.2013 10:15 Zmije
HTTP/0.9 a 1.0 v nových prohlížečích
Přečteno: 224×
Odpovědět | Admin
Příloha:
Zdravim, s kamarádem se snažím vytvořit jednoduchý web server na jednočipu. Kamarád má pouze win XP a při pokusu o připojení mozila píše chybu: Spojení se serverem bylo v průběhu načítání stránky ukončeno. Doma jsem podle příkladu s linux sokety napsal jednoduchý server. Pokud se k serveru připojím přes loopback z linuxu s Mozilou 3.6.17 stránka se zobrazí bez problémů. Pokud se pokusím připojit z Mozily 23.0.1 běžící na win. XP objeví se mi opět: Spojení se serverem bylo v průběhu načítání stránky ukončeno. Zkusil jsem i Chrome, objevilo se mi: Tato webová stránka není dostupná. Zkoušel jsem upravovat HTTP hlavičku. Pokud doplním 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?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.8.2013 10:25 Filip Jirsák
Rozbalit Rozbalit vše Re: HTTP/0.9 a 1.0 v nových prohlížečích
Odpovědět | | Sbalit | Link | Blokovat | Admin
S podporou HTTP 0.9 se už nepočítá snad nikde.

Aby klient poznal, že načetl celý požadavek, je nutné buď ukončit TCP/IP spojení, nebo poslat hlavičku 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.
22.8.2013 10:27 Joe
Rozbalit Rozbalit vše Re: HTTP/0.9 a 1.0 v nových prohlížečích
Odpovědět | | Sbalit | Link | Blokovat | Admin
No, jestli spravne koukam, tak na konci odpovedi ma byt jeste jednou odradkovani a to uz se do lenght nezapocitava.
22.8.2013 11:05 Zmije
Rozbalit Rozbalit vše Re: HTTP/0.9 a 1.0 v nových prohlížečích
Pokud odpovím
"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)?
22.8.2013 11:38 Filip Jirsák
Rozbalit Rozbalit vše Re: HTTP/0.9 a 1.0 v nových prohlížečích
To dvojité odřádkování na konci je zbytečné, to jste jen přidal dva prázdné řádky na konec toho HTML souboru. Zkoušel jsem teď do Chrome odeslat následující odpověď:
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.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.