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

目錄 搜尋
Guides Access control CORS Authentication Browser detection using the user agent Caching Caching FAQ Compression Conditional requests Connection management in HTTP 1.x Content negotiation Content negotiation: List of default Accept values Cookies CSP Messages Overview Protocol upgrade mechanism Proxy servers and tunneling Proxy servers and tunneling: Proxy Auto-Configuration (PAC) file Public Key Pinning Range requests Redirections Resources and specifications Resources and URIs Response codes Server-Side Access Control Session Guides: Basics Basics of HTTP Choosing between www and non-www URLs Data URIs Evolution of HTTP Identifying resources on the Web MIME Types MIME types: Complete list of MIME types CSP Content-Security-Policy Content-Security-Policy-Report-Only CSP: base-uri CSP: block-all-mixed-content CSP: child-src CSP: connect-src CSP: default-src CSP: font-src CSP: form-action CSP: frame-ancestors CSP: frame-src CSP: img-src CSP: manifest-src CSP: media-src CSP: object-src CSP: plugin-types CSP: referrer CSP: report-uri CSP: require-sri-for CSP: sandbox CSP: script-src CSP: style-src CSP: upgrade-insecure-requests CSP: worker-src Headers Accept Accept-Charset Accept-Encoding Accept-Language Accept-Ranges Access-Control-Allow-Credentials Access-Control-Allow-Headers Access-Control-Allow-Methods Access-Control-Allow-Origin Access-Control-Expose-Headers Access-Control-Max-Age Access-Control-Request-Headers Access-Control-Request-Method Age Allow Authorization Cache-Control Connection Content-Disposition Content-Encoding Content-Language Content-Length Content-Location Content-Range Content-Type Cookie Cookie2 Date DNT ETag Expect Expires Forwarded From Headers Host If-Match If-Modified-Since If-None-Match If-Range If-Unmodified-Since Keep-Alive Large-Allocation Last-Modified Location Origin Pragma Proxy-Authenticate Proxy-Authorization Public-Key-Pins Public-Key-Pins-Report-Only Range Referer Referrer-Policy Retry-After Server Set-Cookie Set-Cookie2 SourceMap Strict-Transport-Security TE Tk Trailer Transfer-Encoding Upgrade-Insecure-Requests User-Agent User-Agent: Firefox Vary Via Warning WWW-Authenticate X-Content-Type-Options X-DNS-Prefetch-Control X-Forwarded-For X-Forwarded-Host X-Forwarded-Proto X-Frame-Options X-XSS-Protection Methods CONNECT DELETE GET HEAD Methods OPTIONS PATCH POST PUT Status 100 Continue 101 Switching Protocols 200 OK 201 Created 202 Accepted 203 Non-Authoritative Information 204 No Content 205 Reset Content 206 Partial Content 300 Multiple Choices 301 Moved Permanently 302 Found 303 See Other 304 Not Modified 307 Temporary Redirect 308 Permanent Redirect 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Required 408 Request Timeout 409 Conflict 410 Gone 411 Length Required 412 Precondition Failed 413 Payload Too Large 414 URI Too Long 415 Unsupported Media Type 416 Range Not Satisfiable 417 Expectation Failed 426 Upgrade Required 428 Precondition Required 429 Too Many Requests 431 Request Header Fields Too Large 451 Unavailable For Legal Reasons 500 Internal Server Error 501 Not Implemented 502 Bad Gateway 503 Service Unavailable 504 Gateway Timeout 505 HTTP Version Not Supported 511 Network Authentication Required Status
文字

URL重定向或URL轉(zhuǎn)發(fā)是一種保持鏈接處于活動狀態(tài)的技術(shù),而實際資源(作為頁面,表單或整個Web應(yīng)用程序)位于不同的URL上。HTTP提供了一種特殊類型的響應(yīng)(HTTP重定向),用于執(zhí)行用于多種目的的此操作:正在進行站點維護時的臨時重定向,在站點體系結(jié)構(gòu)更改后保持外部鏈接正常工作的永久重定向,上載文件時的進度頁,還有很多 …

原理

在HTTP中,服務(wù)器通過向請求發(fā)送特殊響應(yīng)來重定向重定向。HTTP重定向是狀態(tài)碼為的響應(yīng)3xx。瀏覽器在收到重定向響應(yīng)時,會使用提供的新網(wǎng)址并立即加載該網(wǎng)址:大多數(shù)情況下,重定向?qū)τ脩魜碚f都是透明的,除此之外性能下降很小。

有幾種類型的重定向,它們分為三類:永久性,臨時性和特殊重定向。

永久重定向

這些重定向意味著永遠持續(xù)下去。他們暗示原來的網(wǎng)址不應(yīng)該再使用,并且新的網(wǎng)址是首選。搜索引擎機器人會觸發(fā)其索引中相關(guān)資源的URL更新。

Code

Text

Method handling

Typical use case

301

Moved Permanently

GET methods unchanged. Others may or may not be changed to GET.1

Reorganization of a Web site.

308

Permanent Redirect

Method and body not changed.

Reorganization of a Web site, with non-GET links/operations.

