¿Cuál es la diferencia entre local.test.com
y .local.test.com
? La captura de pantalla es de Chrome.
¿Cuál es la diferencia entre local.test.com
y .local.test.com
? La captura de pantalla es de Chrome.
Respuestas:
local.test.com
se utilizará para el dominio, mientras que .local.test.com
también se utilizará para subdominios.
local.test.com
, no se aplicará a x.local.test.com
, pero .local.test.com
se aplica tanto a local.test.com
ya x.local.test.com
?
El punto inicial significa que la cookie también es válida para subdominios; sin embargo, las especificaciones HTTP recientes (RFC 6265) cambiaron esta regla, por lo que los navegadores modernos no deberían preocuparse por el punto inicial. Es posible que el navegador antiguo necesite el punto que implementa el RFC 2109 obsoleto.
Por ejemplo, si el valor del atributo Dominio es "ejemplo.com", el agente de usuario incluirá la cookie en el encabezado de la cookie cuando realice solicitudes HTTP a example.com, www.example.com y www.corp.example. com. (Tenga en cuenta que un% x2E (".") Inicial, si está presente, se ignora aunque ese carácter no esté permitido, pero un% x2E (".") Final, si está presente, hará que el agente de usuario ignore el atributo. )
Del artículo La guía definitiva para los dominios de cookies y por qué un prefijo www hace que su sitio web sea más seguro :
Conclusión
Aunque las definiciones son algo diferentes, podemos simplificarlo para cualquiera de estas implementaciones como:
Otras observaciones útiles:
Cuando no se establece ningún dominio en la cookie, la cookie solo debe coincidir con el nombre de host exacto de la solicitud. [NOTA: esto es diferente de devolver un Set-Cookie con un dominio sin un punto!] No hay subdominios, no hay coincidencias parciales. Esto significa simplemente no incluir el atributo de dominio; no es válido establecer un atributo de dominio vacío. Desafortunadamente, Internet Explorer parece tratar esto como el nombre de host junto con cualquier subdominio .
Al configurar un dominio en la cookie, la opción segura es que esté precedido por un punto, como .erik.io. La cookie coincidirá con todos los subdominios.
Establecer un dominio de cookie sin un punto anterior, como erik.io, no es válido en las implementaciones de RFC 2109 y producirá el mismo comportamiento que con un punto anterior en otras implementaciones. No hay forma de restringir una cookie a un dominio específico establecido explícitamente, sin que se incluyan subdominios.
En todas las RFC, un dominio de cookie especificado debe coincidir con el nombre de host actual, según la coincidencia normal. Establecer una cookie para www.erik.io en una respuesta de erik.io no es válido, ya que una cookie con dominio www.erik.io no coincide con erik.io, la primera es más específica.
En RFC 6265, los dominios se escriben explícitamente en minúsculas al analizar el encabezado Set-Cookie.
El punto inicial en ".local.test.com" es cómo Chrome ve las cookies con un conjunto de "Dominio = local.test.com" (o un "Dominio = .local.test.com", que es el mismo).
Definiciones de conjunto de cookies sin "Dominio = algo" visualiza el dominio (= host) sin un punto inicial.
Por lo tanto, el punto inicial en Chrome no refleja si se usó o no un punto inicial del servidor, sino si esa cookie tenía un "Dominio = algo" en su definición del servidor. (Y si así fuera, la cookie también se enviará a los subdominios).
Al menos esto es lo que muestran mis pruebas. Chrome debería hacer esto más fácil de leer, por ejemplo, ver la cadena exacta que definió la cookie y cuándo se recibió.