본문 바로가기
공부 기록

GET 요청과 POST 요청 [간단 요약]

by 매트(Mat) 2021. 5. 20.

 

GET 요청과 POST 요청

HTTP의 요청 중에서 제일 많이 쓰이는 GETPOST에 대해서 알아봅니다.

GET 요청

  • URL에 데이터를 포함 -> 데이터 조회에 적합
    • URL 주소를 보면 https://azurealstn.tistory.com/manage/newpost/78?type=post&returnURL=https%3A%2F%2Fazurealstn.tistory.com%2F78와 같이 ? 뒤에 데이터 정보들이 다 담습니다. 그래서 로그인같이 보안이 중요할 때는 post를 써야하며, 단순히 검색이나 조회할 때는 get 써서 성능을 높입니다.
  • 바이너리 및 대용량 데이터 전송 불가

GET 요청 방법

  • 첫 번째는 웹 브라우저 주소창에 URL을 입력하는 경우
  • 두 번째는 링크를 클릭하는 경우 ex. <a> 태그
  • 세 번째는 입력 폼의 method 속성값이 'get' 인 경우

GET 요청 장점

  • GET 요청은 자료를 검색, 게시글 상세 보기, 어떤 데이터를 조회할 때 사용하는 것이 적합합니다. URL에 검색어나 게시글 번호, 상품 번호 등이 포함되어 있기 때문에 다른 사람들과 공유하기 좋습니다.
  • '즐겨찾기'에 저장해두면 언제든지 해당 페이지로 바로 찾아가는 것도 바로 GET 요청입니다.

GET 요청 단점

  • 장점에 이미 나와있지만 URL에 정보들이 다 담겨있기 때문에 보안에는 취약하다는 단점이 있습니다. 만약 '로그인'같이 개인 정보가 담겨있을 때는 절대로 GET 요청을 하면 안됩니다.
  • 그리고 바이너리 데이터를 전송할 수 없습니다. 이미지나 동영상과 같은 바이너리 파일의 데이터는 URL에 붙여서 보낼 수가 없습니다.
  • 위 단점들을 해결할 수 있는 것이 'POST 요청' 입니다.

POST 요청

  • URL에 데이터가 포함X -> 외부 노출 방지
  • 메시지 본문에 데이터가 포함 -> 실행 결과 공유 불가
  • 바이너리 및 대용량 데이터 전송 가능

POST 요청 방법

  • <form> 태그에서 method='post'로 지정합니다.
  • <form> 태그에서 입력값은 기본적으로 application/x-www-form-urlencoded 입니다. 이것은 key-value 형태로 되어있으며, 자세한 것은 MIME 타입을 공부해야 합니다.
Content-Length: 22
Content-Type: application/x-www-form-urlencoded
  • 서버에 보내는 데이터는 Message Body라 불리는 부분에 위치합니다.

POST 요청 단점

  • GET 요청은 공유할 수 있다는 장점이 있지만, 반대로 POST 요청은 공유할 수 없다는 단점이 있습니다.

POST 요청 장점

  • 그렇지만 바이너리 형태의 데이터를 전송할 수 있으며,
  • 공유는 할 수 없지만 정보가 URL에 담기지 않기 때문에 보안에 좋습니다.


Reference

  • 자바 웹 개발 워크북

'공부 기록' 카테고리의 다른 글

[스프링 부트로 게시판 만들기] 00. 앞으로 만들 프로젝트  (0) 2021.07.18
서블릿(Servlet) 간단 요약  (0) 2021.05.20
Eclipse 개발 환경 구축 (톰캣)  (0) 2021.05.20
async & await  (0) 2020.10.22
Promise  (0) 2020.10.22

댓글