當網(wǎng)站地址變更時(shí),需要將舊域名301重定向到新的URL地址,實(shí)際上就是把舊地址的訪(fǎng)問(wèn)請求重新引導到新域名上。301永久重定向無(wú)論是對用戶(hù)還是搜索引擎都是比較友好的,對SEO完全沒(méi)有不好的一面。通過(guò)舊網(wǎng)站的關(guān)鍵詞排名和PR等級都會(huì )傳遞給新網(wǎng)站,網(wǎng)站更換了域名,用域名301永久重定向的方式告訴搜索引擎本網(wǎng)頁(yè)已經(jīng)永久性轉移到新的域名,避免搜索引擎無(wú)法找到頁(yè)面,網(wǎng)站對于搜索引擎相對比較友好。
域名重定向的好處有利于用戶(hù)體驗和搜索引擎抓取,301重定向跳轉對搜索引擎的好處有、增加域名權重、對網(wǎng)頁(yè)收錄的優(yōu)化、有利于網(wǎng)頁(yè)PR傳遞、可促進(jìn)搜索引擎優(yōu)化效果、對用戶(hù)體驗表示友、避免造成404錯誤頁(yè)面。使用301重定向把地址指向新的域名后,搜索引擎只對對新域名進(jìn)行索引,同時(shí)將舊地址原有的鏈接轉移搭配新域名下。正確的使用301永久性重定向命,對排名不會(huì )產(chǎn)生任何影響。
一、域名301重定向什么情況下使用
1、網(wǎng)站域名變更時(shí),使用301永久重定向將舊域名重定向至新域名,挽回關(guān)鍵詞排名和流量損失。
2、因某些原因需要刪除網(wǎng)站中的個(gè)別目錄時(shí),比如我要刪除巨推傳媒:400-606-5558的一級導航,這種情況就可以使用301永久重定向到網(wǎng)站首頁(yè)。
3、多個(gè)域名需要指向同一個(gè)站點(diǎn)時(shí),打算實(shí)現網(wǎng)址規范化,通過(guò)301永久重定向可以實(shí)現。
二、http中的重定向和請求轉發(fā)的區別(包含JS跳轉方法)
很簡(jiǎn)單,重定向是客戶(hù)端行為,轉發(fā)是服務(wù)器行為。轉發(fā)屬于一次請求,重定向屬于第2次請求,轉發(fā)地址欄不會(huì )發(fā)生改變,重定向地址欄會(huì )改變,轉發(fā)在項目?jì)?,重定?可以轉到項目外。當使用轉發(fā)時(shí),JSP容器將使用一個(gè)內部的方法來(lái)調用目標頁(yè)面,新的頁(yè)面繼續處理同一個(gè)請求,而瀏覽器將不會(huì )知道這個(gè)過(guò)程。 與之相反,重定向方式的含義是先進(jìn)個(gè)頁(yè)面通知瀏覽器發(fā)送一個(gè)新的頁(yè)面請求。
1、調用方式
我們知道,在servlet中調用轉發(fā)、重定向的語(yǔ)句如下:
request.getRequestDispatcher("new.jsp").forward(request, response);//轉發(fā)到new.jsp
response.sendRedirect("new.jsp");//重定向到new.jsp
在jsp頁(yè)面中你也會(huì )看到通過(guò)下面的方式實(shí)現轉發(fā):
當然也可以在jsp頁(yè)面中實(shí)現重定向:
<%response.sendRedirect("new.jsp");// 重定向到new.jsp%>
當然也可以在jsp頁(yè)面中實(shí)現重定向:
<%response.sendRedirect("new.jsp");//
2、本質(zhì)區別
解釋一
一句話(huà),重定向是客戶(hù)端行為,轉發(fā)是服務(wù)器行為。為什么這樣說(shuō)呢,這就要看兩個(gè)動(dòng)作的工作流程:
轉發(fā)過(guò)程:客戶(hù)瀏覽器發(fā)送http請求----》web服務(wù)器接受此請求--》調用內部的一個(gè)方法在容器內部完成請求處理和轉發(fā)動(dòng)作----》將目標資源發(fā)送給客戶(hù);在這里,轉發(fā)的路徑必須是同一個(gè)web容器下的url,其不能轉向到其他的web路徑上去,中間傳遞的是自己的容器內的request。在客戶(hù)瀏覽器路徑欄顯示的仍然是其先進(jìn)次訪(fǎng)問(wèn)的路徑,也就是說(shuō)客戶(hù)是感覺(jué)不到服務(wù)器做了轉發(fā)的。轉發(fā)行為是瀏覽器只做了一次訪(fǎng)問(wèn)請求。
重定向過(guò)程:客戶(hù)瀏覽器發(fā)送http請求----》web服務(wù)器接受后發(fā)送302狀態(tài)碼響應及對應新的location給客戶(hù)瀏覽器--》客戶(hù)瀏覽器發(fā)現是302響應,則自動(dòng)再發(fā)送一個(gè)新的http請求,請求url是新的location地址----》服務(wù)器根據此請求尋找資源并發(fā)送給客戶(hù)。在這里location可以重定向到任意URL,既然是瀏覽器重新發(fā)出了請求,則就沒(méi)有什么request傳遞的概念了。在客戶(hù)瀏覽器路徑欄顯示的是其重定向的路徑,客戶(hù)可以觀(guān)察到地址的變化的。重定向行為是瀏覽器做了至少兩次的訪(fǎng)問(wèn)請求的。
解釋二
重定向,其實(shí)是兩次request,
先進(jìn)次,客戶(hù)端request A,服務(wù)器響應,并response回來(lái),告訴瀏覽器,你應該去B。這個(gè)時(shí)候IE可以看到地址變了,而且歷史的回退按鈕也亮了。重定向可以訪(fǎng)問(wèn)自己web應用以外的資源。在重定向的過(guò)程中,傳輸的信息會(huì )被丟失。
舉例:response.sendRedirece(“l(fā)oginsucess.jsp”)
請求轉發(fā)是服務(wù)器內部把對一個(gè)request/response的處理權,移交給另外一個(gè)
對于客戶(hù)端而言,它只知道自己最早請求的那個(gè)A,而不知道中間的B,甚至C、D。 傳輸的信息不會(huì )丟失。
舉例:
//Request Dispatcher dis=request.getRequestDispatcher(“l(fā)oginsuccess”)
//dis.forward(request,response):
前言
html ,js 可以實(shí)現頁(yè)面跳轉。
jsp , asp, php 也有各自頁(yè)面跳轉與重定向的方式。
下文針對js 和jsp 的頁(yè)面跳轉實(shí)現方式進(jìn)行一個(gè)總結。
html 頁(yè)面跳轉方式
可以使用html 的meta 標簽實(shí)現頁(yè)面的跳轉。
[html] view plain copy
1.
2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
3.
4.
5.
6. <META NAME="Author" CONTENT="oscar999">
7. <meta http-equiv="refresh" content="0; URL=http://www.haotui.com.cn">
8.
10.
11.
12.
13. This is Test Page
14.
15.
這種用法比較常使用在:
新舊系統升級的狀況下, 暫時(shí)保留舊系統,通過(guò)域名進(jìn)入時(shí)自動(dòng)轉到新系統中。
JS 頁(yè)面跳轉方式
1. 使用window.location = "newurl"
[html] view plain copy
1.
2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
3.
4.
5.
6. <META NAME="Author" CONTENT="oscar999">
7.
8.
9.
10.
11. This is Test Page.
12.
15.
16.
也可以使用 window.location.href = "http://www.haotui.com.cn";
2. 使用 window.navigate
[html] view plain copy
1.
3. window.loction.replace方式實(shí)現頁(yè)面跳轉
有3個(gè)jsp頁(yè)面(1.aspx, 2.aspx, 3.aspx),進(jìn)系統默認的是1.aspx,當我進(jìn)入2.aspx的時(shí)候, 2.aspx里面用window.location.replace("3.aspx");
與用window.location.href ("3.aspx");
從用戶(hù)界面來(lái)看是沒(méi)有什么區別的,但是當3.aspx頁(yè)面有一個(gè)"返回"按鈕,調用window.history.go(-1); wondow.history.back();方法的時(shí)候,一點(diǎn)這個(gè)返回按鈕就要返回2.aspx頁(yè)面的話(huà),區別就出來(lái)了,當用 window.location.replace("3.aspx");連到3.aspx頁(yè)面的話(huà),3.aspx頁(yè)面中的調用 window.history.go(-1);wondow.history.back();方法是不好用的,會(huì )返回到1.aspx。
JSP跳轉方式
JSP 跳轉方式大約有三種:
1. response.sendRedirect(“newurl”);
-- 此語(yǔ)句前不允許有out.flush(),如果有,會(huì )有異常:
java.lang.IllegalStateException: Can't sendRedirect() after data has committed to the client.
at com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558)
--跳轉后瀏覽器地址欄變化
--如果要跳到不同主機下,跳轉后,此語(yǔ)句后面的語(yǔ)句會(huì )繼續執行,如同新開(kāi)了線(xiàn)程,但是對response的操作已經(jīng)無(wú)意義了
如果要跳到相同主機下,此語(yǔ)句后面的語(yǔ)句執行完成后才會(huì )跳轉;
2. response.setHeader("Location","newurl");
[html] view plain copy
1. response.setStatus(302);
2. response.setHeader("location","newurl");
這種使用方式要結合 setStatus(302), 302 這個(gè)狀態(tài)碼就是告訴瀏覽器要重定向了。
1. 此語(yǔ)句前不允許有out.flush(),如果有,頁(yè)面不會(huì )跳轉。
2. 跳轉后瀏覽器地址欄變化
3. 此語(yǔ)句后面的語(yǔ)句執行完成后才會(huì )跳轉
此語(yǔ)句前不允許有out.flush(),如果有,會(huì )有異常:
跳轉后瀏覽器地址欄不變,但是只能跳到當前主機下
此語(yǔ)句后面的語(yǔ)句執行完成后才會(huì )跳轉
跳轉后得路徑變?yōu)楫斍奥窂?,圖片不是絕對路徑將無(wú)法顯示
舉例:
整個(gè)簡(jiǎn)單的例子: 兩個(gè)文件 a.jsp 和 b.jsp .
[html] view plain copy
1.
2.
3. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
4. pageEncoding="ISO-8859-1"%>
5. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www2.w3.org/TR/html4/loose.dtd">
6.
7.
8. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
9.
10.
11.
12. Before: This is a.jsp!
13. <%
14. //response.sendRedirect("b.jsp");
15.
16. //response.setStatus(302);
17. //response.setHeader("location","b.jsp");
18.
19. %>
20.
21. <jsp:forward page="b.jsp"/>
22. After: This is a.jsp!
23.
24.
對于jsp 而言, 就需要嚼一嚼Redirect 和 forward 的差別了。
就字面意思而已: Redirect 翻譯成重定向, forward翻譯成轉發(fā)。
類(lèi)別 | 概念 | 共享數據 | 應用 |
Redirect | URL重新定向:可以是任意的URL | 不能共享request里面的數據 | 一般用于用戶(hù)注銷(xiāo)登錄時(shí)返回主頁(yè)面和跳轉到其它的網(wǎng)站等等 |
Forward | 頁(yè)面的轉發(fā):只能是同一個(gè)Web應用程序的其他Web組件 | 轉發(fā)頁(yè)面和轉發(fā)到的頁(yè)面可以共性request里面的數據 | 一般用于用戶(hù)登錄的時(shí)候根據角色轉發(fā)到相應的模塊等等
|
三、http重定向301/302/303/307
301 永久重定向,告訴客戶(hù)端以后應從新地址訪(fǎng)問(wèn).
302 作為HTTP1.0的標準,以前叫做Moved Temporarily ,現在叫Found. 現在使用只是為了兼容性的處理,包括PHP的默認Location重定向用的也是302.
但是HTTP 1.1 有303 和307作為詳細的補充,其實(shí)是對302的細化
303:對于POST請求,它表示請求已經(jīng)被處理,客戶(hù)端可以接著(zhù)使用GET方法去請求Location里的URI。
307:對于POST請求,表示請求還沒(méi)有被處理,客戶(hù)端應該向Location里的URI重新發(fā)起POST請求。
測試的test.html代碼,發(fā)起post請求到test.php頁(yè)面中
test.php頁(yè)面分別給出3種重定向處理,都跳到test2.php
test2.php打印出post的結果
(至于怎么寫(xiě)..自己查手冊吧,PHP發(fā)送頭很容易.)
1.....
2.301 => "HTTP/1.1 301 Moved Permanently",
3.302 => "HTTP/1.1 302 Found",
4.303 => "HTTP/1.1 303 See Other",
5.307 => "HTTP/1.1 307 Temporary Redirect",
6.....
測試結果:
301,302和303的處理結果是一樣的,直接跳轉到test2.php,post沒(méi)有內容
307的會(huì )重新post請求到test2.php,并且給出頁(yè)面提示
重定向實(shí)際使用是一個(gè)響應碼(301或302或303或307)和一個(gè)響應頭location,當瀏覽器收到響應的時(shí)候check響應碼是3xx,則會(huì )取出響應頭中location對應的url(重定向中url的編碼問(wèn)題),然后將該url替換瀏覽器地址欄并發(fā)起另一次HTTP事務(wù)。
關(guān)于301、302、303、307的區別,找不到好的文章,因此打算直擼HTTP 1.0規范和HTTP 1.1規范,結合一些實(shí)際的案例和tomcat實(shí)現,來(lái)說(shuō)清楚這幾個(gè)狀態(tài)碼的差異。
四、 https301重定向
原請求訪(fǎng)問(wèn)的是http://haotui.com.cn,然后返回302location=https://haotui.com.cn,從http轉到https。不過(guò)關(guān)于響應行中302狀態(tài)碼的描述存在爭議,在下文中會(huì )詳細討論。
五、tomcat重定向源碼
六、http詳細介紹
http 1.0規范中有2個(gè)重定向——301和302,在http 1.1規范中存在4個(gè)重定向——301、302、303和307,其中302是值得討論討論的。
1、 http 1.0
301狀態(tài)碼在HTTP 1.0和HTTP 1.1規范中均代表永久重定向,對于資源請求,原來(lái)的url和響應頭中location的url而言,資源應該對應location中的url。對于post請求的重定向,還是需要用戶(hù)確認之后才能重定向,并且應該以post方法發(fā)出重定向請求。
關(guān)于post請求重定向用戶(hù)確認的問(wèn)題,實(shí)際上瀏覽器都沒(méi)有實(shí)現;而且post請求的重定向應該發(fā)起post請求,這里瀏覽器也并不一定遵守,所以說(shuō)HTTP規范的實(shí)現并未嚴格按照HTTP規范的語(yǔ)義。
在301中資源對應的路徑修改為location的url,在SEO中并未出現問(wèn)題,但是在302中就出現了302劫持問(wèn)題。
1、301永久移動(dòng)
被請求的資源被分配了一個(gè)新的永久URL,并且任何未來(lái)對這個(gè)資源的引用應該使用該URL來(lái)完成。具有鏈接編輯能力的客戶(hù)端應該在可能的情況下自動(dòng)地將對request-URL的引用重新鏈接到由服務(wù)器返回的新引用。
新的URL必須由response.unless中的location字段給出,如果是HEAD請求,則響應的實(shí)體主體應該包含一個(gè)帶有到新URL的超鏈接的短信。
如果使用POST方法接收到301狀態(tài)代碼以響應請求,則用戶(hù)agnet不能自動(dòng)重定向請求,除非用戶(hù)可以確認,否則可能會(huì )改變發(fā)出請求的條件。
NOts:在收到301狀態(tài)碼后自動(dòng)重定向POST請求時(shí),一些現有的用戶(hù)代理將錯誤地將其更改為GET請求。
在http 1.0規范中,302表示臨時(shí)重定向,location中的地址不應該被認為是資源路徑,在后續的請求中應該繼續使用原地址。
規范:原請求是post,則不能自動(dòng)進(jìn)行重定向;原請求是get,可以自動(dòng)重定向;
實(shí)現:瀏覽器和服務(wù)器的實(shí)現并沒(méi)有嚴格遵守HTTP中302的規范,服務(wù)器不加遵守的返回302,瀏覽器即便原請求是post也會(huì )自動(dòng)重定向,導致規范和實(shí)現出現了二義性,由此衍生了一些問(wèn)題,譬如302劫持,因此在HTTP 1.1中將302的規范細化成了303和307,希望以此來(lái)消除二義性。
補充:302劫持——A站通過(guò)重定向到B站的資源xxoo,A站實(shí)際上什么都沒(méi)做但是有一個(gè)比較友好的域名,web資源xxoo存在B站并由B站提供,但是B站的域名不那么友好,因此對搜索引擎而言,可能會(huì )保存A站的地址對應xxoo資源而不是B站,這就意味著(zhù)B站出了資源版權、帶寬、服務(wù)器的錢(qián),但是用戶(hù)通過(guò)搜索引擎搜索xxoo資源的時(shí)候出來(lái)的是A站,A站什么都沒(méi)做卻被索搜引擎廣而告之用戶(hù),B站做了一切卻不被用戶(hù)知道,價(jià)值被A站竊取了。
2、302暫時(shí)移動(dòng)
被請求的資源暫時(shí)駐留在不同的URL中。因為重定向可能偶爾會(huì )被改變,所以clinet應該繼續使用請求URL來(lái)作為將來(lái)的請求。
URL必須由響應中的位置字段給出。除非是HEAD請求,否則響應的實(shí)體主體應該包含一個(gè)帶有到新URL的超鏈接的短注釋。
如果使用POST方法接收到302狀態(tài)碼以響應請求,則除非用戶(hù)能夠確認,否則用戶(hù)代理不能自動(dòng)重定向請求,因為這可能會(huì )改變發(fā)出請求的條件。
注意:在收到302狀態(tài)碼后自動(dòng)重定向POST請求時(shí),一些現有的用戶(hù)代理將錯誤地將其更改為GRT請求。
2. http 1.1
301和http 1.0規范中保持一致,注意資源對應的路徑應該是location中返回的url,而不再是原請求地址。
302在HTTP 1.1中,實(shí)際上302是不再推薦使用的,只是為了兼容而作保留。規范中再次重申只有當原請求是GET or HEAD方式的時(shí)候才能自動(dòng)的重定向,為了消除HTTP 1.0中302的二義性,在HTTP 1.1中引入了303和307來(lái)細化HTTP 1.0中302的語(yǔ)義。
1、302found
被請求的資源暫時(shí)駐留在一個(gè)不同的URL中,因為重定向可能會(huì )被改變,客戶(hù)端應該繼續使用請求URL來(lái)做未來(lái)的請求,這個(gè)響應只有在緩存控制或者Expires頭域指示的時(shí)候才能被緩存。
臨時(shí)URL應該由響應中的位置字段給出。如果請求方法是HEAD,響應實(shí)體應該包含一個(gè)超鏈接到新URL的短超文本記錄。
如果為了響應GET或HEAD以外的請求而接收到302狀態(tài)碼,除非用戶(hù)能夠確認,否則用戶(hù)代理不能自動(dòng)重定向請求,因為這可能會(huì )改變發(fā)出請求的條件。
注意:RFC 1945和RFC 2068指定客戶(hù)端不允許更改重定向的請求上的方法。但是,大多數現有的用戶(hù)代理實(shí)現將302視為303響應,對位置字段值執行GET原始請求方法的狀態(tài)代碼303和307已經(jīng)被添加用于希望明確地清楚客戶(hù)端期望哪種反應的服務(wù)器。
303在HTTP 1.0的時(shí)候,302的規范是原請求是post不可以自動(dòng)重定向,但是服務(wù)器和瀏覽器的實(shí)現是運行重定向。
把HTTP 1.0規范中302的規范和實(shí)現拆分開(kāi),分別賦予HTTP 1.1中303和307,因此在HTTP 1.1中,303繼承了HTTP 1.0中302的實(shí)現(即原請求是post,也允許自動(dòng)進(jìn)行重定向,結果是無(wú)論原請求是get還是post,都可以自動(dòng)進(jìn)行重定向),而307則繼承了HTTP 1.0中302的規范(即如果原請求是post,則不允許進(jìn)行自動(dòng)重定向,結果是post不重定向,get可以自動(dòng)重定向)。
2、303see other
對請求的響應可以在不同的URL下找到,并且應該在該資源上使用GET方法來(lái)獲取。這個(gè)方法的存在主要是為了允許輸出POST激活的腳本來(lái)將用戶(hù)代理重定向到選定的資源。新的URL 不是原始請求資源的替代引用,303響應不能被緩存,但是對第二個(gè)(重定向的)請求的響應可能是可緩存的。
不同的URL應該通過(guò)響應中的位置字段求得。如果請求方法是HEAD,響應實(shí)體應該包含一個(gè)超鏈接到新URL的短超文本記錄。
注意:很多HTTP-1.1用戶(hù)代理不了解303的狀態(tài)。當與這些客戶(hù)端的互操作性是一個(gè)問(wèn)題時(shí),可以使用302狀態(tài)代碼。因為大多數用戶(hù)代理對302響應做出反應,如303所述。
307在http 1.1規范中,307為臨時(shí)重定向,注意劃紅線(xiàn)的部分,如果重定向307的原請求不是get或者head方法,那么瀏覽器一定不能自動(dòng)的進(jìn)行重定向,即便location有url,也應該忽略。
也就是307繼承了302在HTTP 1.0中的規范(303繼承了302在HTTP 1.0中的實(shí)現)。
3、307當代重定向
被請求的資源暫時(shí)駐留在一個(gè)不同的URL中。由于重定向可能偶爾被修改,所以客戶(hù)端應該繼續使用請求URL作為將來(lái)的請求。這個(gè)響應只有在cache-control或expires頭域指示的情況下才能被緩存。
臨時(shí)URL應該由響應中的位置字段給出。如果請求方法是HEAD,那么響應實(shí)體應該包含一個(gè)超鏈接到新URL(d)的短超文本記錄,因為許多pre-HTTP / 1.1 用戶(hù)代理不理解307狀態(tài)。因此,注釋?xiě)摪脩?hù)在新的URL上重復原始請求所需的信息。
如果接收到307狀態(tài)碼以響應除GET或HEAD之外的請求,則用戶(hù)代理不能自動(dòng)重定向請求,除非用戶(hù)可以確認它,因為這可能會(huì )改變發(fā)出請求的條件。
在HTTP 1.0規范中,302的規范并沒(méi)有被服務(wù)器和瀏覽器遵守,即規范和實(shí)現出現了二義性,因此在HTTP 1.1中,將302的規范和實(shí)現拆分成了303和307。
瀏覽器對307狀態(tài)的處理規劃與302狀態(tài)相同,之所以將值307引入到HTTP1.1中,是因為在最初的消息是POST的情況下,許多瀏覽器依舊錯誤地跟隨302響應中的定向信息。瀏覽器應該只在接收到303響應狀態(tài)時(shí)才從POST請求的重定向信息。引入這個(gè)新?tīng)顟B(tài)是為了去除二義性:如果接到303響應,則進(jìn)行進(jìn)行GET和POST請求的重定向,如果接收到307響應,對于GET請求的重定向,則繼續進(jìn)行,但對于POST請求的重定向,則不在繼續下去。
七、HTTP狀態(tài)碼302、303、307區別
HTTP狀態(tài)碼3XX表示重定向,表明瀏覽器需要執行某些特殊的處理以正確處理請求。
301 Moved Permanently
永久性定向。該狀態(tài)碼表示請求的資源已被分配了新的URI,以后應使用資源現在所指的URI。
302 Found
臨時(shí)性重定向。該狀態(tài)碼表示請求的資源已被分配了新的URI,希望用戶(hù)(本次)能使用新的URI訪(fǎng)問(wèn)。和301相似,但302表示的資源不是永久移動(dòng),只是臨時(shí)性的。換句話(huà)說(shuō),已移動(dòng)的資源對應的URI將來(lái)還有可能發(fā)生變化,比如,用戶(hù)把uri保存為書(shū)簽,但不會(huì )像301狀態(tài)碼出現時(shí)那樣更新書(shū)簽,而是仍舊保留返回302狀態(tài)碼的頁(yè)面對應的uri
303 See Other
該狀態(tài)碼表示由于請求對應的資源存在著(zhù)另一個(gè)URI,應使用GET方法定向獲取請求的資源,=,
303和302狀態(tài)碼有著(zhù)相同的功能,但是303明確表示客戶(hù)端應當采用get方法獲取資源,這點(diǎn)與302狀態(tài)碼有區別。
比如,當使用post方法訪(fǎng)問(wèn)CGI程序,其執行后的處理結果為希望客戶(hù)端能以get方法重定向到另一個(gè)uri上去時(shí),返回303狀態(tài)碼。雖然302也可實(shí)現相同的功能,但這里使用302狀態(tài)碼是最理想的。
當301、302、303響應狀態(tài)碼返回時(shí),幾乎所有瀏覽器都會(huì )把post改成get,并刪除請求報文內的主體,之后請求會(huì )自動(dòng)再次發(fā)送。
301、302標準是禁止將post方法改變成get方法的,但實(shí)際使用時(shí)大家都會(huì )這么做。
307 Temporary Redirect
臨時(shí)重定向。該狀態(tài)碼與302有相同的含義。盡管302標準禁止post變化get,但實(shí)際使用時(shí)大家不遵守。
307會(huì )遵照瀏覽器標準,不會(huì )從post變?yōu)間et。但是對于處理響應時(shí)的行為,各種瀏覽器有可能出現不同的情況。
本文由巨推傳媒:400-606-5558提供的域名301重定向頁(yè)面轉跳的操作方法
作者: 巨推傳媒:400-606-5558
版權屬于: 巨推傳媒:400-606-5558,
版權所有。轉載時(shí)必須以鏈接形式注明作者和原始出處及本聲明。
更多推薦
更多推薦
微信公眾號代運營(yíng)一般費用多少錢(qián)?
一般微信公眾平臺外包服務(wù)收到單后,會(huì )連接招標方的一些要求,例如招標方規定是月更是多少篇,篇幅規定是多少,必須做到哪些實(shí)際效果,那麼外包服務(wù)會(huì )依據招標方的這種要求...
2021-01-14 10:56:56