local.test.com
과 의 차이점은 무엇입니까 .local.test.com
? 스크린 샷은 Chrome에서 가져온 것입니다.
local.test.com
과 의 차이점은 무엇입니까 .local.test.com
? 스크린 샷은 Chrome에서 가져온 것입니다.
답변:
local.test.com
도메인에 .local.test.com
사용되는 반면 하위 도메인에도 사용됩니다.
local.test.com
적용되지 않습니다 x.local.test.com
,하지만 .local.test.com
모두 적용 local.test.com
과에 x.local.test.com
?
앞의 점은 쿠키가 하위 도메인에도 유효 함을 의미합니다. 그럼에도 불구하고 최근 HTTP 사양 (RFC 6265)이이 규칙을 변경했기 때문에 최신 브라우저는 선행 점에 신경 쓰지 않아야합니다. 더 이상 사용되지 않는 RFC 2109를 구현하는 이전 브라우저에 점이 필요할 수 있습니다.
예를 들어 Domain 속성의 값이 "example.com"인 경우 사용자 에이전트는 example.com, www.example.com 및 www.corp.example에 대한 HTTP 요청을 만들 때 Cookie 헤더에 쿠키를 포함합니다. com. (있는 경우 선행 % x2E ( ".")는 해당 문자가 허용되지 않더라도 무시되지만 후행 % x2E ( ".")가있는 경우 사용자 에이전트는 속성을 무시합니다. )
기사 에서 쿠키 도메인에 대한 확실한 가이드와 www 접두사가 웹 사이트를 더 안전하게 만드는 이유 :
결론
정의는 다소 다르지만 이러한 구현에 대해 다음과 같이 단순화 할 수 있습니다 .
기타 가치있는 관찰 :
쿠키에 도메인이 설정되지 않은 경우 쿠키 는 요청의 정확한 호스트 이름과 만 일치 해야 합니다. [참고 : 이것은 점이없는 도메인이있는 Set-Cookie를 반환하는 것과 다릅니다!] 하위 도메인 없음, 부분 일치 없음. 이것은 단순히 도메인 속성을 포함하지 않음을 의미합니다. 빈 도메인 속성을 설정하는 것은 유효하지 않습니다. 안타깝게도 Internet Explorer는이를 하위 도메인과 함께 호스트 이름으로 취급하는 것으로 보입니다 .
쿠키에서 도메인을 설정할 때 안전한 선택은 .erik.io와 같이 앞에 점을 추가하는 것입니다. 쿠키는 모든 하위 도메인과 일치합니다.
erik.io와 같이 선행 점없이 쿠키 도메인을 설정하는 것은 RFC 2109 구현에서 유효하지 않으며 다른 구현에서 선행 점과 동일한 동작을 생성합니다. 하위 도메인을 포함하지 않고 쿠키를 명시 적으로 설정된 특정 도메인으로 제한하는 방법은 없습니다.
모든 RFC에서 지정된 쿠키 도메인은 일반 일치에 따라 현재 호스트 이름과 일치해야합니다. erik.io의 응답에서 www.erik.io에 대한 쿠키를 설정하는 것은 유효하지 않습니다. 도메인이 www.erik.io 인 쿠키는 erik.io와 일치하지 않기 때문입니다. 전자는 더 구체적입니다.
RFC 6265에서 도메인은 Set-Cookie 헤더를 구문 분석 할 때 명시 적으로 소문자로 지정됩니다.
".local.test.com"의 선행 점은 "Domain = local.test.com"세트 (또는 동일한 "Domain = .local.test.com")가있는 쿠키를 크롬에서 보는 방식입니다.
"Domain = something"이없는 Set-Cookie 정의는 선행 점없이 도메인 (= host)을 봅니다.
따라서 크롬의 선행 점은 서버에서 선행 점이 사용되었는지 여부가 아니라 해당 쿠키가 서버의 정의에 "Domain = something"을 포함했는지 여부를 반영합니다. (있는 경우 쿠키도 하위 도메인으로 전송됩니다).
적어도 이것은 내 테스트가 보여주는 것입니다. 예를 들어 Chrome은 쿠키를 정의한 정확한 문자열과 수신시기를 확인하는 등이를 더 쉽게 읽을 수 있어야합니다.