얼마전부터 틈날때 네트워크 프로그래밍을 하고 있습니다.
저는 현재 프로그래머로 직장을 다니고 있지만, 윈도우 어플리케이션 프로그래밍은 그냥 취미로 밖에 한 적이 없습니다.

어떤 프로그램인고 하니, 웹페이지를 분석해서 자동으로 감시, 제어, 예약 등을 할 수 있는 부류인데요.
그냥 재미삼아 만드는 것이니 만큼 완성계획은 딱히 없어요 ㅎㅎ

그나저나 어떤 일이 있었냐면, form data를 이용해서 post 방식으로 전달하는 부분을 구현하던 중이었습니다. 예를 들면, 인터넷하다가 로그인창 같은데서 로그인 하는 것을 PC 프로그램 내부에서 진행하는 그런 것이죠.
로그인에만 해당되는 것이 아니라, 사이트에서 지원해주는 갖가지 검색이나 신청 서비스를 요청해야하기 때문에 반드시 구현되어야 하는 부분입니다.

제가 원하는 대상 사이트에다 엄한 짓을 계속할 수 없어서, 웹서버가 깔린 테스트 서버에다 작업을 해봤었습니다. form data로 보내는 값을 가공없이 재출력하도록 하여, 그걸 프로그램이 다시 갖게 하는 것이죠.
별 어려울 것 없고, 기본되는 소스는 MS 홈피에 제공되고 있기 때문에 몇가지 예외적인 경우만 고려한다면 간단한 부분입니다.

아니 그런데, 컴퓨터가 미친 건지 제가 미친 건지 헷갈릴 정도로 원하는 동작을 안하는 겁니다. 아무리 해도 제가 보낸 값을 웹서버에서 출력하도록 해봐도 아무 것도 나오질 않네요.

소스 문제인가 싶어서 유사하게 작성해놓은 다른 소스를 찾아봐도 결론은 같은 내용이고, 혹시나 유니코드 문제인가 싶어서 그것도 이래저래 다양하게 변경해봤습니다.

post 가 아닌 get 방식으로 했더니 잘 되고, post 로 하면 안되고...

 

그러다 패킷을 확인해봐야겠다 싶어 프로그램을 찾아봤습니다. 쉐어웨어 같은 걸 써야하나 싶었는데, MS 사에서 무료제공하는 프로그램이 있네요. 패킷이라고 해서 RAW로만 나오는게 아니라 파싱되어 제공되기 때문에 알아보기도 편합니다.

 

 

프로그램명은 Network Mornitor v4.3 입니다.

MS 사에서 검색해서 받으셔도 되구요.
MS site : http://www.microsoft.com/en-us/download/default.aspx

검색했을 때 나오는 페이지는 현재 아래 링크와 같습니다.
NM Download : http://www.microsoft.com/en-us/download/details.aspx?id=4865

 

그냥... 그렇다구요...
이 프로그램 괜찮다구요... ㅎㅎ
뭐~ xxx 프로그램 크랙해서 쓰면 된다던가 이런 댓글을 하지말아주세요.

 

아, 그러고 보니 서두에서 꺼냈던 이야기의 결론이 없었네요.

제 경우에 문제가 되었던 것은 PC 프로그램이 아니었습니다.
form data를 post로 받았을때를 처리하도록 가상으로 만든, 테스트용 웹사이트의 웹프로그래밍 소스가 문제였습니다.
즉, 웹서버로 제대로 전달받았음에도 전달받은 변수를 가져오는 녀석을 제대로 출력하지 못했기 때문에, 전달을 잘못한 것이라 착각했던 것이죠.

PHP를 사용했었는데, 평소에는 $_SERVER["REQUEST_URI"], $_SERVER["QUERY_STRING"], 혹은 $id 이렇게 사용했었는데, 서버셋팅이 문제인건지 $id 이런건 안먹고 $_GET['id'] 이렇게 해야 되더라구요.
그래서 그대로 둔건데 $_GET은 그냥 가져온다는 의미가 아니라 GET/POST의 의미였나봐요. post 방식일때는 $_POST['id']로 해야하는군요.

예전에 PHP 써볼때는 그냥 $id 이렇게 했었던 것 같은데, 이런 것까지 속을 썩이네요.

아무튼, 이번 일은 그냥 헤프닝 & 삽질이었던 걸로.

Posted by 찬이

댓글을 달아 주세요