HTTP状态码
HTTP状态码为客户端提供了一种理解事务处理结果的边界方式。本文列出一些原因短语,所使用的是HTTP/1.1规范所定义的。
100-199
HTTP/1.1中引入了信息性状态码,100-199就属于信息性状态码。
100
状态码100对应了Continue,说明服务器收到了请求,请客户端继续发送。服务器发送了这个状态码之后,继续收到客户端的请求时必须做出响应。
100 Continue状态码可能会让人陷入困境,在HTTP客户端需要发送一个实体给服务器时,希望在发送之前检查一下服务器是否会接受这个实体,根据服务器做出响应。但是在整个链路复杂时他就会出现混淆。
100-客户端
如果客户端在向服务器发送一个实体,并且愿意在发送实体之前等待100 Continue响应,那么客户端就要发送一个携带了值为100 Continue的Expect请求头,如果客户端没有发送实体,就不应该发送100 Continue Expect头,因为这个值会让服务器误以为客户端要发送一个实体。
100 Continue是一个优化项,客户端只有在需要向服务器发送一个大实体时才应该使用该状态码。发送了100 Continue的Expect头的客户端需要等待服务器发送100 Continue响应,但是注意需要设置超时时间,当超时后客户端应该直接将实体发送出去,而不是永远等待服务器响应。
服务器在处理出错时也可能会向客户端返回100 Continue状态码,客户端也需要特别注意是否为自己所需要的响应。