Study/Computer Science

[CS] HTTP Method

taecongs 2023. 10. 25. 10:41

알고있으면 좋은 Computer Science Tip✨


HTTP Method란 무엇인가?

  • 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식을 일컫는다. 쉽게 말하면 서버에 주어진 리소스에 수행하길 원하는 행동, 서버가 수행해야 할 동작을 지정하는 요청을 보내는 방법이다.
  • HTTP 메서드의 종류는 총 9가지가 있다. 이 중 주로 쓰이는 메서드는 5가지로 보면 된다.
  • 주요 메서드
    1. GET : 리소스 조회
    2. POST : 요청 데이터 처리, 보통 등록에 사용
    3. PUT : 리소스틀 덮어쓰기, 해당 리소스가 없는 경우에는 생성 (PUT 전체 변경)
    4. PATCH : 리소스 부분 변경 (PATCH 일부 변경)
    5. DELETE : 리소스 삭제
  • 기타 메서드
    1. HEAD : GET과 동일하지만 메시지 부분(body 부분)을 제외하고, 상태 줄과 헤더만 반환
    2. OPTIONS : 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용)
    3. CONNECT : 대상 자원으로 식별되는 서버에 대한 터널을 설정
    4. TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행

 

(1) GET

  • 리소스를 검색하고, 반환받기 위해 사용되는 메서드이다.
  • 데이터는 쿼리스트링를 통해서 전달한다.
  • 쉽게 말해, 원하는 정보를 서버에 요청할 때 쓰인다.

 

(2) POST

  • 요청된 자원을 생성하기 위해 사용되는 메서드이다.
  • 메시지 바디(body)를 통해 서버로 요청 데이터 전달하면 서버는 요청 데이터를 처리하여 업데이트한다.
  • 전달된 데이터로 주로 신규 리소스 등록, 프로세스 처리에 사용한다.

 

(3) PUT

  • 요청된 자원을 수정하기 위해 사용되는 메서드이다.
  • 만일 요청 메세지에 리소스가 있으면 덮어쓰고, 없으면 새로 생성한다.
  • 데이터를 대체해야 하니, 클라이언트가 리소스의 구체적인 전체 경로를 지정해 보내주어야 한다.

 

(4) PATCH

  • 요청된 자원을 수정하기 위해 사용되는 메서드라는 점에서 PUT과 같지만, 해당 자원 전체를 수정하는 PUT과는 다르게 PATCH는 해당 자원의 일부 부분을 수정한다.
  • 만일 PATCH를 지원하지 않는 서버에서는 대신에 POST를 사용할 수 있다.

 

(5) DELETE

  • 요청한 자원을 삭제하기 위해 사용되는 메서드이다.
  • 클라이언트에서 서버의 자원을 삭제할 수 있도록 허가하는 것은 매우 위험하다. 그러므로 현실적으로는 사용될 일이 거의 없고, 대부분의 서버는 이 메서드를 비활성화 시킨다.

 

(6) HEAD

  • 서버의 각종 정보를 확인하기 위해 사용되는 메서드이다.
  • GET과 동일하지만, response에 Body가 없고 response Code와 Head만 응답받는다.
  • 응답의 상태 코드만 확인할때와 같이 Resource를 받지 않고 오직 찾기만 원할때 사용한다. (일종의 검사 용도)
  • 서버의 응답 헤더를 봄으로써 Resource가 수정 되었는지 확인 가능하다.

 

(7) TRACE

  • 루프백 메시지를 호출하기 위해 테스트용으로 사용되는 메서드이다.
  • 서버에 도달 했을 때의 최종 패킷의 요청 패킷 내용을 응답 받을 수 있다.
  • 요청의 최종 수신자는 반드시 송신자에게 200(OK) 응답의 내용(Body)로 수신한 메세지를 반송해야 한다.
  • 최초 Client의 요청에는 Body가 포함될수 없다.

 

(8) OPTION

  • 예비 요청(Preflight)에 사용되는 HTTP 메서드이다.
  • 예비 요청이란 본 요청을 하기 전에 안전한지 미리 검사하는 것이라고 보면 된다.
  • 서버의 지원 가능한 HTTP 메서드와 출처를 응답 받아 CORS 정책Visit Website을 검사하기 위한 요청이다.

'Study > Computer Science' 카테고리의 다른 글

[CS] TDD(Test-Driven-Development)  (0) 2023.10.25
[CS] HTTP & HTTPS  (0) 2023.10.24
[CS] REST API  (0) 2023.10.24
[CS] CORS  (0) 2023.10.23
[CS] 주소창에 URL 입력 시 사용자에게 보여주기까지 과정  (0) 2023.10.23