HTTP Method

TopOfTheHead·2025년 10월 25일

컴퓨터네트워크

목록 보기
8/21

Http Method
HTTP ClientHTTP Server에게 특정작업을 수행할 것을 명령하는 Method.
GET을 제외한 나머지 HTTP MethodDB에 직접적으로 영향을 주므로 CSRF Protection에 의한 제한이 존재.

GET / POST / PUT / DELETE / HEAD / OPTIONS / PATCH / CONNECT가 존재

멱등성 ( Idempotence )
。여러번 수행해도 결과가 동일함을 의미
서버호출을 수행하더라도 데이터가 변형되지않음을 의미


멱등성을 보장하는 HTTP Method

  • GET :
    GET Request에 따른 사이드 이펙트가 없어 서버 자원에는 변화가 없으므로.

  • PUT :
    。해당 URI전체 자원을 동일한 내용으로 Update하므로 여러번 실행해도 결과는 동일

  • DELETE :
    。해당 URI의 첫 호출자원이 삭제되고, 이후 호출삭제된 상태를 반복하므로 결과 동일


    멱등성을 보장하지않는 HTTP Method

  • POST :
    서버 자원을 추가하거나 수정하여 서버 상태를 수정하므로 같은 요청이 전송 시 항상 동일한 결과물의 도출을 보장하지 않음

  • PATCH :
    。해당 URI자원을 부분수정하므로 동일 요청을 여러번 전송 시 누적변경이 발생할 수 있음.

주요 CRUD 메서드
POST , GET , PUT, PATCH, DELETE

HTTP 1.0 : GET , POST
HTTP 1.1 : PUT , PATCH , DELETE

  • POST / PUT / PATCH :
    HTTP Message BodyForm data( JSON 등 )을 적재하여 Server에 전달
    URIquerystring을 사용하는 GET 보다 정보를 많이, 안전하게 숨겨서 전송이 가능

    。해당 HTTP Method들의 기능이 특정 용도에 제한되어있지 않으므로 POST만을 이용해 read , update , delete가 모두 수행가능하지만 해당 Http Request의 의도를 쉽게 파악하기 위해 목적에 따라 명시적으로 구분해서 사용.
    서버 자원 삭제POST /users/1/delete가 아닌 DELETE /users/1로 표기.

POST : Create

POST /user
body : { 키1 : 값1 , ... }
Content-Type : "application/json"

서버Resource를 추가 및 작성 시 활용하는 Method
( ex: 새로운 게시물을 생성 시 )

HTTP Request BodyForm Data( XML, JSON 등 )을 추가하여 URI에 해당하는 Server API를 통해 추가
POST가 성공적으로 수행되어 자원이 생성된 경우 Http Status Code : 201를 응답

멱등성보장하지 않는다.

GET : Read

GET /user/1/?name=wjdtn
데이터 조회가 목적이므로 Request BodyContent-Type이 비워져있음

서버에서 Resource읽거나 검색 시 활용하는 Method
( ex: 사용자가 게시물의 상세 정보를 얻을 때 )

HTTP Request Body를 사용할 수 없으나 URIquery string을 통해 적은양의 inputServer에 전달가능
▶ 방대한 양의 input을 전송 시 또는 민감정보를 전송 시 POST를 통해 HTTP Message Body를 이용하여 전송

GET이 성공적으로 수행 시 HTTP Response Body에 요청한 데이터를 포함한 JSON과 함께 HTTP Status code : 200을 반환
▶ 실패한 경우 HTTP Status code : 400 , 404를 반환

멱등성 보장

HTTP에서 지원하는 웹 캐시를 통해 캐싱을 지원
▶ 동일 데이터를 다시 GET Request서버가 아닌 프록시 서버에서 응답하여 조회속도가 빨라짐
Web Cache

PUT / PATCH : Update
서버자원Update시 활용하는 Method
▶ 주로 수정시에는 PUT을 사용
( ex: 사용자, 게시물 수정 시 )

  • PUT :
PUT /user/1
body : { 키1 : 값1 , ... }
Content-Type : "application/json"

서버 자원을 일괄적으로 전체 수정시 사용하는 Http Method
서버자원수정을 시도 시 자원이 없는 경우 자원을 추가

멱등성 보장

  • PATCH :
    서버 자원일부분만 부분 수정시 사용하는 Http Method

    。수정하는 사항이 많아지는 만큼 URI 상 수정사항의 Endpoint가 많아지므로 PATCH보다는 일괄적으로 수정하는 PUT을 많이 사용

    멱등성보장하지 않는다.

Delete : Delete

DELETE /user/1
데이터 삭제가 목적이므로 Request BodyContent-Type이 비워져있음

서버 자원을 삭제하도록 명령하는 Method
멱등성 보장

OPTIONS
Server의 특정 자원에서 접근이 허용되는 HTTP Method를 물어보는 용도의 메서드
▶ 실제 Http RequestPreflight Request에 포함되어 해당 resource URL에서 사용할 수 있는 HTTP Method가 무엇인지 묻는 용도로 활용

HEAD
서버 자원헤더( 메타데이터 )를 획득하는 메서드

CONNECT
프록시 동작의 터널접속을 변경

profile
공부기록 블로그

0개의 댓글