在winsock下用http协议递交cookie,
首先是我post了自己的用户名和密码,得到这么一个文件头:HTTP/1.1 200 OK
Date: Thu, 13 Nov 2003 09:44:45 GMT
Server: Apache/2.0.48 (Unix) PHP/4.3.4
X-Powered-By: PHP/4.3.4
Set-Cookie: PHPSESSID=b2a1a073deef18e2794e338263887fbe; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=3bf6e92925d476034c9426a73ab14fd0; path=/
Connection: close
Content-Type: text/html; charset=GB2312下面是成功了的正确回答的网页源文件。
这个不带cookie的post是成功的,但是似乎是两个php的会话cookie。
然后我用get方法get其中某个地址:
GET http://www.XXXXXX.com/XXXXXX.php HTTP/1.0
Accept: */*
Cookie: PHPSESSID=b2a1a073deef18e2794e338263887fbe; PHPSESSID=3bf6e92925d476034c9426a73ab14fd0就被提示出错了:
HTTP/1.1 200 OK
Date: Thu, 13 Nov 2003 09:47:57 GMT
Server: Apache/2.0.48 (Unix) PHP/4.3.4
X-Powered-By: PHP/4.3.4
Set-Cookie: PHPSESSID=3bf6e92925d476034c9426a73ab14fd0; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html; charset=GB2312<script>alert('请登陆');window.location='http://www.XXXXXXXXX.com/index.php';</script>
不知道是不是因为两个cookie名字相同?所以就出错了???
首先是我post了自己的用户名和密码,得到这么一个文件头:HTTP/1.1 200 OK
Date: Thu, 13 Nov 2003 09:44:45 GMT
Server: Apache/2.0.48 (Unix) PHP/4.3.4
X-Powered-By: PHP/4.3.4
Set-Cookie: PHPSESSID=b2a1a073deef18e2794e338263887fbe; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=3bf6e92925d476034c9426a73ab14fd0; path=/
Connection: close
Content-Type: text/html; charset=GB2312下面是成功了的正确回答的网页源文件。
这个不带cookie的post是成功的,但是似乎是两个php的会话cookie。
然后我用get方法get其中某个地址:
GET http://www.XXXXXX.com/XXXXXX.php HTTP/1.0
Accept: */*
Cookie: PHPSESSID=b2a1a073deef18e2794e338263887fbe; PHPSESSID=3bf6e92925d476034c9426a73ab14fd0就被提示出错了:
HTTP/1.1 200 OK
Date: Thu, 13 Nov 2003 09:47:57 GMT
Server: Apache/2.0.48 (Unix) PHP/4.3.4
X-Powered-By: PHP/4.3.4
Set-Cookie: PHPSESSID=3bf6e92925d476034c9426a73ab14fd0; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html; charset=GB2312<script>alert('请登陆');window.location='http://www.XXXXXXXXX.com/index.php';</script>
不知道是不是因为两个cookie名字相同?所以就出错了???
它抬头就是三句:<?
session_start();
session_destroy();
session_start();
是不是因为这个原因所有产生了两个cookie?
但是我单单把第二个传过去也提示错误啊?
你说的 “
然后我用get方法get其中某个地址:
GET http://www.XXXXXX.com/XXXXXX.php HTTP/1.0
Accept: */*
Cookie: PHPSESSID=b2a1a073deef18e2794e338263887fbe; PHPSESSID=3bf6e92925d476034c9426a73ab14fd0
”
这种HTTP包是通过IE发送出来的吗?我现在有一个问题,希望你能帮我看看:
我做HTTP的协议解析的时候,很少看到HTTP的包头里URL的内容是这种形式的
GET http://www.XXXXXX.com/XXXXXX.php HTTP/1.0
一般都是
GET /XXXXXX.php HTTP/1.0
Host: www.XXXXXX.com这两种URL的形式在RFC2616中也有说明,但我一直都只看到过
GET /XXXXXX.php HTTP/1.0
Host: www.XXXXXX.com
这种形式的,就想知道怎样才能发出
GET http://www.XXXXXX.com/XXXXXX.php HTTP/1.0
这种形式的HTTP包头。
谢谢!MSN:[email protected]