HTTP Method

송현섭 ·2024년 1월 8일
0

개별공부

목록 보기
28/44

HTTP 메서드


GET

  • 자원(resource)을 조회 (데이터를 가져올 때만 주로 사용)

  • Server 에 전달할 데이터를 query(쿼리 파라미터 등)를 통해 전달


+a) GET 예시

GET /search?q=test1&hl=test2 HTTP/1.1
  • 위와 같이 /search 라는 resource 경로 뒤에 q, hl 같이 key에 value 형태로 데이터를 전송하는 데 이 때 q=test1&hl=test2 해당 문자열이 쿼리 파라미터

  • Server 에서는 해당 resource 뒤에 붙은 각 데이터의 key를 통해 value를 꺼내볼 수 있음

  • 이런 쿼리 파라미터 방식은 URI에 정보가 모두 노출되어 보안에 취약함, 그래서 보통 파라미터 방식에서는 보안에 민감하지 않은 내용을 담음



POST

  • Server로 데이터를 전송 (새로운 resource 생성(등록) 시 사용)
    ex1) 회원가입을 통해 새로운 사용자 추가
    ex2) 게시판 시스템에 글 올리기

  • 사실 데이터 등록(생성) 뿐만 아니라 데이터 처리 관련 모든 프로세스를 POST로 가능

  • 따라서 새로운 데이터 등록, 요청 데이터 처리 또는 다른 메서드로 처리하기 어려운 경우 POST 사용 가능



POST 예시

POST /members HTTP/1.1
{
 "username": "hello",
 "age": 20
}
  • POST는 Server에 전달할 데이터를 body에 담아서 보냄



PUT

  • 요청된 데이터를 이용해 새로운 resource 생성 또는 해당 resource의 데이터를 요청된 데이터로 완전히 대체 (덮어쓰기)

  • 클라이언트가 요청 시 대체할 데이터에 대한 resource를 알고 있고, 이를 URL로 지정
    덮어쓰기할 특정 데이터의 위치를 알고 있음!


PUT 예시

PUT /members/100 HTTP/1.1
{
 "username": "hello",
 "age": 20
}
  • PUT을 통해 members의 100번째 데이터를 body에 담아보낸 데이터로 완전히 대체함 (덮어쓰기)



PATCH

  • resource를 부분적으로 변경

  • PUT 방식과 달리 요청받은 데이터만 부분적으로 변경


PATCH 예시

PATCH /members/100 HTTP/1.1
{
 "age": 50 
}
  • 해당 경로에 위치한 데이터 전체에서 body에 담아 보낸 'age' : 50 부분만 요청대로 변경함



DELETE

  • resource 삭제


DELETE 예시

DELETE /members/100 HTTP/1.1







그 밖의 HTTP 메서드들


HEAD

  • GET 메서드와 동일하나 상태줄과 Header만 응답으로 반환받음


CONNECT

  • 요청한 리소스에 대해 양방향 연결을 시작하는 메서드, 터널을 열기 위해 사용


OPTIONS

  • 목표 리소스와의 통신 옵션을 설명하기 위해 사용 (주로 CORS에서 사용)


TRACE

  • 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행






중요 POINT! - HTTP 메서드 자체에는 기능이 없다!


메서드 사용 전

유저 조회 : /read-member-by-id
유저 등록 : /create-member
유저 수정 : /update-member
회원 삭제 : /delete-member


메서드 사용 후

회원 조회 : /members/{id} - GET
회원 등록 : /members/{id} - POST
회원 수정 : /members/{id} - PATCH & PUT
회원 삭제 : /members/{id} - DELETE





  • PUT 으로 요청이 들어왔다고 해서 데이터가 등록되지 않고, DELETE 요청이 들어왔다고 해서 데이터가 삭제되지 않음
    각 요청관련 로직은 서버측 개발자가 직접 구현해야 함

  • 결과적으로 굳이 HTTP method 별로 요청을 구별하는 이유는 유지보수성을 위해서임

  • resource(자원) 과 Method(행위) 를 분리는 곧 유지보수에 유리하며 가독성이 높아짐

profile
막 발걸음을 뗀 신입

0개의 댓글