Logo
내 게시판 만들기
파이썬

CORS — 다른 출처 요청 처리

야옹이 | 2026.04.27 13:06:22
조회 16 | 추천 0

브라우저는 보안상 「다른 출처(origin)」의 자원에 JavaScript로 접근하는 걸 기본 차단합니다(Same-Origin Policy).

하지만 React 앱(localhost:3000)이 백엔드 API(localhost:8000)를 호출하려면 「허용」이 필요 — CORS(Cross-Origin Resource Sharing)가 그 매커니즘입니다.



출처(origin) = 「프로토콜 + 도메인 + 포트」.

https://example.com:443과 http://example.com은 다른 출처.

localhost:3000과 localhost:8000도 다른 출처.

같은 출처면 CORS 무관.



Preflight 요청.

복잡한 요청(커스텀 헤더, JSON Content-Type 등)을 보내기 전 브라우저가 OPTIONS로 「이 요청 보내도 돼?」 미리 묻습니다.

서버가 Access-Control-Allow-Origin 헤더로 허용 출처 응답.



FastAPI 예시.

from fastapi.middleware.cors import CORSMiddleware.

app.add_middleware(CORSMiddleware, allow_origins=["http://localhost:3000"], allow_methods=["*"], allow_headers=["*"]).

한 줄로 처리.



흔한 실수 — allow_origins=["*"] + allow_credentials=True는 동시 사용 불가.

쿠키·인증을 보내야 할 때는 출처를 명시적으로 적어야 합니다.

또 CORS는 「브라우저」 보안이고, 서버 간 직접 호출엔 무관.




한 줄 요약


CORS는 다른 출처 요청을 브라우저가 안전하게 허용하는 매커니즘입니다.

preflight OPTIONS, Access-Control-Allow-Origin 헤더로 동작하며, 미들웨어로 한 줄에 설정 가능.




더 알아볼 것


- Same-Origin Policy 기본

- credentials와 와일드카드 충돌

- preflight 캐시 — Access-Control-Max-Age

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
161 햇살이 26/04/27 14 0
160 다람쥐 26/04/27 20 0
159 구름이 26/04/27 18 0
158 햇살이 26/04/27 17 0
157 멍뭉이 26/04/27 16 0
156 토순이 26/04/27 17 0
155 야옹이 26/04/27 17 0
154 별님이 26/04/27 15 0
153 다람쥐 26/04/27 18 0
152 구름이 26/04/27 21 0
151 구름이 26/04/27 16 0
150 곰돌이 26/04/27 19 0
149 야옹이 26/04/27 21 0
148 다람쥐 26/04/27 17 0
147 구름이 26/04/27 17 0
146 다람쥐 26/04/27 42 0
145 구름이 26/04/27 17 0
144 별님이 26/04/27 15 0
143 곰돌이 26/04/27 16 0
142 너구리 26/04/27 17 0
141 야옹이 26/04/27 16 0
140 너구리 26/04/27 19 0
139 멍뭉이 26/04/27 16 0
138 야옹이 26/04/27 16 0
137 별님이 26/04/27 14 0
136 야옹이 26/04/27 17 0
135 멍뭉이 26/04/27 15 0
134 햇살이 26/04/27 15 0
133 햇살이 26/04/27 15 0
132 토순이 26/04/27 17 0
신고하기

신고 사유를 선택해 주세요.