본문 바로가기
HTTP

[6] HTTP 메서드 - GET,POST,PUT

by onejunu 2021. 3. 29.

- GET

출처 : developer.mozilla.org/en-US/docs/Web/HTTP/Methods/GET

 

GET - HTTP | MDN

GET The HTTP GET method requests a representation of the specified resource. Requests using GET should only be used to request data (they shouldn't include data). Note: Sending body/payload in a GET request may cause some existing implementations to reject

developer.mozilla.org

 

1) get 메서드는 리소스 조회를 위한 용도로 사용된다.

2) 쿼리파라미터를 통해서 조회가능하다. ( 예를 들어, GET /search?q=hello 는 /search 경로에 "q" 를 key로 하고 "hello"를 value로 가지는 파라미터로 전송가능)

3) 메세지 바디에 데이터는 없다. ( 위 사진의 Note에 적혀있지만 메세지 바디(페이로드)를 포함시키는 것이 가능하지만 권장하지 않는다.)

4) 성공적으로 온 응답은 바디를 포함한다.

5) "안전"하다. (리소스를 변경하지 않는다)

6) "멱등"이다. (여러번 실행해도 리소스와 결과에 영향을 주지 않는다)

7) "캐시가능"하다.

8) HTML Form에서 사용가능하다. ( HTML form은 get과 post 만 사용가능하다)

 

 

- POST

1) 메세지 바디를 통해 서버로 요청 데이터 전달

2) "안전"하지 않음. ( "안전하다"의 의미는 호출하였을 때 리소스를 변경하지 않음을 의미한다. )

3) "멱등" 이지 않음. 

4) 캐시가능하지만 거의 안씀.

5) HTML Form을 통해 요청 가능.

 

POST 기능은 만능이지만 주로 다음과 같은 기능으로 사용한다.

1) HTML form을 통한 정보로 새로운 리소스를 추가

2) 리소스 변경

3) control uri - 리소스의 변경 및 추가없이 프로세스를 진행시킨다. ( ex. /orders/start-delivery  동사형 uri )

4) JSON 으로 조회시 바디에 메세지를 포함하는 경우 GET보다는 POST사용

 

 

 

- PUT

 

1) POST와 가장 큰 차이는 멱등이다. PUT의 핵심은 기존 리소스를 완전히 대체한다. 따라서 여러번 실행해도 결과와 리소스는 항상 같음을 보장한다.

 

2) PUT은 서버의 어떤 자원을 대체하거나 생성하는 메서드인데 이 말은 서버의 어떤 자원이 있는지 클라이언트에서 식별하고 있다는 것이다. 따라서 클라이언트에서 서버의 자원을 제어한다.

 

3) 보통 리소스를 수정하는데 많이 사용한다.  부분 수정은 PATCH 메소드를 사용하라고 하는데 많이 사용하는 지는 모르겠다.

 

 

 

 

'HTTP' 카테고리의 다른 글

[8] HTTP Redirection (3xx)  (0) 2021.03.29
[7] 클라이언트에서 서버로 HTTP 데이터 전송 4가지  (0) 2021.03.29
[5] HTTP 구조  (0) 2021.03.20
[4] HTTP 의 주요 특징  (0) 2021.03.20
[3] URL vs URI 차이점  (0) 2021.03.14

댓글