我正在尝试使用套接字在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的情况下发送此请求,所以我有点困惑......
答案 0 :(得分:2)
me:您的原始请求是否真的使用了https而不是简单的http ...
@Amit:不,我正在连接到www.youtube.com',然后我发送了GET请求
然后你应该仔细看看重定向:
Location: https://www.youtube.com/watch?v=1cQh1ccqu8M
正如您所看到的,这会将您重定向到同一主机,同一页面,但不同的协议:您必须使用https而不是http。