2012-03-28 6 views
0

다음 http 요청을 Google에 보내면 잘못된 요청 페이지가 반환되었습니다. 내 요청에 잘못이 있었나요? C++로 프록시 서버를 구현하고있었습니다. 클라이언트의 요청을 연결하려는 서버로 리디렉션했습니다. 리디렉션하기 전에 요청에 "\ r \ nConnection : close"를 삽입했습니다. 내가 잘못 삽입 한 위치가 있었습니까? 감사. 사양에 따라 올바른이없는 당신이에있는 일부 서버는 실제로 응답 (그러나 구글의) 경우에 나는 놀라지 않을 것이지만,http 클라이언트가 google에서 잘못된 요청 페이지를 받았다

@@@GET http://www.google.com.tw/ HTTP/1.1 
Host: www.google.com.tw 
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:11.0) Gecko/20100101 Firefox/11.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: zh-tw,en-us;q=0.7,en;q=0.3 
Accept-Encoding: gzip, deflate 
Proxy-Connection: keep-alive 
Connection: close 
Cookie:*** 

@@@ 

답변

0

를 (I 요청을 둘러싸고 "@@@"를 사용) .

  • 프록시 연결의 이름은 not needed at all입니다.

  • GET 요청은 절대 경로가 아닌 상대 경로를 제공해야합니다. 명확하게하기 위해서 : 클라이언트는 GET 헤더에 전체 주소를 보내야하지만, 프록시는 그것을 추출하고 GET이 경로를 전달하도록 다시 작성해야하며, 호스트 헤더는 호스트 이름을 전달합니다.

몇 CRLF의 다음 요청을 붙여 간단하게 telnet google.com 80 간단한 실험의 몇 가지를 시도하고 복사합니다.