亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Complete list of http status codes / HTTP 100 狀態(tài)碼

HTTP 100 狀態(tài)碼

100(繼續(xù))請(qǐng)求者應(yīng)當(dāng)繼續(xù)提出請(qǐng)求。服務(wù)器返回此代碼表示已收到請(qǐng)求的第一部分,正在等待其余部分。

服務(wù)器根據(jù)客戶端的請(qǐng)求頭判斷是否接受客戶端的請(qǐng)求。如果接受請(qǐng)求則響應(yīng)100狀態(tài)碼,服務(wù)端根據(jù)是否存在 Expect: 100-continue 請(qǐng)求頭判斷是否是Expect請(qǐng)求(有部分web服務(wù)器不能正確的處理Expect請(qǐng)求)

該狀態(tài)碼說明服務(wù)器收到了請(qǐng)求的初始部分,并且請(qǐng)客戶端繼續(xù)發(fā)送。在服務(wù)器發(fā)送了 100 Continue 狀態(tài)碼之后,如果收到客戶端的請(qǐng)求,則必須進(jìn)行響應(yīng)。

這個(gè)狀態(tài)碼實(shí)際上是對(duì)如下場景的一種優(yōu)化:客戶端有一個(gè)較大的文件需要上傳并保存,但是客戶端不知道服務(wù)器是否愿意接受這個(gè)文件,所以希望在消耗網(wǎng)絡(luò)資源進(jìn)行傳輸之前,先詢問一下服務(wù)器的意愿。實(shí)際操作為客戶端發(fā)送一條特殊的請(qǐng)求報(bào)文,報(bào)文的頭部應(yīng)包含

Expect: 100-continue

此時(shí),如果服務(wù)器愿意接受,就會(huì)返回 100 Continue 狀態(tài)碼,反之則返回 417 Expectation Failed 狀態(tài)碼。對(duì)于客戶端而言,如果客戶端沒有發(fā)送實(shí)際請(qǐng)求的打算,則不應(yīng)該發(fā)送包含 100 Continue Expect 的報(bào)文,因?yàn)檫@樣會(huì)讓服務(wù)器誤以為客戶端將要發(fā)送一個(gè)請(qǐng)求。

之前提到過,并不是所有的HTTP應(yīng)用都支持 100 Continue 這個(gè)狀態(tài)碼(例如HTTP/1.0及之前的版本的代理或服務(wù)器)所以客戶端不應(yīng)該在發(fā)送 100 Continue Expect 后一直等待服務(wù)器的響應(yīng),在一定時(shí)間后,客戶端應(yīng)當(dāng)直接發(fā)送計(jì)劃發(fā)送的內(nèi)容。

而對(duì)于服務(wù)器而言,也不應(yīng)當(dāng)把 100 Continue 當(dāng)作一個(gè)嚴(yán)格的判斷方法。服務(wù)器有可能在發(fā)送回應(yīng)之前就受到了客戶端發(fā)來的主體報(bào)文。此時(shí)服務(wù)器就不需要再發(fā)送 100 Continue 作為回應(yīng)了。但仍然需要在接受完成后返回適當(dāng)?shù)臓顟B(tài)碼。理論上,當(dāng)服務(wù)器收到一個(gè) 100 Continue Expect 請(qǐng)求時(shí),應(yīng)當(dāng)進(jìn)行響應(yīng)。但服務(wù)器永遠(yuǎn)也不應(yīng)向沒有發(fā)送 100 Continue Expect 請(qǐng)求的客戶端發(fā)送100 Continue 狀態(tài)碼作為回應(yīng)。這里提到的應(yīng)當(dāng)進(jìn)行響應(yīng)是指:假設(shè)服務(wù)器不打算接收客戶端將要發(fā)送的主體報(bào)文,也應(yīng)當(dāng)做適當(dāng)?shù)捻憫?yīng)(例如發(fā)送 417 Expectation Failed)而不是單純的關(guān)閉連接,這樣會(huì)對(duì)客戶端在網(wǎng)絡(luò)層面上產(chǎn)生影響。

特別的,作為代理的HTTP應(yīng)用在收到帶有 100 Continue Expect 的請(qǐng)求時(shí),需要進(jìn)行額外的判斷。假設(shè)代理服務(wù)器明確知道報(bào)文下游的HTTP版本是兼容 HTTP/1.1 的,或者代理服務(wù)器不知道報(bào)文下游的版本,它都應(yīng)當(dāng)轉(zhuǎn)發(fā)這條 100 Continue Expect 請(qǐng)求。但是如果代理服務(wù)器明確知道報(bào)文下游的應(yīng)用無法處理 100 Continue Expect 的話,則應(yīng)當(dāng)直接向客戶端返回 417 Expectation Failed 作為響應(yīng)。而這也并非唯一的解決辦法,另一種可行的辦法是直接向客戶端返回 100 Continue ,然后向下游傳遞刪除了 100 Continue Expect 的報(bào)文。

另外,如果代理服務(wù)器決定為 HTTP/1.0 及之前的版本服務(wù)的話,那么當(dāng)它收到來自服務(wù)器的 100 Continue 響應(yīng)報(bào)文時(shí),則不應(yīng)當(dāng)向客戶端轉(zhuǎn)發(fā)這條響應(yīng),因?yàn)榭蛻舳撕芸赡懿恢廊绾翁幚碓搱?bào)文。