Portál AbcLinuxu, 15. července 2025 03:12


Dotaz: Firefox a cookies

19.4.2008 00:54 Matlák
Firefox a cookies
Přečteno: 735×
Odpovědět | Admin
Dobrý den. Napsal jsem si takový jednoduchý HTTP server v C++ - je velice primitivní, pouze v HTTP požadavku najde "GET" a "HTTP" a řetězec mezi nimi otevře jako soubor v lokálním adresáři. Pokud se na tento připojím pomocí netcatu, zadám GET /obsah.html HTTP/1.0 a stisknu Enter, dostanu takovýto výpis:
HTTP/1.0 200 OK
Cache-Control: private
Content-Type:
Content-Length: 15940
Set-Cookie: Testcookie="ahoj";  domain=localhost
Server: gws
Date: Tue, 16 Jan 2008 1:53:14 GMT
Connection: Close

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">

<html>

    nějaká HTML data

</html>

Server všechny přijaté požadavky vypisuje na standardní výstup.Pokud se na tento server připojím Operou (verze 9.25), již druhý požadavek obsahuje hodnotu cookie:
GET /img/shadow.png HTTP/1.1
User-Agent: Opera/9.25 (X11; Linux i686; U; en)
Host: localhost:2932
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: cs,en-US;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Referer: http://localhost:2932/
Cookie: Testcookie="ahoj"; Testcookie="ahoj"
Cookie2: $Version=1
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers

Oproti tomu Firefox cookie vůbec nezaregistruje. Ani po mnoha požadavcích Firefoxu se vzhled požadavku nemění:

GET /obsah.html HTTP/1.1 Host: localhost:2932 User-Agent: Mozilla/5.0 (X11; U; Linux i686; cs; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: cs,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://localhost:2932/

Ani v manažeru cookies se nic neobjeví. Nepodávám tedy správný, "standardní" požadavek na uložení cookie? Proč tomu tedy Opera rozumí? Jiné servery mi cookies do Firefoxu ukládají bez problému.. Nevíte v čem by mohl být zakopaný pes?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

19.4.2008 12:06 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Firefox a cookies
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nemůžu teď najít specifikaci, ale zkusil bych vyhodit (nebo zakódovat) ty uvozovky a doplnit path.
19.4.2008 12:07 Petr Svoboda | skóre: 13 | blog: * | Příbram
Rozbalit Rozbalit vše Re: Firefox a cookies
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je to jen domněnka, ale je možné, že Opera localhost rozpozná jako speciální a Firefox ne. Existuje omezení pro domain. Uvádí se, že domain musí obsahovat alespoň dvě tečky (např. .host.cz) čemuž localhost neodpovídá...
19.4.2008 12:38 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Firefox a cookies
Určitě ne, cookies ve Firefoxu mi samozřejmě fungují i na localhostu (i jiných jménech "bez teček"). Navíc při dnešní módě "webů bez www" by to vaše pravidlo nadělalo spoustu problémů.
19.4.2008 14:00 Petr Svoboda | skóre: 13 | blog: * | Příbram
Rozbalit Rozbalit vše Re: Firefox a cookies
Takže jsem byl donucen si svoji domněnku ověřit a mám IMO pravdu. Na localhost samozřejmě cookies fungují, ale nesmí se použít domain (na tu opravdu uvedená omezení IMO platí). Ve Firefoxu je to dokonce vidět, protože u cookies z localhost je Host: localhost a nikoli Domain: localhost. Lze vyzkoušet:
<?php
setcookie("TestCookie", '"test_value"',
    time()+3600, '/', 'localhost');
echo "nefunguje";
?>
versus
<?php
setcookie("TestCookie", '"test_value"',
    time()+3600, '/');
echo "funguje";
?>
Takže má rada: domain v Set-Cookie používat pouze pokud to opravdu je potřeba.
Navíc při dnešní módě "webů bez www" by to vaše pravidlo nadělalo spoustu problémů.
IMO .jmeno.cz je pro potřeby cookies to samé jako jmeno.cz. Ale ruku do ohně bych za to nedal a zkoušet se mi to teď nechce. ;-)
19.4.2008 15:43 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Firefox a cookies
IMHO by bylo lepší podívat se do té specifikace, než věštit z kávové sedliny a opírat se o výsledky pár náhodných pokusů.
19.4.2008 17:27 Petr Svoboda | skóre: 13 | blog: * | Příbram
Rozbalit Rozbalit vše Re: Firefox a cookies
Prosím: rfc2109 mi konec konců dává zapravdu. A tedy by mě zajímalo, kdo z nás dvou věští z kávové sedliny. Píšu-li něco zpaměti, neznamená to, že to nevím.

To, že ne vše funguje dle specifikace ukazuje třeba Opera, která podle ní zřejmě nejedná. Prohlížeče by si na současném webu se specifikacemi zajisté nevystačily, tedy jednoduchý pokus IMO není od věci.
19.4.2008 20:53 Matlák
Rozbalit Rozbalit vše Re: Firefox a cookies
Máte pravdu, ve specifikaci něco takového je a experiment to potvrdil, chyba tedy byla na mé straně. Mimochodem, není to poprvé co jsem napsal něco ohledně HTTP dle "selského rozumu" a Opera tomu přesto rozuměla. Až dodatečně jsem zjistil, že jsem mimo specifikace. Díky všem za pomoc.

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.