摘要:的狀態(tài)碼都是重定向,那么,,的重定向都有啥區(qū)別捏,我們先看一下各自的定義請(qǐng)求的資源現(xiàn)在臨時(shí)從不同的響應(yīng)請(qǐng)求。狀態(tài)碼和被添加了進(jìn)來(lái),用以明確服務(wù)器期待客戶(hù)端進(jìn)行何種反應(yīng)。
http狀態(tài)碼是web開(kāi)發(fā)中經(jīng)常會(huì)用到的一個(gè)東西,前幾天無(wú)意中看到一個(gè)url返回一個(gè)307的狀態(tài)碼,我一眼看著挺新鮮,就搜刮了一下相關(guān)知識(shí),發(fā)現(xiàn)還挺有用,特此記錄。
3xx的狀態(tài)碼都是重定向,那么307,303,302的重定向都有啥區(qū)別捏,我們先看一下各自的定義
307 Temporary Redirect
請(qǐng)求的資源現(xiàn)在臨時(shí)從不同的URI響應(yīng)請(qǐng)求。由于這樣的重定向是臨時(shí)的,客戶(hù)端應(yīng)當(dāng)繼續(xù)向原有地址發(fā)送以后的請(qǐng)求。只有在Cache-Control或Expires中進(jìn)行了指定的情況下,這個(gè)響應(yīng)才是可緩存的。
新的臨時(shí)性的URI應(yīng)當(dāng)在響應(yīng)的Location域中返回。除非這是一個(gè)HEAD請(qǐng)求,否則響應(yīng)的實(shí)體中應(yīng)當(dāng)包含指向新的URI的超鏈接及簡(jiǎn)短說(shuō)明。因?yàn)椴糠譃g覽器不能識(shí)別307響應(yīng),因此需要添加上述必要信息以便用戶(hù)能夠理解并向新的URI發(fā)出訪(fǎng)問(wèn)請(qǐng)求。
如果這不是一個(gè)GET或者HEAD請(qǐng)求,那么瀏覽器禁止自動(dòng)進(jìn)行重定向,除非得到用戶(hù)的確認(rèn),因?yàn)檎?qǐng)求的條件可能因此發(fā)生變化。
303 See Other
對(duì)應(yīng)當(dāng)前請(qǐng)求的響應(yīng)可以在另一個(gè)URI上被找到,而且客戶(hù)端應(yīng)當(dāng)采用GET的方式訪(fǎng)問(wèn)那個(gè)資源。這個(gè)方法的存在主要是為了允許由腳本激活的POST請(qǐng)求輸出重定向到一個(gè)新的資源。這個(gè)新的URI不是原始資源的替代引用。同時(shí),303響應(yīng)禁止被緩存。當(dāng)然,第二個(gè)請(qǐng)求(重定向)可能被緩存。
新的URI應(yīng)當(dāng)在響應(yīng)的Location域中返回。除非這是一個(gè)HEAD請(qǐng)求,否則響應(yīng)的實(shí)體中應(yīng)當(dāng)包含指向新的URI的超鏈接及簡(jiǎn)短說(shuō)明。
注意:許多HTTP/1.1版以前的瀏覽器不能正確理解303狀態(tài)。如果需要考慮與這些瀏覽器之間的互動(dòng),302狀態(tài)碼應(yīng)該可以勝任,因?yàn)榇蠖鄶?shù)的瀏覽器處理302響應(yīng)時(shí)的方式恰恰就是上述規(guī)范要求客戶(hù)端處理303響應(yīng)時(shí)應(yīng)當(dāng)做的。
302 Found
請(qǐng)求的資源現(xiàn)在臨時(shí)從不同的URI響應(yīng)請(qǐng)求。由于這樣的重定向是臨時(shí)的,客戶(hù)端應(yīng)當(dāng)繼續(xù)向原有地址發(fā)送以后的請(qǐng)求。只有在Cache-Control或Expires中進(jìn)行了指定的情況下,這個(gè)響應(yīng)才是可緩存的。
新的臨時(shí)性的URI應(yīng)當(dāng)在響應(yīng)的Location域中返回。除非這是一個(gè)HEAD請(qǐng)求,否則響應(yīng)的實(shí)體中應(yīng)當(dāng)包含指向新的URI的超鏈接及簡(jiǎn)短說(shuō)明。
如果這不是一個(gè)GET或者HEAD請(qǐng)求,那么瀏覽器禁止自動(dòng)進(jìn)行重定向,除非得到用戶(hù)的確認(rèn),因?yàn)檎?qǐng)求的條件可能因此發(fā)生變化。
注意:雖然RFC 1945和RFC 2068規(guī)范不允許客戶(hù)端在重定向時(shí)改變請(qǐng)求的方法,但是很多現(xiàn)存的瀏覽器將302響應(yīng)視作為303響應(yīng),并且使用GET方式訪(fǎng)問(wèn)在Location中規(guī)定的URI,而無(wú)視原先請(qǐng)求的方法。狀態(tài)碼303和307被添加了進(jìn)來(lái),用以明確服務(wù)器期待客戶(hù)端進(jìn)行何種反應(yīng)。
咋一看主要區(qū)別如下:
302是http1.0的協(xié)議狀態(tài)碼,在http1.1版本的時(shí)候?yàn)榱思?xì)化302狀態(tài)碼又出來(lái)了兩個(gè)303和307,
你可以理解為303就是我們之前的302干的事情,臨時(shí)重定向。
307有點(diǎn)意思:
如果這不是一個(gè)GET或者HEAD請(qǐng)求,那么瀏覽器禁止自動(dòng)進(jìn)行重定向,除非得到用戶(hù)的確認(rèn),因?yàn)檎?qǐng)求的條件可能因此發(fā)生變化
不是get或head,那比如我們提交一個(gè)post會(huì)怎么樣。我做了個(gè)測(cè)試,demo地址點(diǎn)擊這里
我有四個(gè)表單,分別測(cè)試303和307的get和post請(qǐng)求,他們都會(huì)重定向到同一個(gè)url(target.php),這個(gè)php會(huì)打印出所有的請(qǐng)求參數(shù)
我把四個(gè)結(jié)果截圖如下
303post截圖如下
303get截圖如下
![
][2]
307post截圖如下
![
][3]
307get截圖如下
![
][4]
結(jié)語(yǔ)
**303重定向不會(huì)自動(dòng)吧get,post的請(qǐng)求帶到目標(biāo)url去。
307重定向會(huì)把post的請(qǐng)求自動(dòng)帶到目標(biāo)url,而對(duì)于get請(qǐng)求307也不會(huì)把參數(shù)帶過(guò)去**
原文見(jiàn)這里
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/82160.html
摘要:為了可以頂下這個(gè)雷,特意買(mǎi)了高性能網(wǎng)站建設(shè)指南。規(guī)則七避免使用表達(dá)式原因表達(dá)式在你不知道得情況下執(zhí)行多次,嚴(yán)重影響前端性能。這也是會(huì)降低前端性能的。 最近要實(shí)現(xiàn)前端性能探測(cè),可是對(duì)于一個(gè)剛?cè)肼殘?chǎng)的我來(lái)說(shuō)前端性能是個(gè)啥,我還是個(gè)只追求頁(yè)面展示效果的娃兒~。為了可以頂下這個(gè)雷,特意買(mǎi)了高性能網(wǎng)站建設(shè)指南。這本書(shū)真的不錯(cuò),強(qiáng)烈推薦看到本文的朋友看一下。 規(guī)則一 減少http請(qǐng)求數(shù) 原因:為什...
摘要:分別具體介紹幾個(gè)常用的狀態(tài)碼二成功的響應(yīng)結(jié)果表明請(qǐng)求被正常處理了。狀態(tài)碼返回時(shí),不包含任何響應(yīng)的主體部分。該狀態(tài)碼表示發(fā)送的請(qǐng)求需要有通過(guò)認(rèn)證認(rèn)證認(rèn)證的認(rèn)證信息。該狀態(tài)碼表明服務(wù)器端在執(zhí)行請(qǐng)求時(shí)發(fā)生了錯(cuò)誤。六總結(jié)狀態(tài)碼和狀況的不一致。 返回結(jié)果的 HTTP 狀態(tài)碼 一.簡(jiǎn)單介紹: 總述:HTTP 狀態(tài)碼負(fù)責(zé)表示客戶(hù)端 HTTP 請(qǐng)求的返回結(jié)果、標(biāo)記服務(wù)器端的處理是否正常、通知出現(xiàn)的錯(cuò)誤...
摘要:分別具體介紹幾個(gè)常用的狀態(tài)碼二成功的響應(yīng)結(jié)果表明請(qǐng)求被正常處理了。狀態(tài)碼返回時(shí),不包含任何響應(yīng)的主體部分。該狀態(tài)碼表示發(fā)送的請(qǐng)求需要有通過(guò)認(rèn)證認(rèn)證認(rèn)證的認(rèn)證信息。該狀態(tài)碼表明服務(wù)器端在執(zhí)行請(qǐng)求時(shí)發(fā)生了錯(cuò)誤。六總結(jié)狀態(tài)碼和狀況的不一致。 返回結(jié)果的 HTTP 狀態(tài)碼 一.簡(jiǎn)單介紹: 總述:HTTP 狀態(tài)碼負(fù)責(zé)表示客戶(hù)端 HTTP 請(qǐng)求的返回結(jié)果、標(biāo)記服務(wù)器端的處理是否正常、通知出現(xiàn)的錯(cuò)誤...
閱讀 3512·2023-04-26 02:41
閱讀 2646·2023-04-26 00:14
閱讀 3109·2021-08-11 10:22
閱讀 1448·2019-12-27 11:38
閱讀 3668·2019-08-29 18:34
閱讀 2466·2019-08-29 12:13
閱讀 3036·2019-08-26 18:26
閱讀 2087·2019-08-26 16:49