Skip to content

Latest commit

 

History

History
52 lines (45 loc) · 2.67 KB

GETvsPOST.md

File metadata and controls

52 lines (45 loc) · 2.67 KB

GET과 POST

GET

  • 클라이언트 서버에서 어떠한 리소스로 부터 정보를 요청하기 위해 사용되는 메서드
  • ex) 게시물 조회
  • 이 요청은 URL 주소 끝에 파라미터로 포함되어 전송 (⇒ 쿼리 스트링(query string))
  • 특징
    • GET request can be cached
    • GET request remain in the borwser history
    • GET request can be bookmarked
    • 캐시 가능
      • get을 통해 서버에 리소스 요청 시 웹 캐시가 요청을 가로채 서버로부터 리소스를 다시 다운로드 하는 대신 리소스의 복사본 반환
    • 브라우저 히스토리에 남음
    • 북마크 가능
    • 길이 제한 있음
      • 표준 X 브라우저 마다 다름
    • 보안상 파라미터에 다 노출되므로 중요한 정보를 다루면 안됨.
    • 데이터 요청시에 사용

POST

  • 서버로 리소스를 생성하거나 업데이트 하기 위해 데이터 전송 시 사용
  • ex) 게시판에 게시글 작성
  • 전송 데이터를 HTTP 메시지 body에 담아서 서버로 보냄 → Content-Type 헤더에 따라 타입 결정
  • GET에서 파라미터로 전송된 “=value1&name2=value2”이 body에 담겨 보내짐
  • 길이 제한 X → 용량 큰 데이터 전송
  • 데이터 외부적으로 드러나지 않음 → 보안 필요시 사용
    • 암호화는 필요함
  • 보통 HTML form을 통해 서버로 전송됨
  • 특징
    • 캐시되지 않음
    • 브라우저 히스토리에 남지 않음
    • 북마크 되지 않음
    • 데이터 길이에 제한 X

차이점

GET POST
사용 목적 서버의 리소스에서 데이터 요청
(⇒ DB의 SELECT) 리소스를 새로 생성하거나 업데이트 할 때
(⇒ DB의 Create)
요청에 body 유무 URL 파라미터에 요청하는 데이터를 담아 보냄 ⇒ body X body에 데이터를 담아 보냄 ⇒ HTTP 메시지에 body O
멱등성 (indempotent) 멱등 O 멱등 X
  • 멱등 : 연산을 여러번 적용하더라도 결과가 달라지지 않는 성질
    • GET : 리소스를 조회에 요청 수와 관계 없이 동일한 응답
    • POST : 리소스 생성, 업데이트에 쓰이기 때문에 멱등 X