웹 관련 단어 설명

웹 관련 단어 설명

CORS (Cross Origin Resource Sharing)

우리 HTML을 구성했을때 항상 우리서버의 데이터만 쓰는건 아니다 도메인 A로 부터 전송되는 HTML페이지가 <img> src속성을 통해 B도메인의 이미지를 요청하는 경우. 그런 경우를 cross-origin HTTP요청 이라고 함. 우리쪽으로 HTML로 HTTP 요청이 왔을때 HTML 문서안에서 또 다른곳으로 요청하니까 실제로는 두번 요청을 하는것.

보안상의 이유로, 브라우저들은 스크립트 내에서 초기화되는 cross-origin HTTP 요청을 제한한다. 브라우저에서 스크립트란 javascript를 말한다. CORS메커니즘을 사용하여 해당 서버에서 도메인에 대항 접근 제어권을 부여함. 서버에서 주는 데이터에 설정된 CORS를 보고 브라우저가 접근을 허용한다.

Django는 request -> middleware -> view(controller) -> middleware -> response 로 작동하는데 이 middleware에서 Access-Control-Allow_Origin 헤더에 정보를 담아야 한다. 장고 프레임워크를 사용하여 할 수 있다.

django-cors-headers

settings.py

INSTALLED_APPS = (
    ...
    'corsheaders',
    ...
)
MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...
]
CORS_ORIGIN_WHITELIST = (
    # 접근을 허용할 URL
    'localhost:8000',
)

Comments