HTTP header

有四种头标:

1. 通用头标 既可用于请求有可用于响应,并且是作为一个整体而不是特定资源 与事务相关联。

2. 请求头标 允许客户端传递关于自身信息和希望的响应形式。

3. 响应头标 服务器用于传递自身信息和响应。

4. 实体头标 定义被传送资源的信息。既可用于请求,也可用于响应

头标以如下的单行形式发送。

<name>:<value><crlf>

其中

name是头标名,大小写敏感

value是头标值;

crlf是回车换行符

JSP页面可以使用request.getHeader()方法读取特定的头标值。也可以使用response.setHeader方法设置头标值。

以下是HTTP/1.1中用到的头标:

[table]
|头标| 描述|
|Content-Range|随部分实体一同发送;标明被插入点的低位与高位字节的偏移,也标明此实体的总长度。例如:Content-Range:1001-2000/5000|
|Content-Type|表明发送或接受的实体的MIME类型。如:Content-Type:text/html|
|Date|发送HTTP信息的日期,如:Date:Mon.16.Mar 2000 18:22:22 GMT|
|Etag|一种实体头标,它向被发送的资源分配唯一的标识符,对于可以使用多种URL请求的资源,Etag可以确定实际被发送的资源是否为同一资源。例如:Etag:293f-334f-1547812|
|Expires|指定实体的有效期。例如:Expires: Mon.16.Mar 2000 18:22:55 GMT|
|From|请求头标。给定控制用户代理的人工用户的电子邮件地址。例如:From:rolia_cn@hotmail.com|
|Host| 被请求资源的主机名(以及可选的端口号)。对于使用HTTP/1.1的请求而言,此域是强制性的。例如:Host:localhost|
|If-Modified-Since|如果包含了GET请求,导致该请求条件性的以来于资源上次修改日期。如果出现此头标,并且自指定日期以来。此资源已经被修改,应该返回一个304响应代码。例如:If-Modified-Since: Mon.16.Mar 2000 18:22:22 GMT|
|If-Match| 如果包含于一个请求,指定一个或多个请求实体标记(见ETag)。只发送其Etag与列表中标记匹配的资源。如:If-Match: 293f-334f-1547812|
|If-None-Match| 如果包含于一个请求,指定一个或多个请求实体标记(见ETag)。只有当资源的Etag不与列表中的任何一个条目匹配,操作才执行。如:If-None-Match: 293f-334f-1547812|
|If-Range| 指定资源的一个实体标记(见Etag),客户端已经拥有此资源的一个拷贝。必须与Range头标一同使用。如果此实体自上次被客户端检索以来还不曾被修改过。那么,服务器将只发送指定的范围。否则它将发送整个资源。如:Rang:byte=0-454 If-Rang: 293f-334f-1547812|
|If-Unmodified-Since| 与If-Modified-since相似,不过是在相反的意义上。只有自指定的日期来,被请求的实体还不曾被修改过,才会返回此实体。例如:If-Unmodified-Since: Mon.16.Mar 2000 18:22:22 GMT|
|Last-Modified| 指定被请求资源上次被修改的日期和时间。如:Last-Modified: Mon.16.Mar 2000 18:22:22 GMT|
|Location|对于一个已经移动的资源。用于重定向请求者至另一个位置。与状态编码302(暂时移动)或者301(永久移动)配合使用。如:Location:http://localhost/index.jsp|
|Max-Forwards| 一个用于TRACE方法的请求头标,指定代理或网关的最大数目。该请求通过网关才得以路由。在通过请求传递之前,代理或网关应该减少此数目。如:Max-Forwards:3|
|Parama|通用头标。它发送实体相关的信息。如:Parama:no-cache|
|Proxy-Authenticate| 类似于WWW-Authenticate,但是有意请求只来自请求链(代理)的下一个服务器的认证。如:Proxy-Authenticate:Basic SDF1SF121EW=|
|Public| 列表显示服务器所支持的方法集。如:Public:OPTIONS,MGET,MHEAD,GET,HEAD|
|Range| 指定一种度量单位和一个部分被请求资源的偏移范围。如:Range:bytes=206-5513|
|Referer| 一种请求头标域,标明产生请求的初始资源。对于HTML表单,它包含此表单的Web页面的地址。如:Referer: http://localhost/search.html|
|Retry-After| 响应头标域,由服务器和状态编码503(无法提供服务)配合发送,以标明再次请求之前应该等待多长时间。此时间既可以是一个日期,也可以是一种一秒为单位的数目。如:Retry-After:8 Retry-After: Mon.16.Mar 2000 18:22:22 GMT|
|Server| 一种表明Web服务器软件及版本号的头标。如:Server:Apache/1.3.3(Win)|
|Transfer-Encoding| 通用头标,标明对应该被接受方反向的信息体实施变换的类型。如:Transfer-Encoding:chunked|
|Update| 允许服务器指定一个新的协议或新的协议版本,与响应码101(切换协议)配合使用如:Update:HTTP/2.0|
|User-Agent| 定义用于产生请求的软件类型(典型的,如Web浏览器)。如:User-Agent=Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Poco 0.31; InfoPath.2)|
|Vary| 响应头标。用于表示使用服务器驱动的协商从可用的响应表示中选择响应实体。例如:Vary:*|
|Via| 一个包含所有中间主机和协议的通用头标。用于满足请求。如:Via:1.0 fred.com,1.1 wila.com|
|Warning| 响应头标。提供关于响应状态的补充信息。如:Warning: 99 www.google.com Piano needs turnig|
|WWW-Authenticate|一个提示用户代理提供用户名和密码的响应头标。与状态码401(未授权)配合使用。希望响应一个授权头标。如:www-authenticate: Basic realm=rolia|
[/table]

