학습용 공간

JAVA Spring 2020.08.31 댓글 개 starmk95

Spring Annotation) @CrossOrigin

# @CrossOrigin

@CrossOriginCORS 설정을 위한 어노테이션이다.

메소드, 클래스위에 작성된다.

 

# CORS란?

Cross-Origin Resource Sharing의 약자이다.

원래 Same-Origin Policy라는 동일한 도메인으로만 HTTP 요청을 받을 수 있다는 규칙이 있었다.

그러나 이 규칙 때문에 다른 도메인의 API를 활용하는데 문제가 생기고, 한 서버에서 여러 도메인을 처리하는 경우에도 문제가 발생하게 된다.

때문에 이를 극복하기 위한 방법으로JSONP(JSON with Padding)이라는 다른 도메인에서 우회를 통해 서버로 접근하는 방법이 생겨난다. 하지만 이러한 방법은 보안상에 문제가 될 수 있기 때문에 계속 사용되도록 방치할 수 없었다고 한다.

그렇다고 아예 막아버리기엔 수요가 많았기 때문에 합법적(?)으로 다른 도메인에서도 서버에 접근할 수 있도록 해준 방법이 바로 CORS이다.

즉, CORS는 웹 페이지의 제한된 리소스를 외부 도메인 에서도 접근할 수 있게 허용해주는 메커니즘이다.

 

위의 CORS를 실현하기 위해 Spring에서 사용되는 어노테이션이 바로 @CrossOrigin이다.