본문 바로가기
Computer Science/Network

[NetWork/Web] get방식 vs post방식 차이점

by 카프리썬 2020. 1. 17.
728x90

HTTP

웹상에서 클라이언트와 서버간에 요청/응답으로 데이터를 주고받는 프로토콜

클라이언트가 HTTP 프로토콜을 통해서 서버서에 요청을 보내면

서버는 요청에 맞는 응답을 클라이언트에게 전송한다.

이때 HTTP메소드 : 서버가 요청을 수행할 행동

그 중 하나인 GET방식 POST방식

 

공통점

클라이언트와 서버간에 요청/응답을 주고받는 메소드 중 하나

HTTP프로토콜을 사용하여 웹페이지->서버로 정보를 전송하는 방식

 

 

GET 방식

URL의 끝에 전송할 데이터의 파라미터를 붙여서 서버로부터 정보를 요청

요청을 전송할때 필요한 데이터를 쿼리스트링을 통해 전송

 

서버로부터 정보를 '조회'할때 사용

사용예시 : 로그인

-> 로그인정보를 서버에 select하는 용도, 전송해서 일치하는지 확인

 

EX) www.example-url.com/resources?name1=value1&name2=value2

name1, name2 : 요청파라미터
각 파라미터에 해당하는 값을 value1, value2로 가져와서 서버에 요청을 보냄

 

특징
1. URL에 쿼리스트링으로 노출되서 보안에 취약

2. 길이 제한이 있음

3. 캐시가 가능하다
이전에 요청을 받은 리소스라면 웹캐시가 반환함
HTTP 헤더에서 Cache-control헤더에서 캐시옵션 지정가능

4. 브라우저 히스토리에 는다.

=> 반복적인 요청이 캐시될 수 있음. 

그래서 동이한 요청이 발생하면 서버로 요청을 보내지 않고 캐시데이터사용

멱등(Idempotent) : 사전적 정의는 연산을 여러번 적용해도 결과가 달라지지 않는 성질

동일한 요청을 여러번 전송하더라도 동일한 응답이 돌아옴

 

+HTTP프로토콜의 디폴트 방식은 GET방식

 

 

POST 방식

전송할 데이터를 http메세지의 body에 담아서 전송

서버로 리소스를 생성하거나 변경할때 사용 

 

특징

1. URL에 노출되지 않아 보안에 강함

2. 데이터 길이에 제한이 없다.

대신 POST로 요청을 보낼때 body의 타입은 Content-Type헤더에 따라결정

멱등이 아님(Non-idempotent) : 서버에게 동일한 요청을 여러번해도 새로 생성하거나 업데이트 할 때 사용해서 다른응답일 수 있음

3. 브라우저 히스토리에 남지 않는다.

4. 캐시되지 않는다.

 

서버의 상태나 데이터를 변경시킬때 사용

생성,수정,삭제에 사용할 수 있지만
생성에는 POST, 수정은 PUT 또는 PATCH, 삭제는 DELETE메소

 

사용예시: 회원가입form, 게시판에 글 작성

-> 다 입력하고 이 정보를 서버에 create/update하는 용도, 서버에 보내서 저장

 

 

차이점

+GET은가져오는것, POST는 수행하는것

GET은 선택적인 성향, 서버에서 데이터를 가져와서 보여주는 용도이지 서버의 상태변화X

POST는 서버의 값이나 상태를 바꾸는용도

 

사용목적 : GET은 SELECT에 가깝고, POST는 Create에 가까움

body유무 : get은 없음, post는 잇음

멱등성 : get은 멱등, post는 아님

 

 

반응형