웹 관련 단어 설명
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