본문 바로가기
IT || 개발공부/Spring

[Spring] HTTP method에 대하여

by saesong 2023. 11. 6.

🔶 HTTP method의 개념, 종류 알아보기

 

🔹HTTP method란?

=> 클라이언트와 서버 간에 이루어지는 요청(Request)과 응답(Response)을 전송하는 방법.

 

HTTP method에 대해 알아보기 전, 좀 더 심화하여 웹브라우저에서 서버에게 리소스 요청하는 방법부터 알아보겠다.

 

 

그림 출처: https://ijbgo.tistory.com/20

 

🔹 웹브라우저에서 서버에게 자원(Resouce)를 요청하는 방법
       (Resource : URL을 검색해서 받아온 결과물이며, TEXT, HTML, JSON, XML, Image, 음성, 영상, 파일, 서버로부터 전달받은 데이터 등...이 그 예이다)

ex) 구글에 '배민'을 검색했을 때..
1. 웹브라우저는 구글 서버 주소를 찾아 HTTP 요청메세지를 패킷안에 담아 구글서버에 전달한다.

2. 구글서버는 전달받은 메세지를 분석하여 HTTP 응답메세지를 패킷에 담아 웹 브라우저에 전달한다.

3. 웹 브라우저는 전달받은 데이터로 화면을 사용자에게 보여준다.

 

그렇다면 웹브라우저와 구글서버가 주고받던 HTTP 메시지의 구조를 살펴보자.

출처: 우아한테크

 

요청메세지는 서버에게 보낼 데이터의 유무에 따라 메시지 바디의 포함여부를 결정한다.

 

출처: 우아한테크

위의 그림에서 알 수 있듯 요청메시지와 응답메시지의 스타트라인의 구성요소는 다르다.

요청메세지 스타트라인 응답메세지 스타트라인
HTTP method / 쿼리 / HTTP version HTTP version / 상태코드 / 상태를 나타내는 문구

 

header 부분은 HTTP 전송에 필요한 모든 부가정보를 담고있다.

(Host, Content-type, Content-Length, Date, Location 등...)

 

이제 본론으로 돌아와, HTTP의 주요메서드에 대해 알아보자.

HTTP 주요 메서드
GET - 요청받은 URI의 정보를 검색하여 응답 (READ , 주로 리소스 조회할 때 사용)
POST - 요청된 데이터를 등록(생성, CREATE)할 때 사용
- 새로 작성된 리소스인 경우 URI 주소를 포함하여 응답
PUT - 요청된 자원을 수정(UPDATE) 할 때 사용
- 내용을 갱신하는 역할
- 클라이언트 측은 요청된 URI를 그대로 사용하는 것으로 간주
- 리소스를 완전히 대체한다. ➡️ POST와의 차이점!
  (ex: 기존에 어떤 글에 A,B,C라는 내용이 있을 때, C를 지우고 A,B 내용만 써서 다시 수정한다면
          C라는 내용이 없는 글로 기존 글을 대체한다는 의미와 같다.)
PATCH - 요청된 자원을 일부만 수정 (PUT과 비슷)
- PUT은 자원 전체를 갱신하지만, PATCH는 해당 자원의 일부만 교체하는 의미로 사용한다.
DELETE - 요청된 자원 삭제
- 하지만 안전성 문제로 대부분 서버에서 DELETE 메서드를 비활성한다.
HEAD - GET방식과 동일하지만, 응답에 BODY가 없고 응답코드와 HEAD만 응답
- 웹서버 정보확인, 헬스체크, 버젼확인, 최종 수정일자 확인등의 용도로 사용
CONNECT - 동적으로 터널 모드를 교환, 프락시 기능을 요청시 사용
TRACE - 원격지 서버에 루프백 메시지 호출하기 위해 테스트용으로 사용
OPTIONS - 웹서버에서 지원되는 메소드의 종류를 확인할 경우 사용

 

이 중 현업에서 자주 사용되는 메서드로는, GET, POST, PUT, DELETE를 들 수 있다.

 

 

 

 

 

 

 

참고 및 캡처 출처: 우아한테크 - [10분 테코톡] 코카콜라의 HTTP 메서드와 상태코드, https://yuricoding.tistory.com/79

댓글