[CS] GET 과 POST의 차이

김훈·2022년 1월 22일
0

[Network]

목록 보기
1/5

1. GET 과 POST란 무엇인가..?

GET과 POST는 HTTP 메소드로
HTTP프로토콜을 이용해서 서버에 무언가를 전달할 때 사용하는 방식입니다.

HTTP 메소드 설명..


2. GET 이란?

GET은 클라이언트에서 서버로 부터 정보를 요청하기 위해 사용되는 메소드
게시판의 게시글을 조회(SELECT)하는 것이 대표적인 예,

GET을 통한 요청은 URL주소에 끝에 파라미터를 포함하고 있고 이를 쿼리 스트링이라 부른다.


3. GET의 특징

  1. GET은 데이터를 요청할때만 사용 된다.

  2. GET 요청은 중요한 정보를 다루면 안된다. ( 보안 )
    : GET 요청은 파라미터에 다 노출되어 버리기 때문에 최소한의 보안 의식이라 생각하자.

  3. GET 요청은 길이 제한이 있다.
    : GET 요청의 길이 제한은 표준이 따로 있는건 아니고 브라우저마다 제한이 다르다고 한다.

  4. GET 요청은 브라우저 히스토리에 남는다.

  5. GET 요청은 북마크 될 수 있다.

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

  7. GET 요청은 idempotent합니다.


4. POST 란?

POST는 클라이언트에서 서버로 리소스를 생성하거나 업데이트하기 위해 데이터를 보낼 때 사용 되는 메서드다. 예를들면 게시판에 게시글을 추가(INSERT)나 갱신(UPDATE) 등을 할 때 사용할 된다.


5. POST의 특징

  1. POST 요청은 캐시되지 않는다.

  2. POST 요청은 브라우저 히스토리에 남지 않는다.

  3. POST 요청은 북마크 되지 않는다.

  4. POST 요청은 데이터 길이에 제한이 없다.

  5. POST 요청은 idempotent하지 않습니다.

  6. POST 요청이 보안 되더라도 개발자 도구, Fiddle(HTTP 분석툴) 같은 툴로 요청 내용을 확인 할 수 있다.
    그러므로 데이터 암호화가 필요하다.


6. GET과 POST 차이 정리

사용목적
: GET은 서버의 리소스에서 데이터를 요청할 때, POST는 서버의 리소스를 새로 생성하거나 업데이트할 때 사용한다.
DB로 따지면 GET은 SELECT 에 가깝고, POST는 Create 에 가깝다고 보면 된다.

요청에 body 유무
: GET 은 URL 파라미터에 요청하는 데이터를 담아 보내기 때문에 HTTP 메시지에 body가 없다.
POST 는 body 에 데이터를 담아 보내기 때문에 당연히 HTTP 메시지에 body가 존재한다.

멱등성 (idempotent) : GET 요청은 멱등(idempotent)이며, POST는 멱등이 아니다.


출처: https://java119.tistory.com/16
출처: https://noahlogs.tistory.com/35 [인생의 로그캣]

profile
작고 소중한 개발 노트

0개의 댓글