Ich habe manuell erstellt zwei Cookies mit Firebug:Warum Webbrowser beim Senden von Cookies die Portnummer nicht interessiert?
Cookie1=value1; expires=Sat, 29 Mar 2014 06:21:54 GMT; path=/Ex05Cookie; domain=localhost; HttpOnly
Cookie2=value2; expires=Sat, 29 Mar 2014 06:21:54 GMT; path=/Ex05Cookie; domain=localhost:8080; HttpOnly
Der einzige Unterschied ist das Domain-Attribut, ist localhost
, während die andere eine Portnummer haben.
Dies ist der HTTP-Header, wenn ich versuche http://localhost:8080/Ex05Cookie/
zu beantragen:
GET /Ex05Cookie/ HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie: Cookie1=value1
Connection: keep-alive
Cache-Control: max-age=0
wo der Header enthält nur cookie1 deren Domäne ist localhost
.
Warum mein Firefox nicht Cookie2 anstelle von Cookie1 senden?
Ich denke, es ist das "same-domain" Problem mit der HTTP-Mechanik, wo der Browser verschiedene Pfade und/oder Ports nicht unterscheidet, um verschiedene Cookies zu verwenden die gleiche Domain. –
Dies kann jedoch zu Problemen führen, da verschiedene Server auf unterschiedlichen Ports ausgeführt werden und Cookies, die vom httpd-Server (Port 80) erstellt wurden, nicht an Tomcat (8080-Port) gesendet werden sollten. –
Sehr wahr; Ich bin auch daran interessiert, wer einen Workaround dafür kennen würde. –