세션(HTTP Session)
웹 프로토콜 HTTP는 무상태(stateless)이다.
전통적으로 로그인 인증처리를 위해, 웹서버는 프로토콜과 무관하게 세션이라는 것을 제공한다.
이는 웹 어플리케이션에게 필요한 state를 서버에 전달하기 위한 목적으로 session이나 cookie를 이용하는 대체수단정도로 볼 수 있다.
세션이 생기면서 웹서버는 상태 프로토콜(stateful)처럼 동작하고 있다.
XMLHttpRequest 과 CORS
AJAX 통신시 크로스 도메인 이슈가 있으며,
이에 대한 해결책으로 CORS라는 게 있다.
사전요청(preflight)으로 서버에 질의한뒤, 실제 요청을 보내는 형태로 되어있다.
참고: https://developer.mozilla.org/ko/docs/Web/HTTP/Access_control_CORS
withCredentials
CORS를 적용하여도, 세션을 유지하려면 cookie를 보내줘야하는데, 이때 withCredentials옵션을 사용하여 해결할 수있다.
이때 서버 응답 헤더에 Access-Control-Allow-Origin을 *로 지정하는 것은 불가능 하며, Access-Control-Allow-Credentials 도 true로 설정하면, 크로스 도메인간 cookie도 사용할 수 있다.
참고로 이때 브라우져에서 쿠키접근은 불가능하다. XHR이 쿠키값을 들고 있을 것이다.
ref:
https://developer.mozilla.org/ko/docs/Web/HTTP/Access_control_CORS
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials
'dev > web' 카테고리의 다른 글
spring @ModelAttribute and @RequestBody (0) | 2017.08.13 |
---|---|
SpringBoot @RequestBody 그리고 form (0) | 2017.07.09 |
웹 기술 동향 - 개인적인 로그 (0) | 2017.03.02 |
camel case vs snake(underscore) case (0) | 2016.01.23 |
"Data truncated for column 'column_name' at row 1" 고찰 (0) | 2015.09.10 |