fsockopen讀取、發送cookie及注意事項

1、首先分析一下帶cookie的HTTP收發協議的格式。
服務器發cookie給客戶端時:

HTTP/1.1 200 OK
Date: Sat, 16 Oct 2010 01:11:21 GMT
Server: Apache/2.2.15 (Unix) mod_ssl/2.2.15 OpenSSL/0.9.8o PHP/5.2.12
X-Powered-By: PHP/5.2.12
Set-Cookie: username=admin
Set-Cookie: password=admin; expires=Sat, 16-Oct-2010 02:22:21 GMT
Content-Length: 332
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/xml; charset=utf-8

This is data

可以看到http頭有Set-Cookie這個命令,當瀏覽器分析到這個命令時,就會在本地電腦上創建一個COOKIE文件並把這兩個參數寫入文件。
瀏覽器訪問一個網站時,會在存放cookie的目錄查找是否有這個網站的cookie文件,如果有的話,就會讀取cookie文件的內容並在http請求頭裏加上、發出去。格式如下:

GET /sanex/images/button_bg.gif HTTP/1.1
Accept: */*
Referer: http://10.144.99.114/sanex/modules/subscribemanager/usermanager.html
Accept-Language: zh-cn
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Accept-Encoding: gzip, deflate
Host: 10.144.99.114
Connection: Keep-Alive
Cookie: username=admin; password=admin

data

[b]這裏需要注意的是:HTTP協議裏,http頭和數據之間的間隔是一個空行。
所有發HTTP頭的時候,一定要在頭的結束加兩個換行,否則會出錯。[/b]

代碼示例見:[url]http://baiyuxiong.iteye.com/blog/786214[/url]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章