[스프링부트 나만의 블로그 만들기] 02. 시작 (http 요청 방식)

이경민·2022년 9월 1일
0

spring

목록 보기
10/20

통신 방법

  • GET: 데이터 받기 (select)
  • POST: 데이터 추가 (insert)
  • PUT: 데이터 수정 (update)
  • DELETE: 데이터 삭제 (delete)

stateless와 stateful

네트워크 프로토콜: 클라이언트와 서버간의 네트워크 통신이 어떻게 이루어지는지에 대한 개념

stateless

서버가 클라이언트의 세션 상태 및 세션 정보를 저장하지 않는 네트워크 프로토콜으로 요청에 대한 응답만 처리.

특징

  • 클라이언트가 송신하려 했던 모든 데이터가 서버쪽에 수신 되었는지 확인 X
  • 장점: 서버가 클라이언트의 세션 상태 및 세션 정보를 저장하지 않아 확장성이 좋다
  • 단점: 서버가 세션 상태 및 세션 정보를 저장하지 않아, 클라이언트 측에서 송신할 데이터의 양이 많다.

stateful

세션이 종료까지, 클라이언트의 세션 정보를 저장하는 네트워크 프로토콜

특징

  • 클라이언트가 송신하려 했던 모든 데이터가 서버쪽에 수신 되었는지 확인 X
  • 장점: 서버는 클라이언트의 세션 정보를 저장해, 갑자기 통신이 중단되더라도 중단된 곳부터 다시 시작 가능
  • 단점: scale out 시, 클라이언트의 세션 정보를 새로운 서버에 옮겨주는 등의 부수적인 관리가 요구되므로, 확장성이 좋지 않다

MIME 타입

Multipurpose Internet Mail Extensions의 약자

spring의 MIME 타입: JOSN

Controller에서 외부로부터 request 요청이 올 때 모든 정보를 JSON 타입으로 전달한다.
즉, MIME 타입이 JSON이다.
요청 시 JSON에서 자바로, 응답 시 자바에서 JSON으로 바뀐다.

추가 설명

예전에는 텍스트 파일을 주고 받는데에 ASCII로 공통된 표준에 따르기만 하면 문제가 없었으나 네트워크를 통해 ASCII가 아닌 바이너리 파일을 보내는 경우가 생기게 되었다. 음악파일, 무비파일, 워드파일 등등 ASCII만으로는 전송이 안되기 때문에 기존 시스템에서 문제 없이 전달하기 위해서는 텍스트로의 변환이 필요했다.

텍스트 파일로 변환하는 것을 인코딩(Encoding), 텍스트 파일을 바이너리 파일로 변환하는 것을 디코딩(Decoding)이라고 한다.

MIME으로 인코딩한 파일은 Content-type정보를 앞부분에 담게되며 Content-type은 여러가지 타입이 있다.

0개의 댓글