标签: http-headers

如何设置cookie然后在PHP中重定向?

在做了一些处理之后,我想为用户输入设置一个cookie值,然后将它们重定向到一个新页面.但是,cookie没有设置.如果我注释掉重定向,则cookie已成功设置.我认为这是某种类型的标题问题.这种情况的最佳解决方法是什么?

if($form_submitted) {
    ...
    setcookie('type_id', $new_type_id, time() + 60*60*24*30);
    header("Location: $url");
    exit;
}
Run Code Online (Sandbox Code Playgroud)

请注意,setcookie true在任何一种情况下都会返回,我没有收到任何错误/警告/通知.

编辑:我使用的是Unix/Apache/MySQL/PHP

php cookies http-headers

41
推荐指数
1
解决办法
6万
查看次数

使用HTTP标头"Cache-Control:public"有什么风险?

Cache-ControlHTTP/1.1头部可以指定最大年龄以及所述高速缓存的内容是否可以是公共或私有的,指示中间高速缓存是否能够高速缓存的内容.

例如,Ruby on Rails expires_in()默认使用Cache-Control: private

将其公开的风险是什么?如果它是公共的,哪些额外的地方可以缓存内容 - 例如它是代理服务器吗?

如果网站像Amazon.com,但用户是匿名的,那么可能没有太多的隐私问题怎么办?如果用户登录,可能会出现隐私问题,因为数据通过位置并且数据可见.如果那个位置想要"坏",那么Cache-Control: private无论如何它真的不需要关心.

如果它是一个用户可以登录的网站,但网站只搜索鱼油和维生素等健康产品,等等.在这种情况下,涉及的隐私更少,因为它与Amazon.com不同,在那里有更多种类的产品,例如用户可以真正关心隐私问题的书籍.

话虽如此,有什么额外的优势Cache-Control: public

cache-control http-headers

41
推荐指数
2
解决办法
4万
查看次数

为什么我将mime类型的.csv文件作为"application/octet-stream"?

我正在开发一个必须将excel文件导入MySQL的PHP​​应用程序.所以我需要将excel文件转换为.csv格式.但是当我想要使用它的类型时$_FILE['something']['type'],我会得到application/octet-stream它的mime类型;
我觉得这里有问题.因为我将下面的列表收集为.csv文件mime-type:

text/comma-separated-values,  
text/csv,  
application/csv, 
application/excel, 
application/vnd.ms-excel, 
application/vnd.msexcel
Run Code Online (Sandbox Code Playgroud)

怎么了 ?

php csv file-format http-headers mime-types

41
推荐指数
2
解决办法
5万
查看次数

从PHP中获取当前请求的http标头

是否可以使用PHP获取当前请求的http标头?我不是使用Apache作为Web服务器,而是使用nginx.

我尝试过使用,getallheaders()但我得到了Call to undefined function getallheaders().

php nginx http-headers

41
推荐指数
3
解决办法
6万
查看次数

无法在ajax中处理302重定向,为什么?

我有一个使用Forms Authentication在asp.net mvc中编写的后端服务器.未对用户进行身份验证时,服务器将自动将302重定向发送到"登录"操作并返回"登录"页面.

在客户端,我有一个项目列表.此列表仅供经过身份验证的用户访问.在页面上,我有一个使用Ajax刷新列表的按钮(jQuery的$ .ajax函数).

现在,问题是当身份验证票超时并且用户单击"刷新"按钮时:

  • 我的函数发送一个ajax请求来获取刷新列表
  • 服务器检测到身份验证票证无效并发出302重定向.
  • 浏览器自动处理302响应并强制我的ajax函数向Login操作发送另一个ajax请求,最终结果是状态为200的HTML.我的脚本很混乱,因为列表也是状态为200的HTML.

我想是当身份验证票证超时和用户点击刷新按钮,我应该能够检测并显示一条消息,询问用户登录.

我尝试通过在Login操作中添加自定义标头(IS_LOGIN)来解决此问题,并在我的ajax响应中检查它.但这不是一个好的解决方案.

所以我的问题是:

  • 处理这个问题的最佳方法是什么?
  • 为什么浏览器不让我们的脚本处理302响应?并且只是自动强制我们的ajax创建另一个请求.这是浏览器或jquery库的问题?有什么理由吗?(安全,...)

谢谢你的回复.

javascript ajax asp.net-mvc jquery http-headers

41
推荐指数
1
解决办法
4万
查看次数

HTTP重定向图像可以吗?

返回图像资源时返回301/302/303代码是否可以?我过去做过这个,似乎有效.这是一种很好的做法,是否与大多数浏览器兼容?

redirect image http http-headers

40
推荐指数
3
解决办法
2万
查看次数

使用file_get_contents显示图像

如何在php中显示使用file_get_contents检索的图像?

我需要修改标题,只是回应它或什么?

谢谢!

php file-get-contents http-headers

40
推荐指数
5
解决办法
16万
查看次数

有什么不同:接受编码意味着什么?

google page speed addon告诉我:

The following publicly cacheable, compressible resources should have a "Vary: Accept-Encoding" header:
//some .js and .css files
Run Code Online (Sandbox Code Playgroud)

我不明白这意味着什么.我已经像这样压缩了这些文件:

if (encodings.Contains("gzip") || encodings == "*")
{
    app.Response.Filter = new GZipStream(baseStream, CompressionMode.Compress);
    app.Response.AppendHeader("Content-Encoding", "gzip");
}
Run Code Online (Sandbox Code Playgroud)

这一切似乎都有效.为什么有Vary: Accept-Encoding必要?

c# asp.net http-headers

40
推荐指数
2
解决办法
3万
查看次数

Chrome浏览器未向服务器发送if-modified-since标头

我将这些标头由服务器发送到客户端:

Cache-Control:private
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html
Date:Sun, 27 Nov 2011 11:10:38 GMT
ETag:"12341234"
Set-Cookie:connect.sid=e1u...7o; path=/; expires=Sun, 27 Nov 2011 11:40:38 GMT; httpOnly
Transfer-Encoding:chunked
last-modified:Sat, 26 Nov 2011 21:42:45 GMT
Run Code Online (Sandbox Code Playgroud)

我希望客户端验证文件在服务器上没有更改,如果否则为"304",则发送"200".

Firefox发送:

if-modified-since: Sat, 26 Nov 2011 21:42:45 GMT
if-none-match: "12341234"
Run Code Online (Sandbox Code Playgroud)

为什么Chrome不会在刷新页面时发送相同内容?我正在追踪.Net运行的行为:

context.Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate)
Run Code Online (Sandbox Code Playgroud)

http cache-control http-headers node.js

40
推荐指数
3
解决办法
2万
查看次数

AngularJS中的$ http Auth Headers

我有一个角度应用程序正在命中节点API.我们的后端开发人员已经在API上实现了基本身份验证,我需要在请求中发送auth标头.

我跟踪了:

$http.defaults.headers.common['Authorization'] = 'Basic ' + login + ':' + password);
Run Code Online (Sandbox Code Playgroud)

我试过了:

.config(['$http', function($http) {
       $http.defaults.headers.common['Authorization'] = 'Basic ' + login + ':' +    password);
}])
Run Code Online (Sandbox Code Playgroud)

以及将其直接附加到请求:

$http({method: 'GET', url: url, headers: {'Authorization': 'Basic auth'}})})
Run Code Online (Sandbox Code Playgroud)

但没有任何作用.怎么解决这个?

http-headers angularjs

40
推荐指数
5
解决办法
7万
查看次数