标签: http-headers

Java URLConnection:如何找出Web文件的大小?

我正在为学校做一个项目,我正在实现一个可以用来从网上下载文件的工具(有一个限制选项).问题是,我将拥有一个GUI,我将使用一个JProgressBar小部件,我想展示当前的下载进度.为此,我需要知道文件的大小.如何在下载文件之前获取文件的大小.

java http http-headers

30
推荐指数
3
解决办法
5万
查看次数

什么可以在我的回复标题中添加"Pragma:no-cache"?(Apache,PHP)

我有一个网站,我继承了维护,这是一个很大的毛病.
我正在做的一件事就是提高性能.除此之外,我正在Expires为图像添加标题.

现在,有一些图像是通过PHP文件提供的,我注意到它们确实有Expires标题,但每次都会加载它们.

看看响应标题,我看到了这个:

Expires Wed, 15 Jun 2011 18:11:55 GMT
Cache-Control   no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma  no-cache
Run Code Online (Sandbox Code Playgroud)

这显然解释了这个问题.

现在,我看了整个代码库,并没有在任何地方说"pragma"..htaccess似乎没有任何相关的东西.

什么想法可以设置那些"pragma"(和"缓存控制")标题,我怎么能避免它?

php apache caching pragma http-headers

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

C# - 连接:在HttpWebRequest期间未发送保持活动标头

我正在尝试发送以使用我的HttpWebRequest发送以下标头:

Connection: keep-alive

但是,标头永远不会发送.Fiddler2显示,每当我在Google Chrome中请求该页面时,都会发送标题.但是,我的应用程序由于某种原因拒绝发送此标头.

我已经将KeepAlive属性设置为true(true默认情况下是默认值),但标题仍然没有被发送.

我正在尝试使用多个HttpWebRequests发送此标头,但它们基本上都是这样的:

HttpWebRequest logIn6 = (HttpWebRequest)WebRequest.Create(new Uri(responseFromLogIn5));
logIn6.CookieContainer = cookies;
logIn6.KeepAlive = true;
logIn6.Referer = "https://login.yahoo.com/config/login?.src=spt&.intl=us&.lang=en-US&.done=http://football.fantasysports.yahoo.com/";
logIn6.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1";
logIn6.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
logIn6.Headers.Add("Accept-Encoding:gzip,deflate,sdch");
logIn6.Headers.Add("Accept-Language:en-US,en;q=0.8");
logIn6.Headers.Add("Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3");
logIn6.AllowAutoRedirect = false;

HttpWebResponse logIn6Response = (HttpWebResponse)logIn6.GetResponse();
string responseFromLogIn6 = logIn6Response.GetResponseHeader("Location");

cookies.Add(logIn6Response.Cookies);

logIn6Response.Close();
Run Code Online (Sandbox Code Playgroud)

有谁知道我要做什么来确保这个标题被发送?

来自Chrome的Fiddler2 Raw:

GET xxx HTTP/1.1
Host: accounts.google.com
Connection: keep-alive
Referer: https://login.yahoo.com/config/login?.src=spt&.intl=us&.lang=en-US&.done=http://football.fantasysports.yahoo.com/
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like …
Run Code Online (Sandbox Code Playgroud)

c# https http httpwebrequest http-headers

30
推荐指数
3
解决办法
4万
查看次数

避免缓存http响应

什么是避免任何类型的http数据缓存的权威解决方案?我们可以修改客户端和服务器 - 所以我认为我们可以在客户端和服务器之间拆分任务.

客户端可以向每个请求附加一个随机参数http://URL/path?rand=6372637263- 我的感觉是只使用这种方式它不能100%工作 - 可能有一些智能代理,可以检测到...另一方面我认为如果URL不同从前一个,代理不能简单地决定发回一些缓存的响应.

服务器上可以控制一堆HTTP头:

Expires: Tue, 03 Jul 2001 06:00:00 GMT
Last-Modified: {now} GMT
Cache-Control: no-store, no-cache, must-revalidate, max-age=0
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Run Code Online (Sandbox Code Playgroud)

对此有何评论,最好的方法是什么?

caching client-server http browser-cache http-headers

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

是否有任何浏览器支持以分块编码响应发送的预告片?

HTTP/1.1指定发送的响应Transfer-Encoding: chunked可以包括可选的预告片(即通常作为标题发送的内容,但出于任何原因无法在内容之前计算,因此它们可以附加到结尾),例如:

请求:

GET /trailers.html HTTP/1.1
TE: chunked, trailers
Run Code Online (Sandbox Code Playgroud)

响应:

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Trailer: My-Test-Trailer
D\r\n
All your base\r\n
B\r\n;
 are belong\r\n
6\r\n
 to us\r\n
0\r\n
My-Test-Trailer: something\r\n
\r\n
Run Code Online (Sandbox Code Playgroud)

此请求在TE标头中指定它期望chunked响应,并将trailers在最后一个块之后查找.

响应在指定Trailer标题拖车它将被发送的列表(在这种情况下,只有一个:My-Test-Trailer)

每个块都发送为:

  • 以十六进制表示的块大小(D= 13),然后是aCRLF
  • 块数据(All your base),后跟一个CRLF

零大小的块(0\r\n)表示身体的末端.

然后指定预告片(My-Test-Trailer: something\r\n),然后是决赛CRLF.

现在,从我到目前为止所阅读的所有内容来看,很少(如果有的话)使用预告片.这里和其他地方关于预告片的大多数讨论通常以"但你为什么还要使用预告片?"开头.

暂且不谈为什么,出于好奇,我一直试图模拟使用预告片的HTTP请求/响应交换; 但到目前为止,我还没有能够让它工作,我不确定我生成的响应是否有问题,或者是否(正如一些人所建议的那样)没有客户端寻找尾随的标题.

