2022이전/node.js
CROS
바로퇴장
2020. 1. 21. 16:16
app.js
...
//CORS
const cors = require('cors');
let corsOptions = {
origin: 'http://localhost:3000',
optionsSuccessStatus:200
}
...
app.use(cors(corsOptions));
...
CORS란?
Cross Origin Resource Sharing 의 줄임말로 cross-site http Request를 가능하게 하는 표준 규약이다. 짧게 설명하자면 API 호출하고자 하는 서버의 도메인이 Client의 서버 도메인과 다를 경우에 CORS를 이용하여 가능하게 설정해주는 것을 말합니다.
Prefilight Request
브라우저는 실제 요청을 전송하기 전에 options메소드를 이용해서 preflight 요청을 서버로 전송한다. Preflight 요청을 받은 서버는 CORS 관련 정보를 헤더에 담아서 아래와 같은 응답을 클라이언트로 전송한다.
Request Header
- Access-Control-Request-Method 실제 요청 때 사용할 메소드
- Access-Control-Request-Headers: 브라우저가 실제 요청을 보낼 때 헤더에 추가할 커스텀 속성
Response Header
- Access-Control-Allow-Origin : 허용하는 Origin
- Access-Control-Request-Methods : 허용하는 요청 메소드
- Access-Control-Allow-Headers : 허용하는 헤더 속성
- Access-Control-Max-Age: preflight request 캐시하는 시간(초 단위)
With Credential
HTTP Cookie와 HTTP Authentication 정보를 인식할 수 있게 해주는 요청