1規(guī)范沒有意圖允許更改方法,但實際上有用戶代理在這里執(zhí)行此操作。308已被創(chuàng)建以消除使用非GET方法時行為的不明確性。

臨時重定向

有時,所請求的資源無法從其規(guī)范位置訪問,但可以從其他位置訪問。在這種情況下,可以使用臨時重定向。搜索引擎機器人不會記住新的臨時鏈接。在創(chuàng)建,更新和刪除資源以呈現(xiàn)臨時進度頁面時,也會使用臨時重定向。

文本

方法處理

典型的用例

302

發(fā)現(xiàn)

GET方法不變。其他可能會或可能不會更改為GET.2

該網(wǎng)頁暫時無法使用,原因尚未預(yù)見。這樣,搜索引擎不會更新他們的鏈接。

303

見其他

GET方法不變。其他人更改為GET(身體丟失)。

用于在PUT或POST之后重定向,以防止重新觸發(fā)操作的頁面刷新。

307

臨時重定向

方法和主體沒有改變

該網(wǎng)頁暫時無法使用,原因尚未預(yù)見。這樣,搜索引擎不會更新他們的鏈接。當(dāng)網(wǎng)站上的非GET鏈接/操作可用時,優(yōu)于302。

2規(guī)范沒有意圖允許方法改變,但實際上有用戶代理在那里做這個。307已被創(chuàng)建以消除使用非GET方法時行為的不明確性。

特殊的重定向

除了這些通常的重定向之外,還有兩個特定的重定向。的304(沒有改變)一個頁面到本地緩存的副本(這是陳舊的)重定向,以及300(可多選)是手動重定向:身體,由瀏覽器作為網(wǎng)頁呈現(xiàn),列出了可能的重定向和用戶點擊一個選擇它。

文本

典型的用例

300

多項選擇

并不多:這些選擇被列在正文的HTML頁面中。可以提供200 OK狀態(tài)。

304

未修改

緩存刷新:這表示緩存值仍然是新鮮的可以使用。

指定重定向的替代方法

HTTP重定向不是定義重定向的唯一方法。還有其他兩種方法:使用<meta>元素的HTML重定向,以及使用DOM的 JavaScript重定向。

HTML重定向

HTTP重定向是創(chuàng)建重定向的首選方式,但有時Web開發(fā)人員無法控制服務(wù)器或無法對其進行配置。對于這些特殊情況下,Web開發(fā)人員可以用一門手藝的HTML頁面<meta>元素和http-equiv設(shè)置屬性refresh<head>頁面。當(dāng)顯示頁面時,瀏覽器會找到這個元素并且會轉(zhuǎn)到指定的頁面。

<head> 
  <meta http-equiv="refresh" content="0; URL=http://www.example.com/" /></head>

content屬性以一個數(shù)字開頭,表示瀏覽器在重定向到給定URL之前等待多少秒。始終將其設(shè)置0為更好的可訪問性。

顯然,這種方法只適用于HTML頁面(或類似的),不能用于圖像或任何其他類型的內(nèi)容。

請注意,這些重定向會破壞瀏覽器中的后退按鈕:您可以返回到帶有此標(biāo)題的頁面,但它會立即再次向前移動。

JavaScript重定向

JavaScript中的重定向是通過為window.location屬性設(shè)置一個值并加載新頁面來創(chuàng)建的。

window.location = "http://www.example.com/";

與HTML重定向一樣,這不能適用于所有資源,顯然這只會在執(zhí)行JavaScript的客戶端上起作用。另一方面,有更多的可能性,例如,只有滿足一些條件時才能觸發(fā)重定向。

優(yōu)先順序

對于URL重定向有三種可能性,可以同時指定幾種方法,但首先應(yīng)用哪一種?優(yōu)先順序如下:

  1. 當(dāng)甚至沒有傳輸頁面時,HTTP重定向總是首先執(zhí)行,當(dāng)然甚至沒有讀取。

  1. <meta>如果沒有任何HTTP重定向,則執(zhí)行HTML重定向()。

  1. 只有在客戶端啟用JavaScript的情況下,JavaScript重定向才是最后的手段。

如果可能,請始終嘗試使用HTTP重定向,并且不要使用<meta>元素。如果開發(fā)人員更改HTTP重定向并忘記HTML重定向,則重定向不再相同,或者以無限循環(huán)結(jié)束,或發(fā)生其他噩夢。

用例

有很多用于重定向的用例,但由于每次重定向都會影響性能,所以它們的使用應(yīng)該保持在最低限度。

域別名

理想情況下,一個資源有一個位置,因此有一個URL。但是有理由希望有一個資源的替代名稱(幾個域名,比如有或沒有www前綴,或者更短和易記的URL,...)。在這些情況下,不要復(fù)制資源,而是使用重定向到一個真正的(規(guī)范)URL是有用的。