我试过的客户包括:curl,wfetch,Chrome + jQuery.

在所有情况下,客户端都会接收并正确地重建分块响应(All your base are …

sample http-1.1 chunked-encoding http-headers trailing

30
推荐指数
2
解决办法
5951
查看次数

Spring Global CORS配置无效,但控制器级配置有效

我试图通过WebMvcConfigurerAdapter如下所示全局配置CORS .测试我通过我创建的小节点应用程序来模拟外部服务.当我尝试这种方法时,响应不包含正确的标题,并失败

XMLHttpRequest cannot load http://localhost:8080/api/query/1121. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:333' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)

全球配置

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@EnableWebMvc
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/api/query/**")
                    .allowedOrigins("*")
                    .allowedHeaders("*")
                    .allowCredentials(true);
        }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我使用这样的@CrossOrigin注释时,它可以很好地响应正确的标题.

@CrossOrigin(origins = "*", allowCredentials = "true", allowedHeaders = "*")
@RestController
@RequestMapping(value = "/api/query", produces = MediaType.APPLICATION_JSON_VALUE)
public class QueryController {
   ......
}
Run Code Online (Sandbox Code Playgroud)

产生

Access-Control-Allow-Credentials:true …
Run Code Online (Sandbox Code Playgroud)

java spring-mvc cross-domain http-headers cors

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

如何在HTTP Content-Type响应头中指定字符集?

我使用Google 的Page Speed应用程序测试了我的网站,其中一个建议是在HTTP Content-Type响应标头中指定字符集,声称它比元标记更好.

这是我理解的我需要写的内容:Content-Type:text/html; 字符集= UTF-8

..但我应该把它放在哪里?我在共享服务器上.

谢谢!

optimization content-type character-encoding http-headers

29
推荐指数
1
解决办法
5万
查看次数

CORS和Origin标题?

当我们需要调用Ajax请求时,我们会:

if(typeof XMLHttpRequest !== 'undefined') xhr = new XMLHttpRequest();
else
{
    var versions = ["Microsoft.XmlHttp",
            "MSXML2.XmlHttp",
            "MSXML2.XmlHttp.3.0",
            "MSXML2.XmlHttp.4.0",
            "MSXML2.XmlHttp.5.0"
    ];
Run Code Online (Sandbox Code Playgroud)

我已经知道,使用XMLHttpRequest-2,我们可以做一个跨源请求该ORIGIN头被添加.

题:

  • 这个标题何时添加?

    • 是否在浏览器(支持CORS)执行请求时添加?(跨域还是非跨域?)
    • 或者当浏览器"看到"请求目标源与当前源不同时自动添加...

我的意思是:大胆的线是什么意思?

跨源HTTP请求具有Origin头.此标头为服务器提供请求的来源.此标头受浏览器保护,无法从应用程序代码更改.本质上,它是在Cross Document Messaging中使用的消息事件中找到的origin属性的网络等价物.origin标头与旧的referer [sic]标头不同,因为referer是包含路径的完整URL.由于路径可能包含敏感信息,因此有时不会通过尝试保护用户隐私的浏览器发送引用.但是,浏览器将始终在必要时发送所需的Origin标头.

javascript ajax http http-headers cors

29
推荐指数
2
解决办法
6万
查看次数

从IIS 7/8中的静态内容中删除服务器标头

作为努力使我们的API和网站更安全的一部分,我正在删除泄漏有关网站运行信息的标题.

剥离标题之前的示例:

HTTP/1.1 500 Internal Server Error
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 05 Jun 2013 00:27:54 GMT
Content-Length: 3687
Run Code Online (Sandbox Code Playgroud)

Web.config文件:

<httpProtocol>
  <customHeaders>
    <remove name="X-Powered-By" />
  </customHeaders>
</httpProtocol>
Run Code Online (Sandbox Code Playgroud)

的Global.asax.cs:

protected void Application_PreSendRequestHeaders() {
    Response.Headers.Remove("Server");
    Response.Headers.Remove("X-AspNet-Version");
    Response.Headers.Remove("X-AspNetMvc-Version");
    Response.AddHeader("Strict-Transport-Security", "max-age=300");
    Response.AddHeader("X-Frame-Options", "SAMEORIGIN");
}
Run Code Online (Sandbox Code Playgroud)

之后,对网站和API的所有调用都会返回更安全的标头,如下所示:

HTTP/1.1 500 Internal Server Error
Cache-Control: private
Content-Type: text/html; charset=utf-8
Date: Wed, 05 Jun 2013 00:27:54 GMT
Content-Length: 3687
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但是,我在Firebug中注意到,如果你查看静态内容(例如,loading.gif),它仍然包含服务器头.

HTTP/1.1 304 Not Modified
Cache-Control: no-cache
Accept-Ranges: bytes
Etag: "a3f2a35bdf45ce1:0"
Server: …
Run Code Online (Sandbox Code Playgroud)

c# asp.net security iis http-headers

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

在Firefox中,如何查看HTTP请求标头?(在Web控制台中的位置?)

(编辑,我'在2016年'但它还没有2016年.我的意思是'目前'

到目前为止对我没用的事情:

查看Firefox中的Web控制台功能(我可能会失明)

mozilla.org上查看Web控制台文档 - web控制台文档(视频无法播放;我可能会错过它.人们说它在Web控制台中,但我在Web控制台中看不到任何标题.我希望看到meta标签,特别是重定向让我疯狂.)

在Firefox中尝试了几个过期的插件(有一个修复声称但是我怀疑它是否有效 - 在mozilla.org搜索插件

firefox http-headers

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