All of My Records

[Server] 데이터 입력 및 데이터 수신 과정 톺아보기

by 캐떠린

GET vs POST 방식 비교

GET

  • 형식: http://~~/context root명/receive.do?name=hong&age=20
  • 특징
    • 입력한 데이터를 URL에 붙여서 전송하는 방식
    • QueryString( == 파라미터들, ?뒤에 있는 데이터를 뜻한다.)을 통해 데이터를 전송
    • 넘겨지는 데이터의 인코딩의 URL 규칙에 따라 인코딩 된다.
    • 톰캣(UTF-8) 담당
    • 많은 양의 데이터를 전송할 수 없다.
    • 브라우저 히스토리에 남는다.
    • 암호 유출 가능성

 

 

 

POST

  • 형식: http://~~/context root명/receive.do
  • 특징
    • get 방식과 다르게 url 상에 노출 되지 않고 html 헤더 값에 같이 전송되는 방식
    • 브라우저 히스토리에 남지 않는다.
    • 패킷 본문(body) 안에 넣어서 전송
    • 택배 상자 안에 넣어서 전송하는 방식
    • 데이터 전송 시 정석 방식
    • 자바를 통해서 데이터를 전송 → 인코딩이 자바를 통해서 진행된다.
    • 브라우저(UTF-8) → 인터넷(ISO-8859-1) → 톰캣(UTF-8) → 자바JSP(UTF-8) 때문에 자바측에서 UTF-8로 인코딩 복구를 시켜야 한다. 이런 이유로 POST 방식으로 전달한 한글 값은 데이터를 받기 전에 인코딩 처리를 해줘야 한다. → req.setCharacterEncoding("UTF-8");

 

method="POST"로 보내고, doGet메서드로 받으면 위와 같은 오류가 발생한다.

 

 

 

💡 기본값(default: GET)이 설정되어 있어서 그동안 몰랐었지만, 서버한테 페이지를 요청할 때는 어떤 방식으로 요청할 것인지를 항상 정해야 한다.

❓ GET 방식 vs POST 방식 어떤 걸 사용해야 할까?

: POST를 사용한다. 나중에 GET을 써야하는 상황에는 GET을 사용하지만, 그 외의 상황이라면 일단 POST를 적는다.
Why? POST 방식이 데이터를 전송하는 표준적인 정석 방법이기 때문이다.

 

블로그의 정보

All of My Records

캐떠린

활동하기