詳解XMLHTTP中setRequestHeader方法和參數


  一、為何要用到setRequestHeader
通常在HTTP協議里,客戶端像服務器取得某個網頁的時候,必須發送一個HTTP協議的頭文件,告訴服務器客戶端要下載什么信息以及相關的參數。而 XMLHTTP 就是通過HTTP協議取得網站上的文件數據的,所以也要發送HTTP頭給服務器。 但是 XMLHTTP 默認的情況下有些參數可能沒有說明在HTTP頭里,這是當我們需要修改或添加這些參數時就用到了
setRequestHeader 方法。

  二、setRequestHeader參數詳解

使用GET下列參數 XMLObject.setRequestHeader ("CONTENT-TYPE", "application/x-www-form-urlencoded" ) 代表的意義:

GET /bb.asp?www=1234 HTTP/1.1 Accept: */* Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) CONTENT-TYPE:application/x-www-form-urlencoded Host:ourys.com Connection: close Cookie: %C3%F7%CC%EC=%B0%CB;ASPSESSIONIDASDBSDRR=BLEDBIBBCGKBJAKJCFEJKGII

  注: 1、CONTENT-TYPE:application/x-www-form-urlencoded含義是表示客戶端提交給服務器文本內容的編碼方式 是URL編碼,即除了標准字符外,每字節以雙字節16進制前加個“%”表示

  2、當然還有其他編碼方式,如:CONTENT-TYPE:multipart/form-data 至於:Content-length 就是表示提交的數據字節大小 http有幾種提交方式,其中比較常用的就是 GET 和 POST

  3、這個標志就放在HTTP頭開頭的地方,這樣講容易理解點 GET 方式是沒有提交內容的,所以 Content-length 在 GET 模式下是無效的. GET 傳參數的方式就是通過虛擬地址傳送,如: GET /bb.asp?www=1234 HTTP/1.1 參數全部就只有 "www=1234" 這么多

  4、如果用POST的話就有些不同,POST是將參數放到HTTP后面的,就以上面的HTTP作范例,用POST的方法傳參數

  POST /bb.asp HTTP/1.1

Accept: */*

Accept-Language: zh-cn

UA-CPU: x86

Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

CONTENT-TYPE:application/x-www-form-urlencoded

Host: ourys.com

Content-length: 8

Connection: close

Cookie: %C3%F7%CC%EC=%B0%CB;ASPSESSIONIDASDBSDRR=BLEDBIBBCGKBJAKJCFEJKGII

www=1234

這時,數據就需要說明字節大小了

至於 Connection: Close,很明顯英文的意思是 連接:關閉 只是客戶端在提交數據時告訴服務器讓誰先關閉連接而已。

  三、PS: setRequestHeader方法

   PS: setRequestHeader方法只是XMLHTTP為添加或修改HTTP頭提供的一個接口方法而已, 至於里面的值則是HTTP協議的含義,當然也可以發自己的東西進去,即使IIS不能識別你的信息也不會報錯 如: setRequestHeader ("MyName", "Supermanking" )

  雖然IIS不會報錯,但這個信息也可以有用,可以在ASP程序里讀取HTTP頭信息分析是否有 MyName: Supermanking 信息,可根據你的需求來做處理

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM