CORS, Proxy 설정

Siwoo Pak·2021년 5월 23일
1

Node.js

목록 보기
3/5

CORS

  • 'Cross Origin Resouces Sharing' 의 약자.
  • 서로 다른 포트를 가진 서버에선 아무 설정없이 request를 보낼 수 없다.(2010년이었나 그때 웹페이지 만들 때는 안 나왔던 걸로 기억!)
  • 악의를 가진 사람 등이 서버에 막 보낼 수도 있으니 보안상의 문제로 막아버림.
  • CORS문제 해결없이 구동시

해결방안

proxy를 사용하는 방법으로 CORS문제 해결

const { createProxyMiddleware } = require("http-proxy-middleware");
module.exports = function (app) {
  app.use(
    "/api",
    createProxyMiddleware({
      target: "http://localhost:5000",
      changeOrigin: true,
    })
  );
};
  • client/src/components/views/LandingPage/LandingPage.js 내용 수정
import React, { useEffect} from 'react'
import axios from 'axios';
function LandingPage() {
    useEffect(() => {
        axios.get('/api/hello')
      //위의 부분은 axios.get('http://localhost:5000/api/hello') 였음.
        .then(Response => console.log(Response.data))
}, [])
    return (
        <div>
            LandingPage
        </div>
    )
}
export default LandingPage
  • 결과

  • 서버에서 보내온 데이터를 콘솔에서 제대로 출력하는 걸 볼 수 있다.

Proxy Server

  • 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다 by 위키백과
  • IP를 Proxy server에서 임의로 바꿀 수 있기에 인터넷에선 접근하는 사람의 IP를 모르게 됨.
  • 보내는 데이터도 임의로 변경 가능
  • 방화벽 기능
  • 웹필터 기능
  • 캐쉬데이터, 공유 데이터 제공기능. 이러한 데이터를 Proxy Server에 올려둬서 인터넷까지 가지 않아도 처리가능하기에 좀 더 빨리 유저가 데이터를 받아 볼 수 있게 한다.

사용 이유:

  • 회사에서나 집에서 인터넷 사용 제어
  • 캐쉬를 이용해 더 빠른 인터넷 이용 가능
  • 더 나은 보안
  • 이용제한된 사이트 이용 가능
profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글