출처(https://hongsii.github.io/2017/08/02/what-is-the-difference-get-and-post/)

1. 개요

HTTP 프로토콜상에 서버와 클라이언트는 데이터가 오고가는데에 있어서 요청(Request) 및 응답(Response)을 한다.

이러한 과정속에는(HTTP 메소드) 기본적으로 GET과 POST가 있는데 두 전송방식의 정의와 사용 방식에 대해 기술한다.

 

 

 

2. GET 방식

 GET은 서버로부터 정보를 조회하기 위해 설계된 것으로 HTTP상의 Body가 아닌 리스트(혹은 맵이나 해쉬 테이블과 같은) 형태의 데이터를 불러오거나 혹은 쿼리스트링으로 특정 조건을 통해 디테일 페이지를 참조 및 접근할 수 있다.

 또한 자바스크립트 및 CSS와 같은 정적 컨텐츠로 이루어진 많은 양의 데이터의 경우 이를 반복적으로 요청하지 않고 그대로 사용할 수 있는 특성이 있기 때문에(캐시, Cache) 페이지 상의 내용 변경사항을 반영이 되지 않을 경우 클라이언트 상의 캐시를 별도로 지워주면 다시 서버로 요청을 보내 처리한다.

 

 

 

3. POST 방식

POST는 리소스를 생성 및 변경하기 위해 설계된 것으로 HTTP상의 Body를 통해 데이터를 전송할 수 있다. 이로 인해 GET 방식과는 달리 길이 제한에 구애받지 않고(단, DB상의 컬럼 제약조건으로 인한 길이 설정과 같이 외부적 요인은 감안...) 한 그룹(정확한 표현이 안떠올라 그룹으로 표기) 단위로 전송을 하기 때문에 내용이 보이지 않는 특성이 있다.

 또한 해당 방식으로 요청을 보낼 경우 Header내 Content-Type에서 어떠한 데이터 타입을 보낼 것인지 표기를 할 수 있는데 이 과정을 거치지 않으면 서버는 URL에 포함된 리소스를 분석하여 데이터 타입을 유추한다. 단, 알 수 없는 타입의 경우 'aplication/octec-stream'으로 처리한다.

 

 

 

4. GET과 POST의 사용

 GET을 사용하는 기준은 요청을 할 때 지속적으로 같은 응답을 하는데에 있다. 그러한 이유로 사용자 측에서 조회기능을 사용 할 때 사용된다.

 POST를 사용하는 기준은 요청을 할 때 마다 항상 달라질 수 있는 응답을 제공하는데에 있다.(물론 변경하지 않는 데이터는 그대로 유지할 수 있다.) 그러한 이유로 사용자 측에선 생성, 수정, 삭제(세부적으론 PUT, PATCH, DELETE와 같은 다양한 전송방식을 사용한다.)를 할 때 사용된다.

'ETC > 기술면접' 카테고리의 다른 글

[JSP] MVC1, MVC2  (0) 2021.07.29
[Git] Fork  (0) 2021.07.29
[Oracle] SYNONYM  (0) 2021.06.13
[Oracle] INDEX  (0) 2021.06.13
[Spring] IOC  (0) 2021.06.13