본문 바로가기
네트워크

[네크워크]GET과 POST차이

by whitedeveloper 2023. 8. 10.

:GET과 POST는 HTTP 프로토콜을 이용하여 클라이언트에서 서버로 무엇인가를 요청할 때 사용한다.

 

GET

: 클라이언트에서 서버로 어떠한 리소스를 요청하기 위해 사용하는 메서드

:요청하는 데이터가 HTTP Request Message의 Header 부분에 URL에 담겨서 전송된다.

:URL 끝에 "?"를 붙이고 변수명1=값1&변수명2=값2...형식으로 파라미터를 작성하여 데이터를 전송

: 이러한 방식은 URL이라는 공간에 담겨가기 때문에 전송할 수 있는 크기가 제한적이고 보안이 필요한 데이터에 대해서 그대로 노출되는 문제가 있다.

 

POST

: 클라이언트에서 서버로 리소스를 생성하거나 변경을 위해 데이터를 전송할 때 사용하는 메서드

: HTTP Request Message의 body 부분에 담겨 전송

: HTTP Message의 body의 길이의 제한이 없고, GET 방식에 비해 보안적인 측면이 낫다. 하지만 암호화 하지 않는 이상 비슷

 

차이점

사용목적

: GET은 데이터를 가져오는 것, 서버에서 데이터를 가져와 보여주는 용도, 서버의 값이나 상태를 변경x

 

: POST는 서버의 값이나 상태를 변경하거나 추가하기 위해 사용

 

캐싱

: GET은 캐시가 가능하다. GET을 통해 서버에 리소스를 요청할 때, 웹 캐시가 요청을 가로채 서버로 부터 리소스를 다시 다운로드하는 대신 리소스의 복사본을 반환한다. HTTP헤더에서 Cache-control 헤더를 통해 캐시 옵션을 지정할 수 있다.

 

: POST는 캐시되지 않는다. POST방식으로 요청해야 할 것을 데이터의 크기가 작고 보안적인 문제가 없다는 이유로 GET 요청을 한다면 기존 캐싱되었던 데이터가 응답 될 수 있다.

 

멱등성(Idempotent)

:GET은 멱등이고, POST는 멱등이 아니다.

: 멱등의 사전적 정의는 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미

: GET을 리소스를 조회한다는 점에서 여러 번 요청하더라도 응답이 똑같다.

: POST는 리소스를 새로 생성하거나 변경할 때 사용되기 때문에 멱등이 아니다. = POST요청 발생하면 서버가 변경될 수 있다.

 

 

 

'네트워크' 카테고리의 다른 글

[네트워크]HTTP / HTTPS 차이  (0) 2023.08.10
[네트워크]HTTP 상태 코드  (0) 2023.08.10
[네트워크]HTTP  (0) 2023.08.10
[네트워크]web browser,IP, proxy,port  (0) 2023.03.30
[네트워크]HTTP + 보안 1  (1) 2023.03.29