我可以在HTTP request
制作自己的标题吗?
e.g。
这是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 for my english ...;)
答案 0 :(得分:4)
您是否正在尝试重新发明Cookie?
你知道,饼干就是这样。服务器在标头中发送的值,以及客户端将随每个请求返回的值。
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以编写一个小代理应用程序。 它接收客户端请求,添加适当的属性并将其转发给服务器。 我建议使用此解决方案,因为根据我的经验,您需要丰富http标头内容以实现多个Web应用程序之间的集成。
我刚刚描述的行为是由Tivoli Access Manager实现的,用于将LDAP检索的信息转发到后端应用程序。服务器
很抱歉,如果我的回答看起来不合适。
答案 3 :(得分:0)
是的,我相信你可以。尽量确保您没有重新使用已经使用过的标题。另请注意,出于安全原因,Web服务器和代理可能会过滤您的标头。
事实上,我认为jsp 中的会话是使用特殊标题创建的......
答案 4 :(得分:0)
似乎您的问题是关于请求中的标头,即从客户端进入服务器。您无法强制客户端从服务器端发送任何自定义标头。
使用response.setHeader("Name", "John")
只会发送此标头作为回应,但客户不会将其发回给您。遗憾。
答案 5 :(得分:0)
您可以使用XMLHttpRequest执行此操作,但不能使用正常的浏览器请求。
答案 6 :(得分:0)
是的,你可以。但是,你为什么要这样做?
HTTP协议允许您设置自己的自定义标头。但是,这也意味着您的服务器需要了解您的自定义标头。因此,此解决方案仅适用于您的自定义应用程序,而不是全面的应用程序。除非您准确记录所有这些自定义,否则它可能会使将来维护/调试更加困难。
我会说wmeyer所说的,使用cookies。