[HTTP] GET/POST 메서드 정리

dhleeone·2022년 1월 12일
0
  • 클라이언트가 서버에게 웹페이지를 보여달라고 말하는 것은 요청이라고 하며, 서버가 요청에 대한 대답으로 웹 페이지에 내용을 표현하기 위해 html 문서로 주는 것을 응답이라고 한다.

Http 패킷이란

클라이언트가 서버로 요청을 보냈을 때, 서버가 보내는 데이터를 http 패킷이라 함.
http 패킷의 구조는 헤더 / 바디로 나뉜다.

  • 헤더에는 7가지 http 메서드 방식중 무엇을 썼는지, 클라이언트의 정보, 브라우저 정보, 접속할 url 등과 같은 정보를 담는다.
  • 바디는 보통 비어있지만 특정 데이터를 담아서 서버에 요청을 보낼 수 있다.

GET 방식과 POST 방식

두 방식 모두 서버에 요청을 보내는 메서드이다.
클라이언트는 로그인 시 아이디와 패스워드를 입력하면 클라이언트는 해당 입력정보가 유효한지 검사가 필요하다. 이 과정에서 클라이언트는 요청을 할 때 자원을 보내야 한다.

GET 방식으로 데이터를 보내기

www.velog.com?id=dhleeone&pass=1234!

위 예시 url을 보면 ?마크를 통해 url의 끝을 알리고, 데이터 표현의 시작을 알린다.
데이터는 key와 value 쌍으로 넣어야하며, 위처럼 2개 이상의 쌍은 &으로 구분한다.

데이터를 url에 붙이게 되어 http 패킷의 헤더에 포함되어 서버의 요청이되고,
body는 내용이 없이 빈 상태로 보내진다.
따라서 body의 데이터를 설명하는 Content-type은 헤더 필드에 따로 들어가지 않는다.

추가적으로 url형태로 표현되어 특정 페이지를 타인이 접속 가능하다,
간단한 데이터만 넣도록 되어있어 데이터 양에 한계가 있다.

POST 방식으로 데이터를 보내기

application/x-www-form-urlencoded
text/plain
multipart/form-data

post 방식은 get 방식과 달리, 데이터 전송을 기반으로 한 요청 메소드이다.
get 방식은 url에 데이터가 붙는 반면, post 방식은 url에 붙지 않고
body에 데이터를 붙여서 보낸다.

따라서 헤더필드중 body 데이터를 설명하는 Content-type이라는 헤더필드가 들어가며 어떤 데이터 타입인지 명시한다.

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

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

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

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

출처: https://mommoo.tistory.com/60 [개발자로 홀로 서기]

profile
하루하루 쌓아가는 개발 지식📦

0개의 댓글