HTTP GET 메소드에 관련된 질문을 드립니다.

euka1의 이미지

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에 요청하는 문자열이 잘못된것 같은데...

혹시 원인을 아시는 분은 답변 부탁 드립니다.

조금 급하거든요. ㅠㅠ

kicom95의 이미지

"GET http://211.39.23.200:8888/down.zip HTTP/1.1\r\n"
"\r\n"

해보세요

가자 해외로 ~ .. 돈 벌러.

euka1의 이미지

"\r\n"
를 마지막에 한번 더
보내란 말씀이신가요?

euka1의 이미지

kicom95
님 덕분에 해결했습니다.
정말 감사 드립니다.
ㅎㅎㅎ

mudori의 이미지

전 하다가 포기했습니다.

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 올려서 다운 받고 헤더 보시면 나올겁니다.

cjh의 이미지

HTTP 1.0 이전:

GET <URL>

한줄만 날리면 됩니다.

HTTP 1.1 이후:

GET /path HTTP/1.1
Host: host.domain
<빈줄>

헤더를 포함하고(host: 는 필수) 요청 헤더가 끝나면 빈줄을 넣어야 합니다.

--
익스펙토 페트로눔

futari의 이미지

이런건 질문하고 답 기다리거나
패킷 캡쳐해서 보는 것 보다는
정공법이 더 편한 경우가 아닐지요.
에러 요인도 줄이고..

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

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.