HTTP GET 메소드에 관련된 질문을 드립니다.
글쓴이: euka1 / 작성시간: 월, 2005/05/09 - 2:05오후
http 서버에 있는 파일을 GET 메소드를 이용하여 다운받는 조그만 프로그램을 만들려고 합니다.
그냥 일반적인 TCP/IP 소켓 프로그래밍으로 만들려고 하는데요.
해당 파일의 주소가 다음과 같은 경우...
http://211.39.23.200:8888/down.zip
먼저...
211.39.23.200이라는 서버에 8888번 포트로 connection 요청을 합니다.
그 다음에...
파일 요청을 아래와 같이 하죠.
"GET http://211.39.23.200:8888/down.zip HTTP/1.1"
위의 문자열을 서버로 보냅니다.
write( sockfd, strRequest, strlen(strRequest));
이런경우.. 제 생각이라면...
바로 HTTP 서버로부터 response가 와야 정상인것 같은데...
response가 오지 않네요.
read에서 무한 블럭 상태로 그냥 멈춰 있네요.
write 시에 http에 요청하는 문자열이 잘못된것 같은데...
혹시 원인을 아시는 분은 답변 부탁 드립니다.
조금 급하거든요. ㅠㅠ
Forums:
"GET http://211.39.23.200:8888/down.zip
"GET http://211.39.23.200:8888/down.zip HTTP/1.1\r\n"
"\r\n"
해보세요
가자 해외로 ~ .. 돈 벌러.
"\r\n" 를 마지막에 한번 더보내란 말씀이신가요?
"\r\n"
를 마지막에 한번 더
보내란 말씀이신가요?
감사합니다.
kicom95
님 덕분에 해결했습니다.
정말 감사 드립니다.
ㅎㅎㅎ
하하... 미칠것입니다.
전 하다가 포기했습니다.
wget 참조해도 소스들이 뒤엉키고 이해가 않되서....
문제는 헤더와의 구분이 모호 합니다.
빈줄 구분도 어렵구요.
성공하시면 소스좀 올려주십시오.
아.. 헤더 몇개 더 보내야 할겁니다.
"GET http://211.39.23.200:8888/down.zip HTTP/1.1\r\n"
host: aaaa.com 이렇게 호스트도 줘야 할겁니다.
get 도 틀렸네요.
get /down.zip
host: 211.39.23.200
port: 8888
이렇게 해야 할겁니다.
잘 모르시면 firefox 올려서 다운 받고 헤더 보시면 나올겁니다.
HTTP 1.0 이전:[code:1]GET <URL>[
HTTP 1.0 이전:
GET <URL>
한줄만 날리면 됩니다.
HTTP 1.1 이후:
헤더를 포함하고(host: 는 필수) 요청 헤더가 끝나면 빈줄을 넣어야 합니다.
--
익스펙토 페트로눔
이런건 질문하고 답 기다리거나 패킷 캡쳐해서 보는 것 보다는 정공
이런건 질문하고 답 기다리거나
패킷 캡쳐해서 보는 것 보다는
정공법이 더 편한 경우가 아닐지요.
에러 요인도 줄이고..
http://www.faqs.org/rfcs/rfc2616.html
-------------------------
The universe is run by the complex interweaving of three elements: matter, energy, and enlightened self-interest.
- G'kar, Babylon 5
댓글 달기