본문 바로가기

내가 궁금한 속성들 개념 정리

POST 와 GET이란?

두 방식 모두, 서버에 요청을 하는 메서드이다.

GET

클라이언트의 데이터를 URL뒤에 붙여서 보낸다

https://minso-dev.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F

URL 뒤에 "?" 마크를 통해 URL의 끝을 알리면서, 데이터 표현의 시작점을 알린다.

데이터는 key 와 value 쌍으로 넣어야 한다.
중간에 &마크는 구분자 이다. 2개이상의 key - value 쌍 데이터를 보낼때는 &마크로 구분해준다.

URL에 붙이므로, HTTP패킷의 해더에 포함되여 서버에 요청한다.

따라서, GET 방식에서 BODY에 특별한 내용을 넣을 것이 없으므로 BODY가 빈상태로 보내진다.

그러므로, 헤더의 내용중 BODY 데이터를 설명하는 Content-Type이라는 헤더필드는 들어가지 않는다.

URL형태로 표현되므로, 특정 페이지를 다른사람 에게 접속하게 할 수 있다. 

또한 간단한 데이터를 넣도록 설계되어, 데이터를 보내는 양의 한계가 있다.

 

POST

POST 방식은 GET 방식과 달리, 데이터 전송을 기반으로 한 요청 메서드이다.

GET방식은 URL에 데이터를 붙여서 보내는 반면, POST방식은 URL에 붙여서 보내지 않고

BODY에다가 데이터를 넣어서 보낸다.  

따라서, 헤더필드중 BODY의 데이터를 설명하는 Content-Type이라는 헤더 필드가

들어가고 어떤 데이터 타입인지 명시한다.

컨텐츠 타입으로는 여러가지가 있지만, 몇가지를 적자면,

 

  1. application/x-www-form-urlencoded
  2. text/plain
  3. multipart/form-data

 

등이 있다.

따라서 POST 방식으로 데이터를 보낼때는 위와 같이 컨텐츠 타입을 꼭 명시해줘야한다.

보통 작성하지 않는 경우는 1번의 컨텐츠 타입으로 셋팅된다.

1번의 컨텐츠 타입은, GET방식과 마찬가지로 BODY에 key 와 value 쌍으로 데이터를 넣는다. 똑같이 구분자 &를 쓴다.

2번의 컨텐츠 타입은, BODY에 단순 txt를 넣는다.

3번의 컨텐츠 타입은, 파일전송을 할때 많이 쓰는데 BODY의 데이터를 바이너리 데이터로 넣는다는걸 알려준다.

자바와 같이 oop 프로그래밍에서는 BODY에 데이터를 InputStream/OutputStream 클래스를 통해서 읽고/쓰고 한다.

 

 

'내가 궁금한 속성들 개념 정리' 카테고리의 다른 글

Fetch란?  (0) 2021.09.02