偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

ASP.NET中利用HTTP報(bào)頭狀態(tài)碼實(shí)現(xiàn)SEO

開(kāi)發(fā) 后端
本文將介紹ASP.NET在SEO方面的實(shí)現(xiàn),主要是關(guān)于HTTP報(bào)頭狀態(tài)碼以及內(nèi)容重定向。希望本文能對(duì)大家有所幫助。

我們將在這里介紹一些ASP.NET開(kāi)發(fā)過(guò)程中,利用HTTP報(bào)頭狀態(tài)碼進(jìn)行SEO的實(shí)例。其實(shí)這樣的SEO更多的是為了方便檢查錯(cuò)誤狀態(tài),實(shí)現(xiàn)更好的頁(yè)面體驗(yàn),而不是簡(jiǎn)單單純的迎合搜索引擎式的SEO。

我們經(jīng)常說(shuō)“404錯(cuò)誤”,你知道他指的是什么意思么?

404其實(shí)是Http報(bào)頭所包含的一個(gè)“狀態(tài)碼”,表明該Http請(qǐng)求失敗。那么除此之外,還有哪些常用的狀態(tài)碼呢?這些狀態(tài)碼和SEO又有什么關(guān)系呢?

每次當(dāng)用戶代理(可以理解為就是IE和Firefox)向Web站點(diǎn)請(qǐng)求一個(gè)URL地址,服務(wù)器都會(huì)給予回復(fù),回復(fù)內(nèi)容包括兩部分:HTTP報(bào)頭,和被請(qǐng)求的內(nèi)容。但僅從瀏覽器上我們通常只能看到內(nèi)容而看不到報(bào)頭信息。所以,我們需要通過(guò)一些瀏覽器插件來(lái)觀察他們。就我個(gè)人而言,IE我用WebDeveloper;FireFox我用Fiddler。有興趣的朋友可以在網(wǎng)上自行下載,兩個(gè)都是相當(dāng)流行的。 對(duì)SEO而言,我們需要了解的狀態(tài)代碼有:重定向:301和302 被刪除:404 服務(wù)器錯(cuò)誤:500 我們依次講解,首先將302。302在asp.net中有一個(gè)很常見(jiàn)的原型:Response.Redirect(),請(qǐng)看代碼:  

  1. protected void Button1_Click(object sender, EventArgs e)  
  2. {  
  3.     Response.Redirect("~/target.aspx");  
  4.     //Server.Transfer("~/target.aspx");  

source.aspx頁(yè)面上一個(gè)Button,Click事件中代碼為Response.Redirect(~/target.aspx),點(diǎn)擊source.aspx頁(yè)面Button,查看該頁(yè)面對(duì)應(yīng)的狀態(tài)碼,結(jié)果就是302。(如下圖,我使用的是Web Development,不知道為什么enable log之后,就無(wú)法再轉(zhuǎn)到target頁(yè)面了?各位同學(xué)知道原因的請(qǐng)指點(diǎn)一二)

代碼段1 

但可以查看詳細(xì)信息,可以發(fā)現(xiàn)302的影響,response指明了要轉(zhuǎn)向的url。  

代碼段2 

客戶端/服務(wù)器之間往返的過(guò)程其實(shí)是這樣的:

1. 點(diǎn)擊Button,產(chǎn)生回發(fā),回發(fā)的目標(biāo)頁(yè)面仍然是source.aspx,所以請(qǐng)求仍由source.aspx頁(yè)面進(jìn)行處理,這樣才能進(jìn)入source.aspx頁(yè)面的Click事件;

2. Click事件中,Response.Redirect(~/target.aspx)所作的事情實(shí)際上就是:     

2.1 將回復(fù)中Http報(bào)頭的狀態(tài)碼改成302;     

2.1 指明302指向的頁(yè)面就是target.aspx;

3. 瀏覽器(用戶代理)收到回復(fù)的報(bào)頭信息后,     

3.1 將URL地址欄的地址改成target.aspx;    

3.2 向target.aspx發(fā)出請(qǐng)求 和Response.Redirect()同樣著名的是Server.Transfer()。但使用Server.Transfer,你會(huì)發(fā)現(xiàn),頁(yè)面對(duì)應(yīng)的狀態(tài)碼是200,且地址欄的url并不會(huì)發(fā)生改變,仍然是source.aspx!這是因?yàn)镾erver.Transfer是完全在服務(wù)器端進(jìn)行跳轉(zhuǎn)的。所以一種很流行但我覺(jué)得不那么正確的說(shuō)法就是:應(yīng)當(dāng)使用Server.Transfer()而不是Response.Redirect()來(lái)提高性能。因?yàn)樵诘玫絊erver.Transfer()性能提升的同時(shí),你應(yīng)該權(quán)衡:性能的提高,和由此產(chǎn)生的代價(jià)。很難直接給出一個(gè)答案,這需要依靠具體的情景來(lái)做判斷。

但我傾向于盡量不使用Server.Transfer(),因?yàn)椋?. 性能提升不大,節(jié)約的其實(shí)就是報(bào)頭信息的往返;2. 清晰的URL無(wú)論對(duì)于終端用戶,還是開(kāi)發(fā)調(diào)試,都有很重要的作用。          好了,理解了302,301也就好辦了。302意味著重定向是暫時(shí)的,而301則是***的重定向。

就SEO而言,為了延續(xù)鏈接價(jià)值和排除重復(fù)內(nèi)容 ,我們?cè)谝韵聨追N情況下都可能會(huì)用到301: 1. 域名更換; 2. 多個(gè)域名間映射;如www.freeflying.com和www.freeflying.cn,兩個(gè)域名其實(shí)指向的是同一個(gè)網(wǎng)站,這就會(huì)造成大量的重復(fù)內(nèi)容,對(duì)網(wǎng)站的排名不利。 3. 清除默認(rèn)索引頁(yè)的重復(fù)問(wèn)題:比如我們輸入www.freeflying.com/article/時(shí),如果在IIS里進(jìn)行了設(shè)定,將指向www.freeflying.com/article/Default.aspx 4. 其他的“不同域名相同內(nèi)容”的重復(fù)問(wèn)題,典型的就是URL重寫(xiě)后,www.freeflying.com/article/321.html和www.freeflying.com/article.aspx?id=321指向的其實(shí)都是同一個(gè)網(wǎng)頁(yè)內(nèi)容。 對(duì)于404,最直觀的理解就是頁(yè)面不存在。如果網(wǎng)站是純靜態(tài)的,這很好理解;但當(dāng)網(wǎng)站做成動(dòng)態(tài)之后,如www.freeflying.com/article/321.html(映射為www.freeflying.com/article.aspx?id=321),雖然id=321的文章已經(jīng)被刪除了,或者根本不存在,但article.aspx這個(gè)頁(yè)面始終是存在的,所以HTTP報(bào)頭的狀態(tài)碼不會(huì)是404,而是200,表示請(qǐng)求成功。我們假設(shè)一個(gè)網(wǎng)站有id=321/342/6739……的文章都被刪除了,但蜘蛛并不知道,它仍然會(huì)進(jìn)行抓取,結(jié)果它發(fā)現(xiàn),這些不同的URL對(duì)應(yīng)的居然全是同一個(gè)頁(yè)面。它就會(huì)將其當(dāng)做重復(fù)頁(yè)面進(jìn)行處理。 500意味著程序內(nèi)部出現(xiàn)異常,比如3/0,代碼如下:  

  1. protected void Button1_Click(object sender, EventArgs e)  
  2. {  
  3.     int i, j;  
  4.     i = 8;  
  5.     j = 0;  
  6.     this.Label1.Text = (i / j).ToString();  
如果搜索引擎接到一個(gè)500的狀態(tài)碼時(shí),搜索引擎會(huì)理解程序只是出現(xiàn)了暫時(shí)性的錯(cuò)誤,它會(huì)在之后繼續(xù)抓取,查看問(wèn)題是否已經(jīng)解決,這并不會(huì)給網(wǎng)站帶來(lái)太大的問(wèn)題——只要你能夠盡快恢復(fù)。但是,Asp.net自帶的個(gè)custom error的web.config配置,會(huì)讓我們?cè)诓唤?jīng)意間“失誤”。理由和上面講到的404變200類似,當(dāng)轉(zhuǎn)向自定義的error.aspx之后,蜘蛛得到的是成功鏈接error.aspx的200代碼,所以蜘蛛會(huì)以為報(bào)錯(cuò)的originpage.aspx正常的顯示內(nèi)容就是error.aspx的內(nèi)容。不同url參數(shù)的originpage.aspx會(huì)被蜘蛛認(rèn)為是不同的url,所以蜘蛛會(huì)認(rèn)為這些所有的url都重復(fù)了——后果是很嚴(yán)重的。

好了,認(rèn)識(shí)到問(wèn)題的嚴(yán)重性之后,我們來(lái)看解決問(wèn)題的辦法,太簡(jiǎn)單了,呵呵

  1. protected void Page_Load(object sender, EventArgs e)  
  2. {  
  3.     //如果你希望搜索引擎知道這個(gè)url將不再使用  
  4.     Response.StatusCode = 404;  
  5.  
  6.     //如果你希望告訴搜索引擎這個(gè)url只是出現(xiàn)了暫時(shí)的故障  
  7.     Response.StatusCode = 500;  
  8.  
  9.     //如果你想***重定向該頁(yè)面  
  10.     Response.StatusCode = 301;  
  11.     Response.RedirectLocation = @"\website1\target.aspx";  

原文標(biāo)題:ASP.NET的SEO:HTTP報(bào)頭狀態(tài)碼---內(nèi)容重定向

鏈接:http://www.cnblogs.com/freeflying/archive/2010/02/24/1672308.html

【編輯推薦】

  1. ASP.NET 4中的SEO改進(jìn)
  2. ASP.NET中的cookieless屬性
  3. 關(guān)于靜態(tài)頁(yè)和SEO的看法
  4. 專家暢談ASP.NET與PHP的未來(lái)
  5. ASP.NET MVC 2 RC 2發(fā)布 即將支持VS2010
責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2009-07-28 15:29:03

實(shí)現(xiàn)HTTP請(qǐng)求ASP.NET

2010-01-08 11:04:06

ASP.NET 4SEO

2009-07-23 16:20:48

HTTP協(xié)議ASP.NET

2009-07-20 17:21:43

Session狀態(tài)ASP.NET

2012-04-23 15:10:18

ASP.NET

2010-05-20 08:50:45

UrlRoutingASP.NET 4.0

2009-07-28 16:03:23

ASP.NET狀態(tài)服務(wù)

2009-07-28 11:09:02

ASP.NET狀態(tài)類型

2009-08-05 14:19:12

ASP.NET輸出EX

2011-04-13 16:35:47

HTTPASP.NET

2009-08-05 17:39:13

ASP.NET常用狀態(tài)

2009-07-24 10:41:00

ASP.NET Ses

2025-01-15 00:01:00

開(kāi)發(fā)應(yīng)用界面

2009-08-03 13:12:34

ASP.NET編程模型

2009-08-03 12:40:46

ASP.NET編程模型

2009-08-05 13:50:23

ASP.NET狀態(tài)管理

2009-07-20 14:32:08

2009-07-22 17:45:35

ASP.NET教程

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)