HTTP header

http://blog.chinaunix.net/uid-25018796-id-94904.html

有四种头标:

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

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

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

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

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

<name>:<value><crlf>

其中

name是头标名,大小写敏感

value是头标值;

crlf是回车换行符

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

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

头标

描述

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-Encodingchunked

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



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:客户但浏览器的版本信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值