亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1286 | 回復(fù): 0
打印 上一主題 下一主題

重定向簡(jiǎn)單么?不,它很復(fù)雜! [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-12-22 08:54 |只看該作者 |倒序?yàn)g覽
重定向是一個(gè)看似簡(jiǎn)單,實(shí)際很復(fù)雜的問(wèn)題。HTTP狀態(tài)碼一共才五個(gè)系列(1XX,2XX,3XX,4XX,5XX),而重定向狀態(tài)碼被單獨(dú)作為一個(gè)系列 (3XX)存在,足以說(shuō)明它的重要性,但是很多人認(rèn)為知道301/302的區(qū)別就算熟悉重定向了,這實(shí)在是一大謬誤。本文主要介紹一下303/307。

為了方便測(cè)試,首先熟悉一下如何使用curl命令得到響應(yīng)頭:

-I/--head
    (HTTP/FTP/FILE) Fetch the HTTP-header only! HTTP-servers feature the command HEAD which this uses to get nothing but the header of a document. When used on a FTP or FILE file, curl displays the file size and last modification time only.

例子命令:curl -I http://www.google.com/

通常PHP里的重定向是這樣的:

header('Location: http://localhost/');
exit();

通過(guò)curl命令訪問(wèn)如上的代碼,我們將得到如下響應(yīng)頭:

HTTP/1.1 302 Found
Location: http://localhost/

如上的重定向代碼在編程里很常用,比如說(shuō)添加文章成功后,跳轉(zhuǎn)回列表頁(yè),不過(guò)這里的重定向狀態(tài)碼302卻是值得商榷的。

這還得從頭說(shuō)起,在HTTP1.0的時(shí)代,那時(shí)候302的名字還是“Moved Temporarily”,但在實(shí)際使用上,302往往包含了兩方面的意思(也就是后來(lái)的303/307),為了消除可能的混淆,在HTTP1.1 中,302被重命名為“Found”,并新加了303(See Other)和307(Temporary Redirect),至于PHP之所以在重定向時(shí)缺省使用302狀態(tài)碼是為了兼容的目的,所以不到不得已(有時(shí)候,客戶端是HTTP1.0的,只理解 302),不應(yīng)該使用302。

303和307都把重定向的URI置于Location頭中,他們的區(qū)別在于:

303:對(duì)于POST請(qǐng)求,它表示請(qǐng)求已經(jīng)被處理,客戶端可以接著使用GET方法去請(qǐng)求Location里的URI。
307:對(duì)于POST請(qǐng)求,表示請(qǐng)求還沒(méi)有被處理,客戶端應(yīng)該向Location里的URI重新發(fā)起POST請(qǐng)求。

下面看看PHP如何發(fā)送非302的重定向,以303為例:

// 第一種方法
header('Location: http://localhost/', true, 303);

// 第二種方法
header('HTTP/1.1 303 See Other');
header('Location: http://localhost/');

使用curl命令,你就會(huì)看到如下響應(yīng)頭:

HTTP/1.1 303 See Other
Location: http://localhost/

總結(jié),本文說(shuō)的主要是303/307之間的關(guān)系。之所以明確區(qū)分是為了讓狀態(tài)碼本身能夠準(zhǔn)確的表達(dá)響應(yīng)的含義,從而盡可能的避免對(duì)重定向的濫用。

參考文檔:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP