GET 요청과 POST 요청
HTTP의 요청 중에서 제일 많이 쓰이는 GET
과 POST
에 대해서 알아봅니다.
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 |
댓글