본문 바로가기
🗂 Study/네트워크

HTTP 메서드와 역할

by 뿌맘 2021. 7. 9.
반응형

HTTP Method

HTTP Method란 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식입니다.

쉽게 말하면 서버에 요청을 보내는 방법입니다.

 

주요 메서드 종류

1. GET 

리소스(데이터) 취득 (Read)

  • URL 형식으로 웹서버 측에 리소스를 요청합니다.
  • GET을 사용하는 요청은 오직 데이터를 받기만 합니다. 
    즉, 상세 페이지 로드 등 서버에서 어떤 데이터를 가져와서 보여주기 위한 용도의 메서드입니다.

 

2. HEAD

메세지 헤더(문서 정보) 취득

  • GET과 비슷하지만, 실제 문서를 요청하는 것이 아니라 문서의 정보를 요청합니다.

 

3. POST

내용 전송 (Create) 

  • 클라이언트에서 서버에 데이터를 추가·작성하고, 요청 데이터를 HTTP  BODY에 담아 웹서버로 전송합니다.
  • 입력, 생성 등 행동하는 행위에 사용됩니다.
  • 새로 작성한 리소스인 경우, 서버는 HTTP 헤더의 'Location:'에 URI 주소를 포함시켜 응답합니다.

 

4. PUT

내용 갱신 위주 (Update)

  • POST와 비슷한 방식이지만, PUT은 서버의 데이터를 갱신·작성합니다.
  • 리소스가 갱신되어도, 서버는 HTTP 헤더의 'Location:'을 보내지 않아도 됩니다.
POST와 PUT의 차이점
POST와 PUT 모두 클라이언트 측에서 서버 측에게 리소스를 전송하는 방식입니다.
POST는 보통 INSERT의 개념으로 사용되고, PUT은 UPDATE의 개념으로 사용됩니다.
또한 POST는 멱등하지 않고 PUT은 멱등합니다.

* 멱등성(Idempotent) : 해당 메서드로 동일한 요청을 여러 번 호출해도, 한 번 요청한 효과가 동일한 것.
(PUT, DELETE, TRACE, GET, HEAD, OPTIONS가 멱등성을 갖는다)

 

5. PATCH

  • PUT과 유사하게 클라이언트 측에서 요청한 리소스를 갱신할 때 사용합니다.
  • PUT은 리소스 전체를 갱신하지만, PATCH는 리소스의 일부를 교체합니다.
PUT과 PATCH의 차이점
두 가지 모두 클라이언트 측에서 요청한 리소스를 갱신할 때 사용하지만,
PUT은 해당 리소스의 전체를 교체하는 방식이고, PATCH는 해당 리소스의 일부를 변경하는 방식입니다.
PUT은 전체 내용을 업데이트하기 때문에 동일한 리소스에 대해 동일하게 PUT을 처리하는 경우 멱등하게 처리되지만,
PATCH는 내용의 일부가 변경되기 때문에 멱등성을 보장할 수 없습니다.

 

6. DELETE

파일 삭제 (Delete)

  • 클라이언트 측에서 웹 리소스를 삭제할 것을 요청하는 메서드입니다.
  • 안전성 문제로 대부분의 서버에서 비활성화되어있습니다.
  • Delete는 Body가 없어 한 개의 데이터만 삭제할 수 있습니다. (여러 개 삭제 시 PUT 또는 PATCH 사용)
  • Body 대신 path 파라미터로 데이터를 전달합니다.

 

7. CONNECT (거의 사용 안 함)

  • 동적으로 터널 모드를 교환하기 위해 사용하는 메서드입니다.
  • 프록시 기능을 요청할 때 사용됩니다.

 

8. TRACE (거의 사용 안 함)

  • 원격지 서버에 루프 백 메세지를 호출하기 위해 테스트 용으로 사용하는 메서드입니다.
  • 클라이언트가 방금 보낸 요청을 다시 달라고 서버에게 요청하는 것입니다.

 

9. OPTION

웹서버 측 제공 메서드에 대한 질의

  • 서버에서 해당 리소스에 대해 지원되는 메서드의 종류를 확인합니다.

 

 

참고

반응형

'🗂 Study > 네트워크' 카테고리의 다른 글

REST, RESTful이 무엇일까?🤔  (0) 2021.07.23
쿠키🍪 와 세션  (0) 2021.07.09
GET 방식과 POST 방식  (0) 2021.07.08
HTTP와 HTTPS의 차이점 + SSL Handshake  (0) 2021.06.30
TCP 3, 4 way handshake  (0) 2021.06.30

댓글