To Dare Is To Do!
HTTP Method 본문
HTTP란?
HyperText Transfer Protocol의 약자인 HTTP는 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜을 의미한다.
클라이언트와 서버 간의 통신을 관리하고 웹 페이지, 이미지, 동영상, 문서 등의 리소스를 전송하고 검색할 때 사용된다.
※ 리소스란 URL를 검색해서 받아온 결과로서 텍스트, HTML, 이미지 등 그 외 서버로부터 전달받은 데이터를 의미한다.
HTTP 메서드
- HTTP 메서드란 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식
= 서버에 주어진 리소스에 수행하길 원하는 행동, 서버가 수행해야 할 동작을 지정하는 요청을 보내는 방법
- HTTP 동사라고 부르기도 함
- 클라이언트가 서버에게 요청의 목적이나 종류를 알리는 수단으로서 사용됨
- URI 설계 과정에서 적당한 리소스명을 작성할 때 발생하는 URI 중복 문제를 해결
주로 쓰이는 메서드 GET, POST, PUT, PATCH, DELETE 외에도 HEAD, OPTIONS, TRACE 등이 있다.
주요 메서드
GET
- 클라이언트가 서버의 리소스 요청(조회)할 때 주로 사용
- URL에 전송하는 데이터가 표시되기 때문에 보안에 민감한 정보 사용은 유의해야 함
- 쿼리스트링을 사용하여 서버에 데이터를 전달함
※쿼리스트링이란 사용자가 입력데이터를 전달하는 방벌 중 하나로서 url 주소에 미리 협의된 데이터를 파라미터를 통해 넘기는 것이다.
EX) https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=0&ie=utf8&query=손흥민
위의 url에서 ? 이후에 오는 내용으로 key=value의 형태를 가지고 &로 연결된다.
POST
- 요청 데이터 처리함
- 메시지 바디를 통해 서버로 요청 데이터 전달함
- 주로 새로운 리소스를 생성(등록)할 때 사용함
- 쿼리스트링 형태의 데이터를 메시지 바디(ex. json)에 넣어 전달하기 때문에 GET 방식처럼 데이터가 외부에 노출되는 것을 방지함
PUT
- 해당 리소스가 있다면 덮어쓰고 해당 리소스가 없으면 생성 (UPDATE 개념)
- 일부 필드가 없는 리소스로 PUT 한다면 기존에 있던 일부 필드는 삭제될 수 있음
- 부분 수정 불가능
- 클라이언트가 구체적인 리소스의 경로를 지정해야 함
PATCH
- 리소스의 일부분을 수정한다는 점에서 PUT과 차이를 가짐 (UPDATE 개념)
DELETE
- 리소스를 삭제하는 역할을 가짐
HEAD
- GET과 비슷하지만 HTTP 메시지의 Body 부분은 없고 헤더만 존재함
- 주로 리소스의 메타데이터를 검색하거나 리소스가 변경되었는지 확인할 때 사용함
OPTIONS
- 서버가 클라이언트에게 메서드, 헤더, 인증 방법 등의 정보를 제공하는 메서드
TRACE
- 클라이언트와 서버 사이에 요청과 응답 메시지가 어떻게 수정되는지 확인할 수 있음
- 일종의 검사용 메서드
참고
'Spring' 카테고리의 다른 글
DTO와 Entity의 변환 (0) | 2023.11.16 |
---|---|
DTO vs VO vs Entity (0) | 2023.11.07 |
Spring 3계층 속 DI (0) | 2023.11.05 |
직접 만들고 뜯어본 Controller (1) | 2023.11.03 |
스프링의 꽃, 3계층 (0) | 2023.10.31 |