Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

To Dare Is To Do!

HTTP Method 본문

Spring

HTTP Method

Nick_Choi 2023. 11. 6. 21:17

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

  • 클라이언트와 서버 사이에 요청과 응답 메시지가 어떻게 수정되는지 확인할 수 있음
  • 일종의 검사용 메서드

 

 

 

 

 

 

 

 

 


참고

https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-HTTP-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%A2%85%EB%A5%98-%ED%86%B5%EC%8B%A0-%EA%B3%BC%EC%A0%95-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC#http_%EB%A9%94%EC%84%9C%EB%93%9C_-_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