尝试发送GET请求,获取301到同一地址

时间:2014-12-08 11:13:52

标签: c++ sockets http redirect

我正在尝试使用套接字在C ++中发送HTTP GET请求,而我正在回复301 Moved perlyly,但是我要求的地址相同!

这是我的GET请求:

GET /watch?v=1cQh1ccqu8M HTTP/1.1
Host: www.youtube.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Firefox/29.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:en-US;q=0.6,en;q=0.4
Connection: keep-alive

所有\r\n都完全到位,因为这个GET请求不久前曾经为我工作过,而且我从未接触过它......

我从youtube获得的回复:

HTTP/1.1 301 Moved Permanently
Date: Mon, 08 Dec 2014 11:04:10 GMT
Server: gwiseguy/2.0
Content-Type: text/html; charset=utf-8
Expires: Tue, 27 Apr 1971 19:44:06 EST
Location: https://www.youtube.com/watch?v=1cQh1ccqu8M
X-XSS-Protection: 1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube
Cache-Control: no-cache
Content-Length: 0
P3P: CP="This is not a P3P policy! See http://support.google.com/accounts/bin/answer.py?answer=151657&hl=en for more info."
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.002

根据他们告诉我检查http://support.google.com/accounts/bin/answer.py?answer=151657&hl=en的页面,它说我现在需要添加某种cookie?

我总是在不发送任何cookie的情况下发送此请求,所以我有点困惑......

1 个答案:

答案 0 :(得分:2)

  

me:您的原始请求是否真的使用了https而不是简单的http ...

     

@Amit:不,我正在连接到www.youtube.com',然后我发送了GET请求

然后你应该仔细看看重定向:

Location: https://www.youtube.com/watch?v=1cQh1ccqu8M

正如您所看到的,这会将您重定向到同一主机,同一页面,但不同的协议:您必须使用https而不是http。