[HTTP] CORS

이동명·2021년 6월 17일
0

3세대 웹은 프론트엔드와 백엔드가 분리되어있다는 특징이 있다.

이에 따라, 데이터를 요청/수정하기 위해서는 동일 도메인이여야 한다는 브라우저의 SOP(Same-Origin Policy, 동일 출처 정책) 에 예외를 두어야 하는데, 이때 사용하는 것이 CORS(Cross-Origin Resource Sharing, 교차 출처 리소스 공유) 이다.

CORS를 통해 서버 데이터에 접근이 가능한 도메인 및 메소드를 설정할 수 있다.

Django 프레임워크에서는 django-cors-headers 패키지를 사용하여 CORS를 활성화 한다.

django-cors-headers 패키지 설치 후,
django 프로젝트안 settings.py 파일 안에 아래 내용을 수정하여 CORS를 활성화 합니다.

# settings.py
INSTALLED_APPS = [
    ...
    'corsheaders',
    ...
]
# settings.py
MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware',
    ...
  • 허용할 도메인 세팅
# settings.py
CORS_ALLOWED_ORIGINS = [
    "https://example.com",
    "https://sub.example.com",
    "http://localhost:8080",
    "http://127.0.0.1:9000"
]
  • 허용할 메소드 세팅
CORS_ALLOW_METHODS = [
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
]
  • 허용할 headers 세팅
CORS_ALLOW_HEADERS = [
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
]

0개의 댓글