Post

TIL(20240722) [Http메서드와 CORS]


  1. HTTP 메서드에 대해 설명해주세요.
    • http메서드는 서버 구조에서 요청,응답이 이루어지는 방식을 의미하며 http메서드를 사용하는 이유는 리소스와 동작을 분리하여 http메서드를 통해 서버가 수행해야 할 동작을 지정하면, url은 리소스만 식별하면 되기 때문입니다. http 메서드의 종류 중 주요 메서드들을 먼저 알아보자면
    • GET메서드는 리소스를 조회하는 메서드이며, 해당 메서드는 멱등성이라는 개념을 지니고 있어, 여러번 조회 요청을 하여도 리소스는 변하지 않습니다. (멱등성O)
    • POST메서드는 새로운 리소스를 생성하는데 사용합니다. 성공적으로 완료되면 201 http응답을 반환합니다. (멱등성X)
    • PUT메서드는 부분수정이 아닌 리소스를 완전히 대체하는 개념(덮어쓰기)으로 클라이언트가 구체적인 리소스 위치를 아는 상태에서 URL를 지정합니다.(멱등성O)
    • PATCH 메서드는 PUT과 같이 리소스를 수정하는 역할을 하지만 리소스를 부분 변경한다는 점에서 차이점이 있습니다. (멱등성X)
    • DELETE 메서드는 리소스를 제거하는 역할을 합니다.
    • HEAD는 Get요청과 거의 유사하지만 실제 본문 내용없이 HTTP 헤더 정보만을 반환합니다. 그래서 response에 Body가 없으며 리소스를 가져오지 않고도 그에 대한 정보를 얻을 수 있어 효율적입니다.
    • Options는 리소스가 지원하는 메소드의 종류를 확인하는데 사용되며, options요청은 “allow”라는 헤더와 함께 해당 리소스에서 사용 가능한 HTTP메서드 목록을 반환합니다. (CORS정책을 확인하는데 사용함)
    • TRACE는 주로 진단목적으로 사용되며 Trace요청은 클라이언트에서 서버로 전송되며, 이 과정에서 어떤 변경이나 추가가 이루어지는지를 확인하는 데 사용할 수 있습니다.
    • CONNECT는 네트워크 터널을 만드는데 사용됩니다. 가장 흔한 예는 HTTPS통신을 위한 SSL터널입니다. 클라이언트가 CONNECT 메서드를 사용하면 웹서버는 목적지 서버와의 네트워크 연결을 설정하고 클라이언트와 목적지 서버 사이에서 데이터를 릴레이하게 됩니다.
  2. CORS(Cross Origin Resource Sharing)에 대해 설명해주세요.
    • 웹 브라우저는 보안상의 이유로 동일 출처 정책을 따르는데, 이 정책은 웹 페이지가 다른 출처의 리소스에 접근하는 것을 제한합니다. CORS는 이러한 제한을 완화하여, 서버가 명시적으로 허용한 다른 출처의 리소스에 접근할 수 있게 합니다.
    • CORS는 “교차 출처 리소스 공유”를 의미하며 출처를 구성하는 세 요소 프로토콜,도메인(호스트이름),포트로 이중 하나라도 다르면 CORS에러가 발생하게 됩니다. 교차 출처 공유는 ‘출처가 교차한다.’ 라고 해석되며 즉, 리소스를 주고받으려는 두 ‘출처가 다르다’를 뜻하는데 CORS를 설정한다는 것은 ‘출처가 다른 서버간의 리소스를 공유’하는 것을 허용한다라는 의미가 됩니다. CORS와는 상반되는 개념의 정책으로 SOP는 “같은 출처에서만 리소스를 공유할 수 있다” 라는 의미를 가지고 있습니다.
    • CORS 관련 이슈는 모두 CORS 정책을 위반했기 때문에 발생하게 되는데, 사실 CORS라는 방어막이 존재하기 때문에 우리가 이 곳 저 곳에서 가져오는 리소스가 안전하다는 최소한의 보장을 받을 수 있기 때문에 CORS가 필요한 이유라고 생각합니다.
1
** SOP는처음 등장한 보안 정책으로 말 그대로 “같은 출처에서만 리소스를 공유할 수 있다”라는 규칙을 가진 정책
This post is licensed under CC BY 4.0 by the author.