http 1.0 如何发送big body?

http 1.0 如何发送big body?

如标题所述,HTTP 1.0 如何实现像 POST 请求那样发送大正文而不使用 100 continue?客户端会直接发送整个正文吗?如果是,那么 100 continue 会带来什么好处?

答案1

HTTP/1.0 中不使用 1xx 响应代码。这些代码是在 HTTP/1.1 中引入的。

HTTP 1.0 在世纪之交之前被广泛使用(HTTP/1.1 于 1999 年标准化)。当时 HTTP 无法处理文件上传等较长的二进制内容。

在 HTTP/1.1 中,如果您想上传一个文件,并向服务器发送包含该文件的请求,浏览器会读取该文件并将其包含在发送给服务器的请求中,这可能会花费几分钟来上传二进制流。如果由于某种原因请求的标头值不正确或被服务器拒绝,您将不得不在第二个请求中再次上传整个文件。

通过发送标有 的请求Expect: 100-Continue,客户端要求服务器在上传数据之前验证请求标头的内容,这样客户端就不会发送任何文件内容,直到它有理由确信请求会成功。然后,在客户端收到 100 的响应后,它开始上传文件。

因此,回答您的问题,在 HTTP 1.0 中,如果服务器拒绝 POST 请求并且浏览器再次尝试,则文件将被多次上传。请注意,当 HTTP 1.0 很常见时,其他协议用于大型上传,例如 FTP。

相关内容