Back-End/JSP

[JSP] GET과 POST 차이와 비교

CJun 2021. 6. 25. 00:07
반응형

클라이언트가 서버로 요청을 보내는 방법인 HTTP Method에는 크게 보자면

2가지 방식인 GET방식과 POST방식이 있다.

그래서 오늘은 GET방식과 POST방식 차이와 비교를 해보겠습니다.

 

GET 이란?
먼저 GET하면 어떤것이 떠오르시나요 바로 어떠한걸 가져오는것이 떠오르지 않나요? GET 방식은 마치 우리가 필요한 정보를 얻기위해서 도서관에 책을 빌려오는 상황과 매우 유사하며 조금더 자세하게 말하자면 GET 방식은 어떠한 정보를 가져와서 조회하는 방식입니다.

GET방식의 특징

1. 캐싱이 가능하다.
2. URL에 변수 및 데이터를 포함시켜 요청 할 수 있다.
3. 데이터를 Header에 포함하여 전송한다
4. URL에 데이터가 노출되기 때문에 보안에 취약하다.
5. 데이터를 URL에 넣기 때문에 데이터를 보내는 양에 한계가 있으며 초과된다면 초과데이터는 절단된다.
6. URL 형식에 맞지 않는 파라미터 이름이나 값은 인코딩되어 전달해야만 한다.
7. Body의 데이터를 설명하는 Content-type 헤더필드도 들어가지 않는다.

캐싱(Caching)

- 한번 접근 후에 또 요청이 온다면 빠르게 접근하기 위해

  레지스터에 데이터를 저장시켜놓는것 이다.

 

GET 방식 예시

만약 네이버 페이지에 로그인을 하는 상황이라면 당연히 id와 pw를 입력 후 버튼을 클릭합니다. 여기서 GET방식으로 전송하는 경우에는 www.naver.com/login?id=abc&id=123와 같은 페이지가 있다면 GET방식은 ?를 통해서 URL끝을 알리고 &은 이어주는 역할을 하는데 최소한의 보안유지도 하지 않기 때문에 개인정보가 노출됩니다.

 

POST 이란?
POST는 어떠한것이 떠오르나요 저는 부치다, 제출하다라는 뜻이 생각이 납니다. 이와 비슷하게 POST는 우리에 대한 정보를 제출하는 역할입니다. 조금더 자세하게 말씀드리자면 데이터를 서버로 제출하여 추가 또는 수정하기 위해 사용하는 방식이 POST 입니다.

POST방식의 특징

1. 캐싱이 불가능하다.
2. URL에 변수 및 데이터를 노출하지 않고 요청한다.
3. 데이터를 Body에 포함시킨다.
4. URL에 데이터가 노출되지 않아 GET방식보다 보안이 좋다.
5. body에 데이터를 넣어전송하기 때문에 Boday의 데이터를 설명하는
Content-Type이 들어가며 데이터타입을 명시한다.
6. 메세지 길이의 제한은 없지만 요청시간인 Time Out이 존재한다.
7. 라이도 버튼, 문자열, 텍스트 박스 등 객체들의 값 전송이 가능하다.

 

GET vs POST
비교
처리방법 GET 방식 POST 방식
보안 취약하다 GET방식보단 뛰어나다
데이터의 위치 Header Body
캐싱 여부 가능하다 불가능하다.
URL 예 http://localhost:8080/list?title=제목&content=내용 http://localhost:8080/boardlist
반응형