🔶 HTTP method의 개념, 종류 알아보기
🔹HTTP method란?
=> 클라이언트와 서버 간에 이루어지는 요청(Request)과 응답(Response)을 전송하는 방법.
HTTP method에 대해 알아보기 전, 좀 더 심화하여 웹브라우저에서 서버에게 리소스 요청하는 방법부터 알아보겠다.
🔹 웹브라우저에서 서버에게 자원(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
'IT || 개발공부 > Spring' 카테고리의 다른 글
[Spring] DDD설계와 SQL 중심 설계 (0) | 2023.11.09 |
---|---|
[Spring] Entity, DTO, VO 알아보기 (0) | 2023.11.07 |
[Spring] 스프링 빈 등록 후 의존성 주입해보기 (1) | 2023.11.06 |
[Spring boot] intelliJ로 Controller 생성 및 실행하기 (0) | 2023.11.02 |
[Spring] Controller, Service , Repository의 역할 (0) | 2023.10.31 |
댓글