Tag: http headers

Nginx中$ host和$ http_host的区别是什么?

在Nginx中,variables$host和$http_host什么区别。

如何“304未修改”的作品?

如何生成“304未修改”? 浏览器如何确定对http请求的响应是否是304? 它是由浏览器设置还是从服务器发送? 如果通过服务器发送,服务器如何知道caching中可用的数据,又如何将304设置为图像? 我的猜测,如果生成的浏览器 function is_modified() { return get_data_from_cache() === get_data_from_url(); }; function get_data_from_cache() { return some_hash_or_xxx_function(cache_data); } function get_data_from_url() { return some_hash_or_xxx_function(new_data); } function some_hash_or_xxx_function(data) { // do something with data // what is that algorithm.? return result; } console.log(is_modified()); 我依靠第三方API提供商来获取数据,parsing并推送到数据库。 数据在每次请求过程中都可能发生变化,也可能不发生变化,但是标题总是发送200 ,我不想分析,检查DB中最后一个唯一标识符等等,以确定数据的变化,也不直接比较结果我md5() , sha1()和crc32() Hashed结果&工作正常,但想知道algorithm来确定304 。 我想用同样的algorithm来确定数据的变化。

如何使用CSV MIMEtypes?

在我正在处理的Web应用程序中,用户可以单击指向CSV文件的链接。 没有为MIMEtypes设置标题,所以浏览器只是将其呈现为文本。 我想将这个文件作为一个.csv文件发送,所以用户可以用calc,excel,gnumeric等直接打开它。 header('Content-Type: text/csv'); echo "cell 1, cell 2"; 此代码在我的计算机上按预期方式工作(是不是它总是如此?),但在另一台计算机上不起作用。 我的浏览器是FF 3.0.1(在Linux上)的夜间版本。 它没有工作的浏览器是IE 7和FF 3.0(在Windows上) 有没有我不知道的怪癖?

Access-Control-Allow-Credentials头做了什么?

我想了解如何使用CORS,并且对Access-Control-Allow-Credentials头做了什么感到困惑。 文件说 指示凭证标志为true时是否可以显示对请求的响应。 但我不明白什么是“暴露”的意思。 任何人都可以解释这个头被设置为true(与设置为true的凭据标志一起)实际上是什么?

防止后退button显示POST确认警报

我有一个应用程序,提供一长串参数到一个网页,所以我必须使用POST而不是GET。 问题是,当页面显示,用户点击后退button,Firefox显示警告: 要显示此页面,Firefox必须发送信息,以便重复之前执行的任何操作(如search或订单确认)。 由于应用程序的构build方式使得返回是一个相当常见的操作,这对最终用户来说确实很烦人。 基本上,我想按照这个页面的方式来做: http://www.pikanya.net/testcache/ input内容,提交,然后点击返回button。 没有警告,它只是回来。 谷歌search,我发现这可能是Firefox 3中的一个错误,但我想不知怎么得到这种行为,即使他们“修复”。 我想这可能是可以与一些HTTP头,但究竟是什么?

HTTP范围标题

我正在阅读http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35并试图找出如何继续文件下载。 例如,假设一个文件的长度是100个字节,而且我有100个字节。 但是,我不知道预期的文件大小应该是什么,所以我要求该文件并指定一个Range标头,如下所示: Range: bytes=100- 这是一个有效的范围请求?

是否有一个实际的HTTP头长度限制?

我有一个Web应用程序,使用setRequestHeader API向XmlHttpRequest对象添加上下文信息。 我正在使用自定义标题名称(例如X-Foo)和JSON结构化值。 它不是URL QueryString或POST正文的一部分,因为它是有关请求的元信息。 标题值是否有实际的大小限制? 如果我的JSON被截断,它将变成不可parsing的。 我最关心的是Apache 2,Tomcat 6和IIS 7的限制。我做了一个Googlesearchhttp头的长度限制 ,但是其中很多结果看起来有点过时。 用户代理string有多大有一些相关的注释? 但并不像我想的那么具体。 编辑:我刚刚跑过这个类似的问题 – 最大的http头值?

如何使用PHP header()函数POST到页面?

我在这里find了下面的代码,我认为这是我想要的,但是它不起作用: $host = "www.example.com"; $path = "/path/to/script.php"; $data = "data1=value1&data2=value2"; $data = urlencode($data); header("POST $path HTTP/1.1\r\n"); header("Host: $host\r\n"); header("Content-type: application/x-www-form-urlencoded\r\n"); header("Content-length: " . strlen($data) . "\r\n"); header("Connection: close\r\n\r\n"); header($data); 我正在寻找张贴表单数据,而不用发送用户到中间页面,然后使用JavaScript来redirect他们。 我也不想使用GET,所以使用后退button并不容易。 这段代码有什么问题吗? 还是有更好的方法? 编辑我正在考虑头function会做什么。 我以为我可以让浏览器回传数据到服务器,但这不是它的意思。 相反,我在我的代码中find了一种方法,以避免需要一个职位(不打破,只是继续在交换机内的下一个案例)。

检测HTTP POST请求的字符编码

我正在构build一个Web服务,并有一个节点接受一个POST来创build一个新的资源。 资源需要两种内容types之一 – 一种我将要定义的XML格式,或者表单编码的variables。 这个想法是,消费应用程序可以直接POST XML,并从更好的validation等获益,但也有一个HTML接口,将张贴forms编码的东西。 显然,XML格式有一个字符集声明,但是我看不到只是通过查看POST来检测表单的字符集。 从Firefoxforms的典型post看起来像这样: POST /path HTTP/1.1 Host: www.myhostname.com User-Agent: Mozilla/5.0 […etc…] Accept: text/html,application/xhtml+xml, […etc…] Accept-Language: en-gb,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 41 field1=value1&field2=value2&field3=value3 这似乎没有包含字符集的任何有用的指示。 从我所看到的,application / x-www-form-urlencodedtypes完全是用HTML定义的,它只是给出了%-encoding规则,但没有说什么charset数据应该在什么地方。 基本上,是否有任何告诉字符集的方式,如果我不知道原来呈现的HTML字符集? 否则,我将不得不根据字符是否存在来猜测字符集,而且从我所知道的情况来看,这总是有点不妥。

S3 – 访问控制允许源标题

有没有人设法将Access-Control-Allow-Origin到响应头文件中? 我需要的是这样的: <img src="../../../tours/8b16734d-336c-48c7-95c4-3a93fa023a57/1_AU_COM_180212_Areitbahn_Hahnkoplift_Bergstation.tiles/l2_f_0101.jpg" /> 这个获取请求应该包含在响应头中, Access-Control-Allow-Origin: * 我的桶的CORS设置如下所示: <?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration> 正如你所期望的那样,没有Origin响应头。