什么是X-Forwarded-ProtoHTTP标头值的完整规范?
我正在尝试将X-Frame-Options标头(值设置为"DENY")添加到我的MVC 4应用程序中.我环顾四周,似乎这是为所有页面添加最干净的方式.
但是,当我添加此代码时,它将无法构建.有错误OnResultExecuting的
"找不到合适的方法来覆盖."
public class XframeOptions : ActionFilterAttribute
{
public override void OnResultExecuting(
System.Web.Mvc.ResultExecutingContext filterContext)
{
filterContext.HttpContext.Response.AddHeader(
"X-Frame-Options", "DENY");
}
}
Run Code Online (Sandbox Code Playgroud)
如果这是最干净的方法,我该如何解决此错误?有没有更好的方法来处理MVC 4应用程序?
我有一个应用程序,它为网页提供了很长的参数列表,所以我必须使用POST而不是GET.问题是,当页面显示并且用户单击"后退"按钮时,Firefox会显示警告:
要显示此页面,Firefox必须发送将重复之前执行的任何操作(例如搜索或订单确认)的信息.
由于应用程序以这样的方式构建,即返回是一种非常常见的操作,这对最终用户来说真的很烦人.
基本上,我想按照这个页面的方式来做:
http://www.pikanya.net/testcache/
输入内容,提交,然后单击"上一步"按钮.没有警告,它只是回去了.
谷歌搜索我发现这可能是Firefox 3中的一个错误,但我想以某种方式获得这种行为,即使他们"修复"它.
我想这可能是一些HTTP标题可行,但究竟是哪个?
这个陈述是否正确?HTTP GET方法始终没有消息体.我没有发现RFC2616的任何部分明确说出这一点.
如果不是这样,那么Http GET请求在什么情况下会包含一个消息体
使用curl命令行工具,是否可以echo打印或查看请求,而不是发送请求?有点像-n选项吗?我想看到请求标题和正文,以及包含的任何其他内容.除了标题和正文之外还有其他什么吗?
困惑/受到对我的问题的评论的启发搜索引擎是否尊重HTTP标题字段"Content-Location"?,我想知道,Content-LocationHTTP中头字段的确切目的是什么以及如何使用它.
经过几次测试后,我开始得出这样的结论:浏览器在从https网页点击http页面时不会发送Referer HTTP标头.
这有什么安全理由?是在标准的某个地方定义的吗?
在IIS 7.0 integrated mode使用Response.ClearHeaders()IIS 删除所有标题之后,会添加一些其他标题Server,X-Powered-By并向黑客显示良好的信息.如何阻止此行为(考虑我仍然需要添加自定义标头)?
我实际上正在对ExpressJS服务器进行一些负载测试,我注意到服务器发送的响应包括一个"Connection:Keep-Alive"标头.据我所知,连接将保持打开状态,直到服务器或客户端发送"Connection:Close"标头.
在一些实施方式中,"Connection:Keep-Alive"标题出现"Keep-Alive"标题,设置连接超时和通过该连接发送的连续请求的最大数量.
例如:"Keep-Alive:timeout = 15,max = 100"
有没有办法(并且相关)在Express服务器上设置这些参数?
如果没有,你知道ExpressJS如何处理这个问题吗?
编辑: 经过一些调查,我发现默认超时是在节点标准http库中设置的:
socket.setTimeout(2 * 60 * 1000); // 2 minute timeout
Run Code Online (Sandbox Code Playgroud)
为了改变这个:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end("Hello World");
}).on('connection', function(socket) {
socket.setTimeout(10000);
}).listen(3000);
Run Code Online (Sandbox Code Playgroud)
无论如何,对我来说,服务器没有向客户端发送有关其超时的任何提示仍然看起来有点奇怪.
编辑2: 感谢josh3736的评论.
setSocketKeepAlive与HTTP keep-alive无关.它是一个TCP级别选项,允许您检测连接的另一端是否已消失.
要在我的ASP.NET应用程序中获取客户端IP地址,我使用了X-Forwarded-For,并从列表中获取第一个IP地址(根据我找到的信息,有一个客户端,proxy1,proxy2 ..).但我最近听说最好从X-Forwarded-IP头获取此信息,因为X-Forwarded-For中的客户端IP地址可以通过代理修改,有什么区别,我应该使用哪个地址?
http-headers ×10
http ×3
asp.net ×1
asp.net-mvc ×1
c# ×1
curl ×1
echo ×1
express ×1
forms ×1
httprequest ×1
https ×1
iis ×1
keep-alive ×1
node.js ×1
php ×1
post ×1
proxy ×1
request ×1
security ×1