GET 요청
GET 요청의 특징
1. URL에 데이터를 포함 -> 데이터 조회에 적합
2. 바이너리 및 대용량 데이터 전송불가
3. 요청라인과 헤드필드의 최대크기
HTTP사양에는 제한사항 없음
대용량 URL로 인한 문제 발생 -> 웹 서버에 따라 최대 크기제한
Microsoft IIS 6.0+: 16KB
Apache 웹서버: 8KB
GET 요청의 데이터 전달 형식
GET으로 요청하는 경우 서버에 보낼 데이터는 URL에 붙인다.
'?'문자는 서비스 주소와 데이터를 구별하는 구분자
'&'문자는 데이터들을 구별하는 구분자
'='문자는 매개변수 이름과 값을 구별하는 구분자
GET 요청의 쓰임새
자료를 검색하거나, 게시글의 상세 정보를 본다거나, 특정 상품의 정보를 조회하는 것과 같이 데이터를 조회하는 경우
URL에 검색어나 게시글 번호, 상품번호를 포함할 할 수 있기 때문에 메일이나 단문 메시지등을 다른 사람에게 전달하기가 용이
즉, 결과 화면을 보관하거나 공유하고 싶다면 GET요청을 사용하는 것이 좋다.
GET 요청의 단점
1. 보안에 취약
GET 요청의 경우 웹브라우저의 주소창에 사용자가 입력한 정보가 그대로 노출되기 때문에 보안 문제가 발생할 수 있다. 또한, 즐겨찾기나 책갈피로 저장될 수 있어 다른사람에게 노출될 우려가 있다.
2. 바이너리 데이터 전송불가
이미지나 동영상과 같은 바이너리 파일의 데이터는 URL에 붙여서 보낼 수 없다. BASE 64라는 인코딩 방식을 이용하면 바이너리 데이터를 문자화해서 보낼 수 있지만 헤더정보가 너무 크면 웹 서버에서 처리할 수 없기 떄문에 바이너리 전송에는 GET요청은 적합하지 않다.
POST 요청
POST 요청의 특징
1. URL에 데이터가 포함되지 않음 -> 외부노출방지
2. 메시지 본문에 데이터를 포함 -> 실행 결과 공유 불가
3. 바이너리 및 대용량 데이터 전송 가능
POST 요청의 장단점
장점 : 입력 값이 URL에 노출되지 않는다.
단점 : 요청 결과를 공유할 수 없다.
출처: 자바 웹개발 워크북 88p~99p