【问题标题】:HTTP 1xx Status CodesHTTP 1xx 状态码
【发布时间】:2009-07-28 12:53:36
【问题描述】:
你们中的任何人都见过真实的 HTTP“期望”标头吗?
或者任何使用“100 Continue”状态消息应答的代理或服务器?
IIS 或 Apache 等流行的 HTTP 服务器是否遇到过返回“100 Continue”的情况?
谢谢,
最大
【问题讨论】:
标签:
http
proxy
http-headers
【解决方案1】:
如果 POST 请求的内容超过 1024 字节,libcurl 将添加“Expect: 100-Continue”标头。
least since 2003 SUN 拒绝向 servlet API 添加对该标头的支持。 servlet 容器中的 Java Web 应用程序无法控制 100 个 Continue 响应。
只要收到“Expect: 100-Continue”,大多数 servlet 容器实现都会立即发送此响应。
【解决方案2】:
.net System.Net.HttpWebRequest 默认在every post request 上发送Expect: 100-continue。至少,Tomcat 在执行 servlet 之前会发送一个 100-continue。
【解决方案3】:
是的,Expect:例如 .NET 中的 System.Net.HttpWebRequest 使用 100-Continue,并且所有现代 Web 服务器都可以识别它(它是 HTTP/1.1 标准的一部分)。
主要用于通过POST方式上传文件时使用(但可以与任何POST请求一起使用),以便客户端在发送潜在的大数据之前可以知道请求是否成功。
100-Continue 响应并不代表请求会成功,它意味着服务器已经知道的参数是好的(例如:它不会抛出一个 4xx 代码,例如),如果其余的都是好的也一样,那么请求就会成功。