Network

[Network] HTTP 메서드의 종류

JoonYong 2024. 2. 26. 16:47

 

1. HTTP 메서드의 종류

 

HTTP 메서드란 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식을 일컫는다. 쉽게 말하면 서버에 주어진 리소스에 수행하길 원하는 행동, 서버가 수행해야 할 동작을 지정하는 요청을 보내는 방법이다.

 

HTTP 메서드는 총 9가지가 있으며 주로 GET, POST, PUT, PATCH, DELETE를 사용합니다.

메서드 설명
POST 요청 데이터 처리, 주로 등록에 사용
GET 리소스 조회
PUT(전체) 리소스 전체 변경(덮어쓰기), 해당 리소스가 없으면 생성
PATCH(일부) 리소스 부분 변경 (일부 변경)
 
DELETE 리소스 삭제
OPTIONS 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용)
HEAD GET과 동일하지만 메시지 부분(body 부분)을 제외하고, 상태 줄과 헤더만 반환
TRACE 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행
CONNECT 대상 자원으로 식별되는 서버에 대한 터널을 설정

 


 

메서드 의미 CRUD 멱등성 안전성 Path Variable Query Parameter Data Body
GET 리소스 취득 R O O O O X
POST 리소스 생성, 추가 C X X O O
PUT 리소스 갱신, 생성 C/U O X O O
DELETE 리소스 삭제 D O X O O X
HEAD 헤더 데이터 취득 - O O - - -
OPTIONS 지원하는 메서드 취득 - O O - - -
TRACE 요청메시지 반환 - O O - - -
CONNECT 프록시 동작의 터널 접속으로 변경 - X - - - -

설명

  • CRUD: 각 메서드가 수행하는 CRUD(Operation) 작업
    • C: Create(생성)
    • R: Read(읽기)
    • U: Update(갱신)
    • D: Delete(삭제)
  • 멱등성: 여러 번 수행해도 결과가 동일한지 여부
    • O: 멱등성을 가짐
    • X: 멱등성을 가지지 않음
  • 안정성: 서버의 상태를 변경하지 않는지 여부
    • O: 안전한 메서드
    • X: 안전하지 않은 메서드
  • Path Variable: URL 경로의 일부로 변수를 사용할 수 있는지 여부
    • O: 사용 가능
    • X: 사용 불가능
    • △: 경우에 따라 사용 가능
  • Query Parameter: URL의 쿼리 문자열로 데이터를 전송할 수 있는지 여부
    • O: 사용 가능
    • X: 사용 불가능
    • △: 경우에 따라 사용 가능
  • Data Body: 요청 본문에 데이터를 포함할 수 있는지 여부
    • O: 사용 가능
    • X: 사용 불가능

2. 엔드포인트란?

엔드포인트는 웹 서비스에서 특정 서비스를 사용하기 위한 '접점' 혹은 '주소'입니다. 웹 서비스에 접속하는 사용자가 원하는 기능을 이용할 수 있도록 그에 해당하는 위치를 가리키는 역할을 합니다. 이 위치는 URL 형태로 표현되며, 특정 서비스와 연결되어 있습니다.

 

엔드포인트는 일반적으로 다음과 같은 구조를 가집니다.

https://api.example.com/users

여기서 https://api.example.com/은 기본 URL이며, /users는 엔드포인트입니다. /users 엔드포인트는 사용자 정보에 접근하는 역할을 합니다.


3. RESTful 엔드포인트

RESTful 웹 서비스에서는 엔드포인트를 설계할 때 특별한 규칙을 따르곤 합니다. 리소스를 중심으로 엔드포인트를 설계하며, 특정 리소스에 접근하거나, 리소스를 생성, 수정, 삭제하는 등의 동작이 URL을 통해 명시적으로 드러나도록 합니다.

예를 들어, /users 엔드포인트에서 GET 메서드를 사용하면 모든 사용자 정보를 조회하고, POST 메서드를 사용하면 새로운 사용자를 생성하는 동작을 수행합니다. 또한, /users/{user_id}와 같은 엔드포인트에서는 특정 사용자의 정보를 조회, 수정, 삭제하는 동작을 수행합니다.

엔드포인트는 웹 서비스에서 중요한 역할을 하는 만큼, 깔끔하고 일관성 있는 엔드포인트 설계는 사용자에게 직관적인 서비스 이용을 제공하고, 개발자에게는 효율적인 개발 환경을 제공합니다.

 

https://dev.to/anwar_nairi/design-an-easy-to-use-and-flexible-rest-endpoints-3fia

 

Design an easy to use and flexible REST API

If you have already built an application that uses a REST API, and you have been responsible for the...

dev.to

 

 

 

 

 

[Reference]

https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-HTTP-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%A2%85%EB%A5%98-%ED%86%B5%EC%8B%A0-%EA%B3%BC%EC%A0%95-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC

https://www.freecodecamp.org/korean/news/rest-api-mobeom-sarye-rest-endeupointeu-seolgye-yesi/

https://dev.to/anwar_nairi/design-an-easy-to-use-and-flexible-rest-endpoints-3fia