在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"头并立即处理请求。
为了解决这个问题,在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"头并立即处理请求。
本文地址:
/show-278318.html
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。