REMOTE_ADDR – 访问客户端的 IP 地址
HTTP_VIA – 如果有该条信息, 就证明您使用了代理服务器,代理服务器的地址就是后面的数值。
HTTP_X_FORWARDED_FOR – 如果有该条信息, 也证明了您使用了代理服务器代理服务器的地址就是后面的数值。
HTTP_ACCEPT_LANGUAGE – 您浏览器所使用的语言集
HTTP_USER_AGENT – 对大多数浏览器而言,这个值一般是 Mozilla. 可能还会包括浏览器的类型和版本号以及操作系统信息。
HTTP_HOST – 网页服务器名称

使用不同种类代理服务器,上面的信息会有所不同:

一、没有使用代理服务器的情况:

REMOTE_ADDR = 您的 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示

二、使用透明代理服务器的情况:Transparent Proxies

REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 您的真实 IP

这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。

三、使用普通匿名代理服务器的情况:Anonymous Proxies

REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 代理服务器 IP

隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。

四、使用欺骗性代理服务器的情况:Distorting Proxies

REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 随机的 IP

告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。

五、使用高匿名代理服务器的情况:High Anonymity Proxies (Elite proxies)

REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示

完全用代理服务器的信息替代了您的所有信息,就象您就是完全使用那台代理服务器直接访问对象。

除此之外,proxy judges 还提供了其他可供参考的判定信息,您可以在实践中加以利用。

HTTP HEADER 变量意义一览表
REMOTE_ADDR:扔出REQUEST的客户端IP地址(也可能是路由上最后一个Proxy)
REMOTE_HOST: 扔出REQUEST的客户端主机名(也可能是路由上最后一个Proxy)
REMOTE_USER:扔出REQUEST的客户端认证用户名
REMOTE_PORT:扔出REQUEST的客户端端口号
REMOTE_IDENT:扔出REQUEST的客户端用户名(支持IDENT协议的时候才有用)

HTTP_X_FORWARDED_FOR:接续的原始IP地址
HTTP_VIA:Proxy的信息
HTTP_FORWARDED:Proxy的URI、以及客户端的全域名(FQDN)
HTTP_CACHE_CONTROL:Cache的控制信息(比如 max-age=259200 最长时间)
HTTP_PROXY_CONNECTION:Proxy的接续状态
HTTP_SP_HOST:接续的原始IP地址
HTTP_CACHE_INFO:Cache信息
HTTP_CLIENT_IP:客户端IP(TrafficServer或者NetscapeProxy会使用此变量)
HTTP_MAX_FORWARDS:最多路经几个Proxy

HTTP_ACCEPT: 客户端的浏览器支持的MIME种类[cchere.net 西西河 你克我服]
HTTP_ACCEPT_CHARSET:客户端浏览器支持的字符集
HTTP_ACCEPT_ENCODING:客户端浏览器支持的编码方式(比如gzip,deflate等等)
HTTP_ACCEPT_LANGUAGE:客户端浏览器支持的语种(比如cn,en等等)
HTTP_CONNECTION:HTTP接续的状态(比如keep-alive等等)
HTTP_COOKIE:对当前URL所保留的相关Cookie信息
HTTP_FROM:客户端浏览器所设定的email地址
HTTP_HOST:客户端所要访问的主机名
HTTP_PRAGMA:Cache模式(对HTTP 1.0有效)
HTTP_REFERER:本次访问前的上次访问URL地址
HTTP_UA_CPU:客户端的CPU信息
HTTP_UA_OS:客户端的OS信息
HTTP_USER_AGENT:客户但浏览器的版本信息



原文地址 http://www.programfan.com/blog/article.asp?id=24720
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值