HTTP的哪个请求头可以在改?可以任意加请求头吗?

flairy 2006-02-20 07:42:42
比如jsp,

response.addHeader("testheader","1");
response.setHeader("content","test");

...
是不是header的name必须是协议定义好的?

可不可以把一些信息通过HTTP请求头来传递? 像POST or GET的parameter那样
...全文
765 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2006-02-21
  • 打赏
  • 举报
回复
利用HttpRequestWrapper包,你可以改所有东西

比如

public class MyRequest extends HttpServletRequestWrapper {

public MyRequest(HttpServletRequest request) {
super(request);
}

public String getHeader(String name) {
if ("name".equals(name)) {
return "xxxxxxxx";
}
return super.getHeader(arg0);
}
}
myy 2006-02-21
  • 打赏
  • 举报
回复
test2.jsp是从另一个jsp里redirect过来的, getHeader("referer") 却得到null
----------
一般的,在页面上点链接、通过js跳转、表单提交等,浏览器都会自动发送referer头(值为当前页面url),但redirect的时候,浏览器的处理方式可能不一样,并没有发送referer头,因此通过head无法获取。
flairy 2006-02-21
  • 打赏
  • 举报
回复
多谢指教。
我现在要做的事情, 是如何在head里得到前一个page的URL, 首先想到referer。
比如test2.jsp是从另一个jsp里redirect过来的, getHeader("referer") 却得到null, 这种情况下怎样在head里得到前一个page的URL呢?
kingofhawks 2006-02-21
  • 打赏
  • 举报
回复
myy() ( )所言正确,看看HTTP协议吧呵呵
myy 2006-02-20
  • 打赏
  • 举报
回复
是不是header的name必须是协议定义好的?
--------------------
不一定,但是,浏览器只能识别rfc文档规定的一些通用的head,相应的,浏览器
也只会发送一些rfc文档规定的一些通用的head到服务器。如果是你自己写的程序
做客户端,不是浏览器,那你可以随便写了----只要规定好含义就行了。


可不可以把一些信息通过HTTP请求头来传递? 像POST or GET的parameter那样
--------------------
可以,同上。

纠正一点,浏览器POST时,parameter一般不是在HTTP请求头中,而是在实体数据中。
qinxiaolin 2006-02-20
  • 打赏
  • 举报
回复
HTTP请求应该是跟你的服务器配置有关的!
服务器根据 发送请求头 来确定该请求是否合法!合法,则执行请求动作!

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