{site_name}

{site_name}

🌜 搜索

在HTTP协议中,当客户端向服务器发送带有请求体的POST/PUT请求时,客户端

前端 𝄐 0
在HTTP协议中,当客户端向服务器发送带有请求体的POST/PUT请求时,客户端需要等待服务器确认之后再继续发送请求体,以避免浪费网络资源和时间。

为了解决这个问题,在HTTP/1.1版本中,引入了100 Continue状态码。当客户端发送带有请求体的请求时,会先发送一个只包含请求头部信息的请求给服务器,并在请求头中加入"Expect: 100-continue"字段。如果服务器能够接受请求体并愿意处理该请求,则返回100状态码;否则,返回拒绝请求的状态码,例如417 Expectation Failed。

一旦客户端收到了100状态码,它就可以继续将请求体发送给服务器。

例如,如果客户端要上传一个大文件,它会首先发送一个只包含请求头的请求:


POST /upload HTTP/1.1
Host: example.com
Content-Length: 12345
Expect: 100-continue



服务器会返回一个100状态码:


HTTP/1.1 100 Continue


然后客户端可以继续发送请求体。

请注意,服务器不是强制要求使用100状态码来确认请求体的接收。如果服务器不支持或者不想使用100状态码,那么它可以直接忽略"Expect: 100-continue"头并立即处理请求。