Tag: http

理想的HTTPcaching控制标题为不同types的资源

我想find一个最小的头文件集,可以处理“全部”caching和浏览器(也可以使用HTTPS !) 在我的网站上,我将有三种资源: (1)永久可caching(公开/平等的所有用户) 例如:0A470E87CC58EE133616F402B5DDFE1C.cache.html( 由GWT自动生成 ) 这些文件在更改内容(基于MD5)时会自动分配一个新名称。 即使使用HTTPS,他们也应该尽可能地caching(所以我认为我应该设置Cache-Control: public ,特别是Firefox)。 如果内容发生了变化,他们不应该要求客户端往返于服务器进行validation。 (2)偶尔改变(所有用户公开/平等) 示例:index.html,mymodule.nocache.js 当部署新版本的站点时,这些文件会更改其内容而不更改URL。 他们可以被caching,但可能需要往返每次重新validation。 (3)每个请求的个人(私人/用户特定的) 例如:JSON响应 在任何情况下,永远不应该将这些资源caching到磁盘。 (除了可能我会有一些具体的请求,可以被caching。) 我有一个大概的想法,我可能会使用每个types的头,但总是有我可能会丢失的东西。

从浏览器获取客户端时区

有一个可靠的方法来从客户端浏览器获得时区? 我看到以下链接,但我想要一个更强大的解决scheme。 使用JavaScript自动检测时区 JavaScript中的时区检测

来自C#客户端的多部分表单

我正在尝试从C#客户端(Outlook插件)填写一个PHP应用程序中的窗体。 我使用Fiddler从php应用程序中查看原始请求,并将表单作为多部分/表单传输。 不幸的是,.net不支持这种types的表单(WebClient只有一个上传文件的方法)。 有没有人知道一个图书馆或有一些代码来实现这一目标? 我想发布不同的值,另外(但只是有时)文件。 谢谢你的帮助,塞巴斯蒂安

我如何使用http代理与node.js http.Client?

我想使用标准的http.Client从node.js发出一个传出的HTTP调用。 但我无法直接从我的networking到达远程服务器,需要通过代理。 如何告诉node.js使用代理?

如何从http头获取文件大小

我想在下载之前获取http:/…/文件的大小。 该文件可以是网页,图像或媒体文件。 这可以通过HTTP头来完成吗? 如何下载文件HTTP头?

如何在PHP中使用HTTPcaching头

我有一个PHP 5.1.0网站(实际上它是5.2.9,但它也必须运行在5.1.0以上)。 页面是dynamic生成的,但其中大部分都是静态的。 通过静态我的意思是内容不会改变,但内容周围的“模板”可以随着时间而改变。 我知道他们已经有几个caching系统和PHP框架,但我的主机没有安装APC或Memcached,我没有为这个特定的项目使用任何框架。 我想页面被caching(我认为默认PHP“禁止”caching)。 到目前为止,我正在使用: session_cache_limiter('private'); //Aim at 'public' session_cache_expire(180); header("Content-type: $documentMimeType; charset=$documentCharset"); header('Vary: Accept'); header("Content-language: $currentLanguage"); 我读了许多教程,但我找不到简单的东西(我知道caching是复杂的,但我只需要一些基本的东西)。 什么是“必须”有标题发送来帮助caching? 谢谢!

浏览器cachingHTTP 301多久?

我正在debuggingHTTP 301永久redirect的问题。 经过快速testing,似乎Safari重新启动时会清除301的高速caching,但Firefox不会。 IE,Chrome,Firefox和Safari什么时候清空他们的301scaching? 更新:例如,如果我想将example1.comredirect到example2.com ,但我不小心将其redirect到example3.com ,那是一个问题。 我可以改正这个错误,但是同时访问example1.com任何人都会将不正确的redirectcaching到example3.com ,所以他们将无法到达example1.com或example2.com直到清除caching。 经过调查,我发现没有Cache-Control和Expires头文件。 不正确的301响应标题将是这样的: HTTP/1.1 301 Moved Permanently Date: Wed, 27 Feb 2013 12:05:53 GMT Server: Apache/2.2.21 (Unix) DAV/2 PHP/5.3.8 X-Powered-By: PHP/5.3.8 Location: http://example3.com/ Content-Type: text/html 我自己的testing表明: IE7,IE8,Android 2.3.4根本不caching。 Firefox 18.0.2,Safari 5.1.7(Windows 7)和Opera 12.14全部caching,并清除浏览器重新启动时的caching。 IE10和Chrome的25caching,但不清除浏览器重新启动, 那么他们什么时候会清除?

URLmatrix参数与请求参数

我想知道是否在我的url中使用matrix或查询参数。 我发现一个较老的讨论 ,该主题不令人满意。 例子 带有查询参数的URL: http://some.where/thing?paramA = 1&paramB = 6542 带有matrix参数的URL: http://some.where/thing; paramA = 1; paramB = 6542 乍一看matrix似乎只有优势: 更具可读性 在XML文档中不需要编码和解码“&” 带“?”的url 在许多情况下不被caching; 带有matrix参数的URL被caching matrix参数可以出现在path的任何地方,并不限于其结束 matrix参数可以有多个值: paramA=val1,val2 但是也有缺点: 只有像JAX-RS这样的几个框架支持matrix参数 当浏览器通过GET提交表单时,参数变成查询参数。 因此,对于同一个任务,最终会有两种参数。 为了不会混淆REST服务的用户并限制服务开发者的工作,在这个区域中总是使用查询参数会更容易。 由于该服务的开发人员可以select一个matrix参数支持的框架,唯一的缺点是浏览器默认创build查询参数。 还有其他的缺点吗? 你会怎么做?

在Java中恢复HTTP文件下载

URL url = new URL("http://download.thinkbroadband.com/20MB.zip"); URLConnection connection = url.openConnection(); File fileThatExists = new File(path); OutputStream output = new FileOutputStream(path, true); connection.setRequestProperty("Range", "bytes=" + fileThatExists.length() + "-"); connection.connect(); int lenghtOfFile = connection.getContentLength(); InputStream input = new BufferedInputStream(url.openStream()); byte data[] = new byte[1024]; long total = 0; while ((count = input.read(data)) != -1) { total += count; […]

多台客户机如何同时连接到服务器上的一个端口(比方说80)?

我了解端口如何工作的基础知识。 然而,我没有得到的是多个客户端可以同时连接说端口80.我知道每个客户端都有一个独特的(为他们的机器)端口。 服务器是否从可用的端口回复到客户端,并简单说明回复来自80? 这个怎么用?