Tiny Bunny
본문 바로가기

2023-02 몰입형 SW 정규 교육

Get, Post 차이점 및 한글 처리 방식

728x90

클라이언트가 서버에 요청하는 방식에 따라 한글 인코딩 처리 방법이 다른다는 것을 알고 계신가요?

GET, POST 각 요청 방식에 따라 인코딩 방식이 어떻게 다른지 알아보는 시간을 가져보아요.

 

인코딩을 하기 전에 두 방식이 어떤 차이가 있길래 서로 다른 방식으로 인코딩을 하는지부터 알아야 합니다.

 

Get

 

 

네이버 검색창에 superman을 검색했을 때 나오는 URL입니다.

 

https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=0&ie=utf8&query=superman

 

검색어가 url 마지막에 포함되어 있는 걸 확인할 수 있는데요, 이처럼 URL에 데이터를 담아서 전송하는 게 GET 방식입니다.

 

GET 방식은 URL에 데이터를 포함하여 값을 넘겨주는데 request.setCharacter는 URL을 처리하지 않기 때문에 server.xml에서 URIEncoding 속성을 추가해줘야 합니다.

 

server.xml 파일에 들어가면 65라인 즈음에 <Connector> 태그가 있는데, 해당 태그에 URIEncoding="euc-kr" 속성을 추가해줍니다. 이렇게 하면 GET 방식으로 처리할 때 한글이 깨지지 않고 정상적으로 처리되는 것을 확인하실 수 있습니다.

 

  • 서버에 있는 정보를 가져오기 위해 설계됨
  • 240바이트까지 전달 할 수 있음
  • QUERY_STRING 환경변수를 통해 전달
  • URL 노출로 보안상의 문제가 있음
  • 검색 엔진에서 검색 단어 전송에 많이 이용

 

 

 

POST

 

POST 방식은 데이터를 HTTP 요청 본문에 포함시켜 서버로 보냅니다.

주로 큰 데이터를 보내거나, 혹은 파일 업로드와 같은 작업을 수행할 때, 보안에 민감한 정보를 전송할 때 사용됩니다.

한글이나 특수 문자는 요청 본문의 인코딩 설정에 따라 처리 됩니다.

 

POST는 서블릿 java 파일 안에 직접 코드를 추가해줘야 합니다.

 

protected void doPost(HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException {
	request.setCharacterEncoding("euc-kr");
}

 

728x90