2009-05-17 57 views
1

我可以在HTTP request中制作我自己的标题吗?我可以做我自己的HTTP标头属性吗?

例如 这是normal HTTP request

GET/HTTP/1.1 
Host: google.com 
User-Agent: Mozilla/5.0 (Windows; U; Windows NT x.x; xx; rv:x.x.x.x) xxx  Firefox/3.0.10 (.NET CLR 3.5.30729) 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: xx,en-us;q=0.7,en;q=0.3 
Accept-Encoding: gzip,deflate 
Accept-Charset: windows-1250,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 300 
Connection: keep-alive 

,这是头与我的“属性”

GET/HTTP/1.1 
Host: google.com 
User-Agent: Mozilla/5.0 (Windows; U; Windows NT x.x; xx; rv:x.x.x.x) xxx  Firefox/3.0.10 (.NET CLR 3.5.30729) 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: xx,en-us;q=0.7,en;q=0.3 
Accept-Encoding: gzip,deflate 
Accept-Charset: windows-1250,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 300 
Connection: keep-alive 
Name: John 

,我会在服务器响应有“属性”。我将使用HTTP报头的会话属性而不是 “attrubutes” ......

BTW.Sorry,我的英语...;)

+4

请注意,按照惯例,您应该为X定制自定义标题名称。也就是说,称它为X-Name,而不仅仅是名称。 – Stephan202 2009-05-17 18:38:29

回答

0

是的,我相信你可以。尽量确保你没有重复使用某人已经使用的标题。另外请记住,出于安全原因,Web服务器和代理可能会过滤您的标头。

其实,我觉得在JSP 会话都是在特殊的头创建 ...

0

看来你的问题是有关的报头REQUEST,即从客户端来的服务器。您不能强制客户端从服务器端发送任何自定义标头。

使用response.setHeader("Name", "John")将只发送此标题作为回应,但客户端不会将发回给您。抱歉。

0

您可以使用XMLHttpRequest完成此操作,但不能使用正常的浏览器请求。

4

您是否在尝试重新创建cookie?

你知道,饼干就是这样。服务器在标题中发送的值,并且客户端将随每个请求一起返回。

0

是的,你可以。但是,你为什么想要?

HTTP协议允许您设置自己的自定义标题。但是,这也意味着您的服务器需要了解您的自定义标题。因此,该解决方案仅适用于您的自定义应用程序,而不是整个板子。除非您准确记录所有这些定制,否则它可能会使今后的维护/调试更加困难。

我会第二个什么wmeyer说,使用cookies。

1

你可以写一个小代理应用程序。 它接收到客户端请求,添加适当的属性并将其转发给服务器。 我建议这个解决方案,因为根据我的经验,碰巧需要丰富http头内容以实现多个Web应用程序之间的集成。

我刚刚描述的行为由Tivoli Access Manager实例来实现,以将LDAP检索到的信息转发到后端应用程序。服务器。

对不起,如果我的答案看起来没有主题。

相关问题