본문 바로가기

Developement/C/C++

HTTP/1.1 의 POST 때문에 살짝 고민한 문제 ....

 이전에 만든 HTTP/1.0 용 socket source 를 POST 까지 되도록 버그를 수정 하면서 HTTP/1.1 으로 호환되게 변경 하다 보니 알수 없는 문제를 격었습니다.

 바로 해당 서버(Apache2 + PHP5) 에서 $_POST[x] method 를 이용해서 넘어 온 것이 없는 듯이 인식 한다는 점 이었습니다만, 여러번의 시도 중 다음 header 인자가 중요하다는 것을 알았습니다.

 바로 Content-Type 이 문제 였습니다.



 PHP5 에서 제대로 POST 되는 내용을 알려면 Content-Type 을 application/x-www-form-urlencoded 로 써야 인식을 하는 것 이었습니다. 기존엔 text/html 로 mime 을 지정해서 보냈더니 이걸 인식 못하는 문제를 이제 인지 할 수 있었다 하겠습니다.


 그 결과 PHP5 에서도 정상적인 동작이 됩니다.


* IP 부분은 개인서버를 돌리는 것이라 가림 *

 임의의 값들을 PHP5 서버로 보내고, 서버상에서는 var_dump($_POST); 를 호출 함 으로서 제대로 넘어 갔는지를 본 결과, 문제없이 넘어 갑니다. WIKI 에 설명된 HTTP/1.1 을 보고 구현한 것인데 실제 적용시엔 수용되는 부분이 달라 꽤 고민을 더 해야 하는 부분으로 보입니다만, 단일 socket 으로 만든 multi-platform 라이브러리로는 꽤 잘 만들어 낸것 같습니다.


 해당 소스는 gthub 에서 얼마든지 받을 수 있습니다.