Apache HTTP Client를 이용하여 multipart/form-data content-type으로의 요청을 서버로 보내는 유틸을 개발하게 되었다.흔히 웹 브라우저에서 파일 첨부를 한 후 "저장하기" 버튼을 클릭했을 때의 동작을 Java 코드로 구현하는 것 뿐이다. client와 server코드를 완성한 후 서버측으로 다음과 같은 정보로 요청을 보냈다.request URL : http://localhost:8080/file/upload업로드 파일 : test.txt, test1.txt 로그 레벨을 DEBUG로 설정한 후 파일 업로드 요청을 보내게 되면 다음과 같은 request raw 데이터가 남게 된다.실제 client 에서는 다음과 같은 데이터를 서버로 보내게 되는 것이다. multipart/..
HTTP request 시 json 스트링을 서버에 넘겨주고, 서버는 interceptor에서 먼저 HTTP request body에 있는 json 스트링을 읽어와 값에 대한 체크를 진행하는 로직을 개발하고 있었다. json 스트링 검증 후 spring controller에서 @RequestParam 으로 데이터를 받으려고 할 때 다음과 같은 예외가 발생java.lang.RuntimeException: java.io.EOFException: No content to map to Object due to end of input interceptor에서 request body의 데이터를 이미 읽어 들였기 때문에 나오는 증상이다.시퀀스 다이어그램으로 표현하자면 다음의 4번에 해당하는 부분에서 예외가 발생된다...
와이어 샤크를 이용하여 내 PC와 서버간의 통신 패킷을 확인하고 싶을 때가 있다.나는 주로 프로토콜 통신이 어떤 원리로 이뤄지는지를 확인 해보고 싶어 사용한다.헌데 가끔 와이어 샤크를 이용할라 치면 필터 설정을 잊어 먹을 때가 많다.매번 검색하는 것도 귀찮으니 내 블로그에 와서 바로 확인 할 수 있도록 간단하게 정리를 하자. 와이어 샤크에는 다양한 기능들이 많은데 난 딱 한 가지 기능만 사용한다.그것이 바로 Capture Filter 이다. 다음은 실제 캡쳐를 해봄으로써 어떻게 설정을 하는지 알아본다.캡쳐를 할 대상은 개발 장비에 있는 테스트 웹 페이지이다.1. Capture > Options 클릭 > Capture할 랜카드 체크 2. Capture할 랜카드를 더블 클릭하면 창이 하나 뜬다. 3. "Ca..
웹 애플리케이션을 개발할 때 세션을 이용하여 사용자 로그인 정보를 저장하고, 사용자의 로그인 상태를 유지할 수 있게 개발하는 방법은 많은 개발자가 알고 있다.하지만 로그인 상태를 유지하기 위해서 서블릿 컨테이너인 tomcat이 내부적으로 어떻게 동작하는지 모르는 분들이 계셔서 이곳에 정리를 해보려고 한다. 로컬에 톰켓 설치 후 구동 HTTP request, response 헤더를 확인해야 하기 때문에 크롬의 개발자 도구를 이용한다. 크롬 개발자 도구의 Network 탭을 선택한 후 http://localhost:8080/login.jsp 접속 HTTP 헤더 정보를 보면 Response Headers에 쿠키 정보를 client로 전달한 것을 볼 수 있다. JSESSIONID 값이 톰켓에서 발급하는 쿠키 정..