你能否描述一个例子,说明在IIS中托管的asp.net应用程序中的公共和私有缓存控制之间的区别.
我在MSDN中读到的不同之处如下:
Public: Sets Cache-Control:public指定响应可由客户端和共享(代理)缓存缓存.
私有:默认值.设置Cache-Control:private以指定响应仅在客户端上可缓存,而不是由共享(代理服务器)缓存缓存.
我不确定我是否完全理解每种选择的利弊.何时使用或不使用它的例子会很棒.
例如,如果我有两个托管相同应用程序的Web服务器,我该怎么办?如果我选择私人或公共,有什么值得注意的吗?
我正在使用React和Redux构建一个前端应用程序,我正在使用axios来执行我的请求.我想访问响应标题中的所有字段.在我的浏览器中,我可以检查标题,我可以看到我需要的所有字段都存在(例如令牌,uid等等),但是当我打电话时
const request = axios.post(`${ROOT_URL}/auth/sign_in`, props);
request.then((response)=>{
console.log(response.headers);
});
Run Code Online (Sandbox Code Playgroud)
我得到了
Object {content-type: "application/json; charset=utf-8", cache-control: "max-age=0, private, must-revalidate"}
Run Code Online (Sandbox Code Playgroud)
这是我的浏览器网络选项卡,因为您可以看到所有其他字段都存在.
最好成绩.
使用PHP,是否可以发送HTTP标头file_get_contents()?
我知道您可以从您的php.ini文件中发送用户代理.但是,你能不能也发送其他信息,如HTTP_ACCEPT,HTTP_ACCEPT_LANGUAGE和HTTP_CONNECTION用file_get_contents()?
或者是否有其他功能可以实现这一目标?
如何为HttpClient请求添加自定义标头?我正在使用PostAsJsonAsync方法发布JSON.我需要添加的自定义标题是
"X-Version: 1"
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所做的:
using (var client = new HttpClient()) {
client.BaseAddress = new Uri("https://api.clickatell.com/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "xxxxxxxxxxxxxxxxxxxx");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = client.PostAsJsonAsync("rest/message", svm).Result;
}
Run Code Online (Sandbox Code Playgroud) 我还没有找到关于标准是否允许重复HTTP响应头的任何规范,但我需要知道这是否会导致兼容性问题.
假设我有一个像这样的响应头:
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.4; JBoss-4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 date=200510231054)/Tomcat-5.5
Cache-Control: no-cache
Cache-Control: no-store
Location: http://localhost:9876/foo.bar
Content-Language: en-US
Content-Length: 0
Date: Mon, 06 Dec 2010 21:18:26 GMT
Run Code Online (Sandbox Code Playgroud)
请注意,有两个Cache-Control标头具有不同的值.浏览器是否总是将它们视为"Cache-Control:no-cache,no-store"?
我正在使用一个"有趣"的HTML特殊字符(✰)(请参阅http://html5boilerplate.com/获取更多信息)获取ServerHTTP标头,并且我想知道它是否符合每个规范.
在Windows Xp Pro SP 3上使用Chrome中的开发工具中的网络选项卡,我看到✰很好.
在IE8中,✰ 未正确呈现.
w3.org HTML验证器无法正确呈现它(显示" â°"代替).
现在,我不太热衷于角色编码......坦率地说,我并不太关心它们; 我只是盲目地使用UTF-8 cus我被告知.:-)
是不是由不同的解析器/浏览/引擎/中的错误引起的差异(无论他们被称为什么)?
是否有针对此标准或可能是HTTP标头"值"的允许字符列表?
从服务器收到重复的标头
来自服务器的响应包含重复的标头.此问题通常是配置错误的网站或代理的结果.只有网站或代理管理员才能解决此问题.
错误349(net :: ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION):收到多个不同的Content-Disposition标头.不允许这样做以防止HTTP响应分裂攻击.
我在chrome中导出为pdf时发现了这个错误.
Response.Buffer = false;
Response.ClearHeaders();
string ext = objProp.PACKAGEFILENAME.Substring(objProp.PACKAGEFILENAME.LastIndexOf("."));
string ext1 = ext.Substring(1);
Response.ContentType = ext1;
Response.AddHeader("Content-Disposition", "target;_blank,attachment; filename=" + objProp.PACKAGEFILENAME);
const int ChunkSize = 1024;
byte[] binary = objProp.PACKAGEDOCUMENT;
System.IO.MemoryStream ms = new System.IO.MemoryStream(binary);
int SizeToWrite = ChunkSize;
for (int i = 0; i < binary.GetUpperBound(0) - 1; i = i + ChunkSize)
{
if (!Response.IsClientConnected) return;
if (i + ChunkSize >= binary.Length) SizeToWrite = binary.Length - i;
byte[] chunk = new byte[SizeToWrite];
ms.Read(chunk, …Run Code Online (Sandbox Code Playgroud) 我读过的一篇文章说过,它意味着跳跃(从一个URI跳到另一个URI),但即使实际上根本没有跳跃,我也发现了这个"302"!
我在这里尝试做的是获取给定URL的标题,以便我可以确定MIME类型.我希望能够看到是否http://somedomain/foo/会返回HTML文档或JPEG图像.因此,我需要弄清楚如何发送HEAD请求,以便我可以读取MIME类型而无需下载内容.有谁知道这样做的简单方法?
我在一些响应中返回一个流,设置适当的内容类型标题.我正在寻找的行为是这样的:
如果浏览器能够呈现给定内容类型的内容,那么它应该在浏览器窗口中显示它.
如果浏览器不知道如何呈现内容,那么它应该显示saveas对话框,其中文件名应该是响应中提供的文件名.
如果我使用以下内容设置Content-Disposition标头的问题:
"attachment; filename ="myfile.txt""
浏览器将始终显示"保存"对话框.
如果我没有设置Content-Disposition,则saveas对话框中使用的文件名是url中的文件名,在我的情况下不起作用.
我也尝试将Content-Disposition设置为内联,但结果是一样的.
http httpresponse httpwebresponse content-disposition http-headers
http-headers ×10
http ×4
asp.net ×1
axios ×1
c# ×1
caching ×1
content-type ×1
es6-promise ×1
httpresponse ×1
iis ×1
pdf ×1
php ×1
python ×1
python-2.7 ×1
redirect ×1