XMLHTTP中setRequestHeader参数问题
来源:互联网 发布:网络黑客攻击 编辑:程序博客网 时间:2024/06/05 11:32
新加:设置编码方法
setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=gb2312")
语法
oXMLHttpRequest.setRequestHeader(bstrHeader, bstrValue);
参数
bstrHeader 字符串,头名称。
bstrValue 字符串,值。
还是不很明白
1、XMLObject.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
CONTENT-TYPE是什么意思,application/x-www-form-urlencoded是什么意思?
2、下面几句setRequestHeader的含义?
setRequestHeader("Content-type", "application/x-www-form-urlencoded");
setRequestHeader("Content-length", paramsSend.length);
setRequestHeader("Connection", "close");
解答:
通常在HTTP协议里,客户端像服务器取得某个网页的时候,必须发送一个HTTP协议的头文件,
告诉服务器客户端要下载什么信息以及相关的参数,如:
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)
Host: www.e4j.cn:89
Connection: Keep-Alive
Cookie: %C3%F7%CC%EC=%B0%CB;ASPSESSIONIDASDBSDRR=BLEDBIBBCGKBJAKJCFEJKGII
而 XMLHTTP 就是通过HTTP协议取得网站上的文件数据的,所以也要发送HTTP头给服务器。
但是 XMLHTTP 默认的情况下有些参数可能没有说明在HTTP头里,这是当我们需要修改或添加这些参数时就用到了
setRequestHeader 方法。
就比如如果上面这段HTTP头文件内容是 XMLHTTP 提交默认的情况,当使用 setRequestHeader 方法后就这样,如:
XMLObject.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
setRequestHeader "Connection", "close"
这时HTTP头信息就应该是这样了:
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 /*默认情况下Ajax以 Content-Type: text/plain 提交数据,此时服务器将忽略POST实体部分的数据,所以服务端程序无法获取POST数据指定为Content-Type: application/x-www-form-urlencoded才行*/
Host: www.e4j.cn:89
Connection: close
Cookie: %C3%F7%CC%EC=%B0%CB;ASPSESSIONIDASDBSDRR=BLEDBIBBCGKBJAKJCFEJKGII
setRequestHeader方法只是XMLHTTP为添加或修改HTTP头提供的一个接口方法而已,
至于里面的值则是HTTP协议的含义,当然也可以发自己的东西进去,即使IIS不能识别你的信息也不会报错
如: setRequestHeader "MyName", "Supermanking"
虽然IIS不会报错,但这个信息也可以有用,可以在ASP程序里读取HTTP头信息分析是否有
MyName: Supermanking 信息,可根据你的需求来做处理,还有,CONTENT-TYPE:application/x-www-form-urlencoded含义是表示客户端提交给服务器文本内容的编码方式是URL编码,即除了标准字符外,每字节以双字节16进制前加个“%”表示
当然还有其他编码方式,如:CONTENT-TYPE:multipart/form-data
至于:Content-length 就是表示提交的数据字节大小
http有几种提交方式,其中比较常用的就是 GET 和 POST
这个标志就放在HTTP头开头的地方,这样讲容易理解点
GET 方式是没有提交内容的,所以 Content-length 在 GET 模式下是无效的.
GET 传参数的方式就是通过虚拟地址传送,如:
GET /bb.asp?www=1234 HTTP/1.1
参数全部就只有 "www=1234" 这么多//估计使用get传参数是直接加在www=1234后面的
如果用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: www.e4j.cn:89
Content-length: 8 //估计HTTP报文的数据部分
Connection: close
Cookie: %C3%F7%CC%EC=%B0%CB;ASPSESSIONIDASDBSDRR=BLEDBIBBCGKBJAKJCFEJKGII
www=1234
这时,数据就需要说明字节大小了
至于 Connection: Close,很明显英文的意思是 连接:关闭
只是客户端在提交数据时告诉服务器让谁先关闭连接而已。
有些是自己的注解 转原文链接
- XMLHTTP中setRequestHeader参数问题
- XMLHTTP中setRequestHeader参数问题
- XMLHTTP中setRequestHeader参数问题
- XMLHTTP中setRequestHeader参数问题
- XMLHTTP中setRequestHeader参数问题
- XMLHTTP中setRequestHeader参数问题
- XMLHTTP中setRequestHeader参数问题
- XMLHTTP中setRequestHeader参数问题
- XMLHTTP中setRequestHeader参数问题
- XMLHTTP中setRequestHeader方法和参数
- ajax+php实现用户登录中的问题(1)略谈XMLHTTP中setRequestHeader方法和参数(转)
- XMLHTTP中setRequestHeader()方法解析
- 不可或缺的xmlhttp.setRequestHeader()
- 不可或缺的xmlhttp.setRequestHeader()
- 不可或缺的xmlhttp.setRequestHeader()
- use xmlhttp's getResponseHeader and setRequestHeader method
- setRequestHeader
- xmlHttp.open方法中参数get和post
- 如何用wireshark来解析出PDCP-LTE格式,即把PDCP报文突出到wireshark
- Struts表单传值
- c++中的初始化
- JQuery之为某个div添加行样式
- Irony-server 编译的方法
- XMLHTTP中setRequestHeader参数问题
- 概率性的bug比较恼人(软件质量不是一句废话)
- UVA 1329 - Corporative Network(带权并查集)
- Ogre1.7.2 + CEGUI0.7.5配置
- 南阳766 想好久都错,原来可以这样
- 黑马程序员_java基础篇之网络编程
- 进制转换
- Redhat中设置环境变量PATH的方法
- hdoj 1492 The number of divisors(约数) about Humble Numbers 【数论】【质因子分解 求和】