-
@CrossOrigin
- 웹 생태계에서 다른 출처로의 리소스 요청을 제한하는 것과 관련된 두 가지 정책
1) CORS : 다른 출처 리소스를 공유
( 브라우저의 구현 스펙에 포함되어 있는 정책, 서버 간 통신을 할 때는 정책이 적용되지 않는다 )
> 해결책 : 서버 어플리케이션의 응답 헤더에 Access-Control-Allow-Origin 세팅하기
2) SOP : 같은 출처에서만 리소스를 공유할 수 있다
> SOP에서 정의된 예외 조항과 CORS를 사용할 수 있는 케이스들이 맞물리지 않을 경우 리소스 요청을 할 수 없는 경우도 있다
( 출처: protocol+host+port number )
CORS(Cross-Origin Resource Sharing)
- 웹 페이지의 제한된 자원을 외부 도메인에서의 접근을 허용해 주는 메커니즘
- 서로 다른 도메인에서 리소스를 공유하는 방식
- 기존의 Same-Origin-Policy와 반대되는 개념
- 처음 전송되는 리소스의 도메인과 다른 도메인으로부터 리소스가 요청될 경우 해당 리소스는 cross-origin HTTP 요청
- 보통 api 사용할 때, ajax를 사용하는데 same-origin policy를 따르지 않는 경우 오류가 나면서 api 사용이 거절.
- 해결 방법
1) JSONP(Json with Padding) : js, css 등 파일은 sop 정책을 따르지 않아도 되기 때문에 서버에서 값을 돌려줄 때 마치 js 파일처럼 값을 돌려주고 클라이언트에서는 이 값을 콜백 함수로 재처리하여 사용
2) 서버에서 CORS 설정, @CrossOrigin(모든 도메인, 모든 요청방식에 대해 허용한다)
(참고)
https://velog.io/@modsiw/Spring-CrossOrigin-Annotation-%EC%A0%95%EB%A6%AC
728x90'프로젝트' 카테고리의 다른 글
[Java / Spring] @Valid & @Validated (0) 2024.09.01 [스프링부트/intellij/maven] JPA Querydsl 추가 (0) 2024.02.14 schema란? (0) 2023.05.04 open API 명세서를 반환하는 API 작성 (0) 2023.05.03 API, 플러그인, 메이븐 프로젝트 (0) 2023.05.02