Programming

모든 웹 요청이 브라우저 쿠키를 보내나요?

procodes 2020. 5. 19. 20:47
반응형

모든 웹 요청이 브라우저 쿠키를 보내나요?


모든 웹 요청이 브라우저의 쿠키를 보내나요?

페이지 뷰를 말하는 것이 아니라 이미지, .js파일 등을 요청하는 것입니다 .

업데이트 웹 페이지에 50 개의 요소가 있으면 50 개의 요청입니다. 각 요청에 대해 SAME 쿠키를 보내는 이유는 무엇입니까?


예, 요청 된 URL이 쿠키에 정의 된 동일한 도메인 및 경로 (및 보안, httponly, 만료되지 않은 등의 다른 모든 제한) 내에있는 경우 쿠키는 모든 요청에 ​​대해 전송됩니다.


다른 사람들이 말했듯이 쿠키의 호스트, 경로 등의 제한 사항이 충족되면 50 번 전송됩니다.

그러나 쿠키는 HTTP 기능이고 HTTP는 상태 비 저장이기 때문에 이유를 물었습니다. HTTP는 서버가 요청 사이의 상태를 저장하지 않고 작동하도록 설계되었습니다.

실제로 서버는 어떤 사용자가 주어진 요청을 보내는 지 인식하는 확실한 방법이 없습니다. 단일 웹 프록시 (및 IP 주소) 뒤에는 수천 명의 사용자가있을 수 있습니다. 쿠키가 모든 요청을 보내지 않은 경우 서버는 어떤 사용자가 어떤 리소스를 요청하는지 알 수있는 방법이 없습니다.

마지막으로, 서버에 쿠키가 필요한지 여부는 브라우저에 실마리가 없습니다. 서버가 요청을 위해 쿠키를 foo.com에 보내도록 지시했다는 것을 알기 때문에 그렇게합니다. 때로는 이미지 (예 : 사용자별로 동적으로 생성 된 이미지)가 필요하지만 때로는 브라우저에서 알 수없는 경우도 있습니다.


예. 모든 요청은 동일한 도메인에 속하는 쿠키를 보냅니다. HTTP는 상태 비 저장이므로 캐시되지 않으므로 모든 요청이 서버가 처리해야 할 작업을 파악할 수 있어야합니다. 특정 사용자 만 액세스 할 수있는 이미지가 있다고 가정하십시오. 당신은 해야한다 서버가 그것이 점점 요청의 풀 사이에 당신이 아닌 다른 사람, 또는 손님, 알고있다, 그래서 그 (50 개) 요청을 모두 사용하여 인증 쿠키를 보냅니다.

그러나 HTTPS 설정, 경로 또는 도메인과 같은 다른 응답에 언급 된 다른 제한이 주어지면 쿠키가 전송되지 않을 수 있습니다. 특히 중요한 점은 쿠키가 도메인간에 공유되지 않는 것입니다. 이는 언급 한 이미지 및 스크립트와 같은 정적 파일에 대한 HTTP 호출 크기를 줄이는 데 도움이됩니다.
예 : 쿠키가 4 개 있습니다 www.stackoverflow.com. 에 요청하면 www.stackoverflow.com/images/logo.png4 개의 쿠키가 모두 전송됩니다.
그러나 stackoverflow.com/images/logo.png(하위 도메인 변경에 대한 통지) 또는를 요청하면 images.stackoverflow.com/logo.png해당 쿠키 4 개가 존재하지 않지만 해당 도메인과 관련된 쿠키는 존재합니다.

쿠키 및 이미지 요청에 대한 자세한 내용은 예를 들어이 StackOverflow 블로그 게시물에서 확인할 수 있습니다.


3 년이 지났습니다

브라우저가 쿠키를 보내지 않는 또 다른 이유가 있습니다. 일부 코드는 쿠키의 전송을 방지하기 위해 오브젝트의 crossOrigin 속성을 익명으로 사용할 수 있습니다.


아니요. 모든 요청이 쿠키를 보내는 것은 아닙니다. 쿠키 구성 및 클라이언트-서버 연결에 따라 다릅니다.

예를 들어 쿠키 secure옵션이로 설정된 true경우 보안 HTTPS 연결을 통해 쿠키를 전송해야합니다. HTTP 프로토콜을 사용하는 웹 사이트를 볼 때 보안 플래그가 true이므로 이러한 쿠키가 브라우저에서 전송되지 않습니다.


나는 이것이 오래된 실이라는 것을 안다. 그러나 마지막 점을 추가하면 대부분의 브라우저가 도메인에 쿠키를 보내지 않는 것으로 나타났습니다. 예를 들어에 http://example.com.설정된 쿠키는받지 않습니다 .example.com. 반면에 Apache는 그것들을 동일한 호스트로 취급합니다. 내가 포함하는 외부 리소스에 대해 교차 도메인 추적을 더 어렵게 만드는 데 유용하지만 성능상의 이유로 사용할 수 있습니다. 이로 인해 https인증서 유효성 검사가 중단됩니다. 브라우저 샷과 내 장치를 사용하여 몇 가지 테스트를 실행했습니다. 이 해킹은 요청에 쿠키를 포함하는 사파리 (모바일 및 데스크톱)를 제외한 거의 모든 브라우저에서 작동합니다.


쿠키에는 "경로"속성이 있습니다. "path = /"인 경우 대답은 예입니다.

참고 URL : https://stackoverflow.com/questions/1336126/does-every-web-request-send-the-browser-cookies

반응형