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
'2023-02 몰입형 SW 정규 교육' 카테고리의 다른 글
[Vue] VS Code에 Vue 프로젝트 생성 (0) | 2023.09.22 |
---|---|
HTTP 상태 코드 100 ~ 500 (0) | 2023.09.21 |
[JSP] JSP 지시어(Directive), 액션 태그(Action Tag) (0) | 2023.09.21 |
[JSP/Servlet] 회원가입 (0) | 2023.09.20 |
웹 프로그래밍 개념 (Web Programming) (0) | 2023.09.19 |