出于以下幾個原因可以完成域別名化:

  • 擴大您網(wǎng)站的覆蓋面。一個常見的情況是,當(dāng)您的網(wǎng)站位于www.example.com域名下時,您也example.com應(yīng)該可以訪問您的網(wǎng)頁。在這種情況下設(shè)置example.com頁面的重定向www.example.com。您也可能會提供常用的同義詞名稱,或經(jīng)常輸入您的域名的拼寫錯誤。

  • 轉(zhuǎn)移到其他域。例如,您的公司已被重新命名,當(dāng)您搜索舊名稱時,您希望習(xí)慣了舊公司網(wǎng)站的用戶仍能以新名稱找到您。

  • 強制HTTPS。對您網(wǎng)站的HTTP版本的請求將被重定向到您網(wǎng)站的HTTPS版本。

保持鏈接活著

當(dāng)您重新組織網(wǎng)站時,資源的URL會發(fā)生變化。即使您可以更新網(wǎng)站的內(nèi)部鏈接以匹配新的命名方案,也無法控制外部資源使用的URL。你不想破壞這些鏈接,因為它們?yōu)槟銕碛袃r值的用戶(并幫助你的搜索引擎優(yōu)化),所以你設(shè)置了從舊網(wǎng)址到新網(wǎng)址的重定向。

即使這種技術(shù)也適用于內(nèi)部鏈接,您應(yīng)該盡量避免內(nèi)部重定向。重定向具有顯著的性能成本(因為額外的HTTP請求已完成),如果可以通過更正內(nèi)部鏈接來避免它,則應(yīng)修復(fù)這些鏈接。

對不安全請求的臨時響應(yīng)

不安全的請求修改服務(wù)器的狀態(tài),用戶不應(yīng)無意中重播它們。通常情況下,你不希望你的用戶重新發(fā)送PUT,POSTDELETE請求。如果您只是作為此請求的結(jié)果提供響應(yīng),則只需簡單按下重新加載按鈕(可能在確認消息之后),重新發(fā)送請求。

在這種情況下,服務(wù)器可以發(fā)回303包含正確信息的(請參閱其他)響應(yīng),但如果按下重新加載按鈕,則只會重新顯示此頁面,而不會重播不安全的請求。

針對長時間請求的臨時響應(yīng)

某些請求可能需要更多時間在服務(wù)器上,例如有時DELETE請求被安排用于稍后處理。在這種情況下,響應(yīng)是一個303(請參見其他)重定向,該重定向鏈接到指示該操作已安排的頁面,并最終通知有關(guān)進度或允許取消該進度。

在通用服務(wù)器中配置重定向

阿帕奇

重定向可以在服務(wù)器配置文件中或.htaccess每個目錄中設(shè)置。

所述mod_alias中模塊具有RedirectRedirect_Match該設(shè)置了指令302(默認)的反應(yīng):

<VirtualHost *:80>
	ServerName example.com
	Redirect / http://www.example.com</VirtualHost>

該URL http://example.com/將被重定向到http://www.example.com/(但不是http://example.com/other.html

Redirect_Match 做同樣的事情,但需要一個正則表達式來定義受影響的URL集合:

RedirectMatch ^/images/(.*)$ http://images.example.com/$1

images/文件夾中的所有文檔都將重定向到不同的域。

如果您不想設(shè)置臨時重定向,則可以使用額外參數(shù)(要使用的HTTP狀態(tài)碼或permanent關(guān)鍵字)來設(shè)置不同的重定向:

Redirect permanent / http://www.example.com
Redirect 301 / http://www.example.com

該mod_rewrite的模塊也可以用來創(chuàng)建重定向。它更靈活,但使用起來更復(fù)雜一些。

Nginx

在Nginx中,您為要重定向的內(nèi)容創(chuàng)建特定的服務(wù)器塊:

server {
	listen 80;
	server_name example.com;return 301 $scheme://www.example.com$request_uri;}

要僅將重定向應(yīng)用于文件夾或頁面的子集,請使用以下rewrite指令:

rewrite ^/images/(.*)$ http://images.example.com/$1 redirect;rewrite ^/images/(.*)$ http://images.example.com/$1 permanent;

IIS

在IIS中,您使用該<httpRedirect>元素來配置重定向。

重定向循環(huán)

當(dāng)連續(xù)的重定向遵循已經(jīng)遵循的重定向時,重定向循環(huán)發(fā)生。換句話說,有一個永遠不會完成的循環(huán),最終不會找到任何頁面。

大多數(shù)情況下,這是一個服務(wù)器問題,如果服務(wù)器無法檢測到,它會發(fā)回一個500 Internal Server Error。如果在修改服務(wù)器配置后很快遇到這樣的錯誤,這可能是重定向循環(huán)。

有時候,服務(wù)器不會檢測到它:重定向循環(huán)可以分布在幾臺服務(wù)器上,每臺服務(wù)器都沒有完整的圖像。在這種情況下,瀏覽器會檢測到它并發(fā)布錯誤消息。Firefox將顯示:

Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

而Chrome會顯示:

This Webpage has a redirect loop

在這兩種情況下,用戶都無法做很多事情(除非他們身上發(fā)生了腐敗現(xiàn)象,例如緩存或Cookie不匹配)。

避免重定向循環(huán)很重要,因為它們完全破壞了用戶體驗。

在MDN上編輯此頁面

上一篇: 下一篇: