㈠ Thinkphp路由是干什麼的
通俗的說,他是一個url的傳輸規則,例如:index.php?g=Home&m=Index&a=price 這個規則也是可以變化的,& 可以設置為@或者其他,規則主要有pathinfo等,在設置偽靜態的時候也用的著他,希望對你有幫助,詳細的信息你可以去看下最新的thinkphp幫助文檔。
㈡ 路由的含義
一、什麼是路由
路由是把信息從源穿過網路傳遞到目的的行為,在路上,至少遇到一個中間節點。路由通常與橋接來對比,在粗心的人看來,它們似乎完成的是同樣的事。它們的主要區別在於橋接發生在OSI參考協議的第二層(鏈接層),而路由發生在第三層(網路層)。這一區別使二者在傳遞信息的過程中使用不同的信息,從而以不同的方式來完成其任務。
路由的話題早已在計算機界出現,但直到八十年代中期才獲得商業成功,這一時間延遲的主要原因是七十年代的網路很簡單,後來大型的網路才較為普遍。
二、路由的組成
路由包含兩個基本的動作:確定最佳路徑和通過網路傳輸信息。在路由的過程中,後者也稱為(數據)交換。交換相對來說比較簡單,而選擇路徑很復雜。
1、路徑選擇
metric是路由演算法用以確定到達目的地的最佳路徑的計量標准,如路徑長度。為了幫助選路,路由演算法初始化並維護包含路徑信息的路由表,路徑信息根據使用的路由演算法不同而不同。
路由演算法根據許多信息來填充路由表。目的/下一跳地址對告知路由器到達該目的最佳方式是把分組發送給代表「下一跳」的路由器,當路由器收到一個分組,它就檢查其目標地址,嘗試將此地址與其「下一跳」相聯系。下表為一個目的/下一跳路由表的例子。
路由表還可以包括其它信息。路由表比較metric以確定最佳路徑,這些metric根據所用的路由演算法而不同,下面將介紹常見的metric。路由器彼此通信,通過交換路由信息維護其路由表,路由更新信息通常包含全部或部分路由表,通過分析來自其它路由器的路由更新信息,該路由器可以建立網路拓撲細圖。路由器間發送的另一個信息例子是鏈接狀態廣播信息,它通知其它路由器發送者的鏈接狀態,鏈接信息用於建立完整的拓撲圖,使路由器可以確定最佳路徑。
2、交換
交換演算法相對而言較簡單,對大多數路由協議而言是相同的,多數情況下,某主機決定向另一個主機發送數據,通過某些方法獲得路由器的地址後,源主機發送指向該路由器的物理(MAC)地址的數據包,其協議地址是指向目的主機的。
路由器查看了數據包的目的協議地址後,確定是否知道如何轉發該包,如果路由器不知道如何轉發,通常就將之丟棄。如果路由器知道如何轉發,就把目的物理地址變成下一跳的物理地址並向之發送。下一跳可能就是最終的目的主機,如果不是,通常為另一個路由器,它將執行同樣的步驟。當分組在網路中流動時,它的物理地址在改變,但其協議地址始終不變。
上面描述了源系統與目的系統間的交換,ISO定義了用於描述此過程的分層的術語。在該術語中,沒有轉發分組能力的網路設備稱為端系統(ES--end system),有此能力的稱為中介系統(IS--intermediate system)。IS又進一步分成可在路由域內通信的域內IS(intradomain IS)和既可在路由域內有可在域間通信的域間IS(interdomain IS)。路由域通常被認為是統一管理下的一部分網路,遵守特定的一組管理規則,也稱為自治系統(autonomous system)。在某些協議中,路由域可以分為路由區間,但是域內路由協議仍可用於在區間內和區間之間交換數據。
三、路由演算法
路由演算法可以根據多個特性來加以區分。首先,演算法設計者的特定目標影響了該路由協議的操作;其次,存在著多種路由演算法,每種演算法對網路和路由器資源的影響都不同;最後,路由演算法使用多種metric,影響到最佳路徑的計算。下面的章節分析了這些路由演算法的特性。
1、設計目標
路由演算法通常具有下列設計目標的一個或多個:
優化
簡單、低耗
健壯、穩定
快速聚合
靈活性
優化指路由演算法選擇最佳路徑的能力,根據metric的值和權值來計算。例如有一種路由演算法可能使用跳數和延遲,但可能延遲的權值要大些。當然,路由協議必須嚴格定義計算metric的演算法。
路由演算法也可以設計得盡量簡單。換句話說,路由協議必須高效地提供其功能,盡量減少軟體和應用的開銷。當實現路由演算法的軟體必須運行在物理資源有限的計算機上時高效尤其重要。
路由演算法必須健壯,即在出現不正常或不可預見事件的情況下必須仍能正常處理,例如硬體故障、高負載和不正確的實現。因為路由器位於網路的連接點,當它們失效時會產生重大的問題。最好的路由演算法通常是那些經過了時間考驗,證實在各種網路條件下都很穩定的演算法。
此外,路由演算法必須能快速聚合,聚合是所有路由器對最佳路徑達成一致的過程。當某網路事件使路徑斷掉或不可用時,路由器通過網路分發路由更新信息,促使最佳路徑的重新計算,最終使所有路由器達成一致。聚合很慢的路由演算法可能會產生路由環或網路中斷。
在下圖中的路由環中,某分組在時間t1到達路由器1,路由器1已經更新並知道到達目的的最佳路徑是以路由器2為下一跳,於是就把該分組轉發給路由器2。但是路由器2還沒有更新,它認為最佳的下一跳是路由器1,於是把該分組發回給路由器1,結果分組在兩個路由器間來回傳遞直到路由器2收到路由更新信息或分組超過了生存期。
路由演算法還應該是靈活的,即它們應該迅速、准確地適應各種網路環境。例如,假定某網段斷掉了,當知道問題後,很多路由演算法對通常使用該網段的路徑將迅速選擇次佳的路徑。路由演算法可以設計得可適應網路帶寬、路由器隊列大小和網路延遲。
2、演算法類型
各路由演算法的區別點包括:
靜態與動態
單路徑與多路徑
平坦與分層
主機智能與路由器智能
域內與域間
鏈接狀態與距離向量
(1)靜態與動態
靜態路由演算法很難算得上是演算法,只不過是開始路由前由網管建立的表映射。這些映射自身並不改變,除非網管去改動。使用靜態路由的演算法較容易設計,在網路通信可預測及簡單的網路中工作得很好。
由於靜態路由系統不能對網路改變做出反映,通常被認為不適用於現在的大型、易變的網路。九十年代主要的路由演算法都是動態路由演算法,通過分析收到的路由更新信息來適應網路環境的改變。如果信息表示網路發生了變化,路由軟體就重新計算路由並發出新的路由更新信息。這些信息滲入網路,促使路由器重新計算並對路由表做相應的改變。
動態路由演算法可以在適當的地方以靜態路由作為補充。例如,最後可選路由(router of last resort),作為所有不可路由分組的去路,保證了所有的數據至少有方法處理。
(2)單路徑與多路徑
一些復雜的路由協議支持到同一目的的多條路徑。與單路徑演算法不同,這些多路徑演算法允許數據在多條線路上復用。多路徑演算法的優點很明顯:它們可以提供更好的吞吐量和可靠性。
(3)平坦與分層
一些路由協議在平坦的空間里運作,其它的則有路由的層次。在平坦的路由系統中,每個路由器與其它所有路由器是對等的;在分層次的路由系統中,一些路由器構成了路由主幹,數據從非主幹路由器流向主幹路由器,然後在主幹上傳輸直到它們到達目標所在區域,在這里,它們從最後的主幹路由器通過一個或多個非主幹路由器到達終點。
路由系統通常設計有邏輯節點組,稱為域、自治系統或區間。在分層的系統中,一些路由器可以與其它域中的路由器通信,其它的則只能與域內的路由器通信。在很大的網路中,可能還存在其它級別,最高級的路由器構成了路由主幹。
分層路由的主要優點是它模擬了多數公司的結構,從而能很好地支持其通信。多數的網路通信發生在小組中(域)。因為域內路由器只需要知道本域內的其它路由器,它們的路由演算法可以簡化,根據所使用的路由演算法,路由更新的通信量可以相應地減少。
(4)主機智能與路由器智能
一些路由演算法假定源結點來決定整個路徑,這通常稱為源路由。在源路由系統中,路由器只作為存貯轉發設備,無意識地把分組發向下一跳。其它路由演算法假定主機對路徑一無所知,在這些演算法中,路由器基於自己的計算決定通過網路的路徑。前一種系統中,主機具有決定路由的智能,後者則為路由器具有此能力。
主機智能和路由器智能的折衷實際是最佳路由與額外開銷的平衡。主機智能系統通常能選擇更佳的路徑,因為它們在發送數據前探索了所有可能的路徑,然後基於特定系統對「優化」的定義來選擇最佳路徑。然而確定所有路徑的行為通常需要很多的探索通信量和很長的時間。
(5)域內與域間
一些路由演算法只在域內工作,其它的則既在域內也在域間工作。這兩種演算法的本質是不同的。其遵循的理由是優化的域內路由演算法沒有必要也成為優化的域間路由演算法。
(6)鏈接狀態與距離向量
鏈接狀態演算法(也叫做短路徑優先演算法)把路由信息散布到網路的每個節點,不過每個路由器只發送路由表中描述其自己鏈接狀態的部分。距離向量演算法(也叫做Bellman-Ford演算法)中每個路由器發送路由表的全部或部分,但只發給其鄰居。也就是說,鏈接狀態演算法到處發送較少的更新信息,而距離向量演算法只向相鄰的路由器發送較多的更新信息。
由於鏈接狀態演算法聚合得較快,它們相對於距離演算法產生路由環的傾向較小。在另一方面,鏈接狀態演算法需要更多的CPU和內存資源,因此鏈接狀態演算法的實現和支持較昂貴。雖然有差異,這兩種演算法類型在多數環境中都可以工作得很好。
3、路由的metric
路由表中含有由交換軟體用以選擇最佳路徑的信息。但是路由表是怎樣建立的呢?它們包含信息的本質是什麼?路由演算法怎樣根據這些信息決定哪條路徑更好呢?
路由演算法使用了許多不同的metric以確定最佳路徑。復雜的路由演算法可以基於多個metric選擇路由,並把它們結合成一個復合的metric。常用的metric如下:
路徑長度
可靠性
延遲
帶寬
負載
通信代價
路徑長度是最常用的路由metric。一些路由協議允許網管給每個網路鏈接人工賦以代價值,這種情況下,路由長度是所經過各個鏈接的代價總和。其它路由協議定義了跳數,即分組在從源到目的的路途中必須經過的網路產品,如路由器的個數。
可靠性,在路由演算法中指網路鏈接的可依賴性(通常以位誤率描述),有些網路鏈接可能比其它的失效更多,網路失效後,一些網路鏈接可能比其它的更易或更快修復。任何可靠性因素都可以在給可靠率賦值時計算在內,通常是由網管給網路鏈接賦以metric值。
路由延遲指分組從源通過網路到達目的所花時間。很多因素影響到延遲,包括中間的網路鏈接的帶寬、經過的每個路由器的埠隊列、所有中間網路鏈接的擁塞程度以及物理距離。因為延遲是多個重要變數的混合體,它是個比較常用且有效的metric。
帶寬指鏈接可用的流通容量。在其它所有條件都相等時,10Mbps的乙太網鏈接比64kbps的專線更可取。雖然帶寬是鏈接可獲得的最大吞吐量,但是通過具有較大帶寬的鏈接做路由不一定比經過較慢鏈接路由更好。例如,如果一條快速鏈路很忙,分組到達目的所花時間可能要更長。
負載指網路資源,如路由器的繁忙程度。負載可以用很多方面計算,包括CPU使用情況和每秒處理分組數。持續地監視這些參數本身也是很耗費資源的。
通信代價是另一種重要的metric,尤其是有一些公司可能關系運作費用甚於性能。即使線路延遲可能較長,他們也寧願通過自己的線路發送數據而不採用昂貴的公用線路。
三、網路協議
可被路由的協議(Routed Protocol)由路由協議(Routing Protocol)傳輸,前者亦稱為網路協議。這些網路協議執行在源與目的設備的用戶應用間通信所需的各種功能,不同的協議中這些功能可能差異很大。網路協議發生在OSI參考模型的上四層:傳輸層、會話層、表示層和應用層。
術語routed protocol(可被路由的協議)和routing protocol(路由協議)經常被混淆。routed protocol在網路中被路由,例如IP、DECnet、AppleTalk、Novell NetWare、OSI、Banyan VINES和Xerox Network System(XNS)。而路由協議是實現路由演算法的協議,簡單地說,它給網路協議做導向。路由協議如:IGRP、EIGRP、OSPF、EGP、BGP、IS-IS及RIP等。我們將陸續介紹上述的各種協議
㈢ php路由怎麼實現
你這個的話 index.php 得這么寫
<?php
header('content-type:text/html;charset=utf-8');
$actio=$_GET['actio'];
$do=$_GET['do'];
include$actio.'/'.$do.'.php';
㈣ PHP的路由是什麼 還有什麼通俗的說法嗎
你所說的路由其實和路由器是一個道理, 通過一個入口接受請求, 然後通過(URL)匹配規則將請求分發到不同的地方。具體到一些主流框架上面,Router模塊會配合Http模塊分析請求, 並且按照一定規則解析去匹配路由,然後使用調度模塊使邏輯調到某塊代碼(通常是控制器),最後返回響應(Response)。
所以說你就把這種路由當做家裡用來上網的路由器, 道理是一樣的。
㈤ ThinkPHP5靜態地址路由和動態路由的區別
靜態路由:指的是路由是固定的,是在配置文件裡面固定好的。
動態路由:路由帶有參數或者使用正則表達式進行匹配。
兩者都是在配置文件中進行設置,最大的區別就是靜態路由是固定的,一條路由規則匹配一條url,而動態路由就是一條路由匹配多多條url,簡單來說。靜態路由是一對一,動態路由是一對多。
㈥ php 路由作用
建議你了解下restful,所謂的路由就是客戶所訪問的url,只不過url中的一些參數以變數的形式存在。
㈦ thinkphp的規則路由和正則路由有什麼區別
單獨給你說這個東東是前段還是後端,沒有多大意義, lamp架構而言,php可以看做搭建整個架構的一個組件,一個web系統,他的前後台劃分應該是以是否與資料庫進行交互來劃分,最簡單的將,(html,css,javascript)屬於前台,html控制前台文本格式,css則像女孩子化妝,美化頁面,javascript則是實現前台頁面與客戶的交互; (php ,mysql)屬於後端,他就相當於我們的大腦,把我們所看到的,感觸到得事物(前台獲取的數據)進行邏輯判斷,運算,處理,存儲,輸出等操作; xml,既可以實現數據的前台驗證,也可實現數據的後台驗證,也可存儲數據,它就當做個混合體吧, appache 則就相當於我們的軀體,是個平台,承載著這一切。希望回答您有幫助
建議樓主去後盾人自學,多去找找答案,他們那還在搞實訓班培訓的活動還有優惠
㈧ ThinkPHP的路由解析有什麼用怎麼用
ThinkPHP支持URL路由功能,要啟用路由功能,需要設置URL_ROUTER_ON 參數為true。開啟路由功能後,並且配置URL_ROUTE_RULES參數後,系統會自動進行路由檢測,如果在路由定義裡面找到和當前URL匹配的路由名稱,就會進行路由解析和重定向
㈨ 什麼叫php的url路由技術,求解
統一處理請求的地址,根據請求的地址參數,分別執行不同程序,這在MVC模式構架的項目里是很常見的,
比如:請求地址是http://demo.com/index.php?m=news&c=article&a=list
所有的請求都走index.php,然後在index.php裡面接受三個參數分別是new,article,list,
根據這三個參數去找要執行的程序,比如這里要執行news模塊下的acticle控制器里的list方法,
這只是一個典型例子而以,當然情況多變,根據你的需求來
㈩ 什麼是thinkPHP路由,路由有什麼作用
thinkphp的路由可以讓你的URL地址更加簡潔和優雅,比如在沒有定義路由時的訪問url為http://serverName/index.php/Home/News/read/id/8,在定義路由後可以通過http://serverName/index.php/Home/new/8進行相同效果的訪問~