1.瀏覽器的刷新與轉(zhuǎn)到的區(qū)別
2.Web環(huán)境下request、forward、redirect、error之間的關(guān)聯(lián)與區(qū)別
3.Web環(huán)境下請求方式GET與POST的區(qū)別
4.URL與URI的區(qū)別
關(guān)于HTTP請求流程參見下面的URL地址:
http://www.cnblogs.com/stg609/archive/2008/07/06/1236966.html
一.瀏覽器的刷新與轉(zhuǎn)到的區(qū)別
刷新:在現(xiàn)有網(wǎng)頁的基礎(chǔ)上檢查網(wǎng)頁的是否有更新的內(nèi)容。在檢查時會保留之前的一些變量的值,因此有時可能會造成刷新后網(wǎng)頁出現(xiàn)錯誤,或者無法打開的情況。與轉(zhuǎn)到的區(qū)別是瀏覽器取網(wǎng)頁的新內(nèi)容來更新本機緩存,在更新的同時保留之前的一些變量。
轉(zhuǎn)到:相當(dāng)于在地址欄中重新輸入網(wǎng)頁的URL訪問,瀏覽器會盡量使用已經(jīng)存于本機中的緩存。相對于刷新,轉(zhuǎn)到是一種全新的訪問,它會盡量使用本機中的緩存文件,但不保留之前的變量。
二.web環(huán)境下request、forward、redirect、error之間的關(guān)聯(lián)與區(qū)別
request:向服務(wù)器發(fā)送一個請求,然后服務(wù)器會返回一個結(jié)果給請求客戶端,并附帶一個response code。
forward:是服務(wù)器內(nèi)部重定向,程序收到請求后重新定向到另一個程序,而客戶機并不知曉??蛻舳隧撁娴膗rl地址不會發(fā)生改變。
redirect:是服務(wù)器收到請求后發(fā)送一個狀態(tài)頭給客戶,客戶將再次請求,就有兩次網(wǎng)絡(luò)通行的來往。并且對于客戶來說url地址已經(jīng)發(fā)生了變化。
區(qū)別:
類別 | 概念 | 共享數(shù)據(jù) | 應(yīng)用 |
Redirect | URL重新定向:可以是任意的URL | 不能共享request里面的數(shù)據(jù) | 一般用于用戶注銷登錄時返回主頁面和跳轉(zhuǎn)到其它的網(wǎng)站等等 |
Forward | 頁面的轉(zhuǎn)發(fā):只能是同一個Web應(yīng)用程序的其他Web組件 | 轉(zhuǎn)發(fā)頁面和轉(zhuǎn)發(fā)到的頁面可以共性request里面的數(shù)據(jù) | 一般用于用戶登錄的時候根據(jù)角色轉(zhuǎn)發(fā)到相應(yīng)的模塊等等 |
三.GET與POST方法的區(qū)別
HTTP 定義了與服務(wù)器交互的不同方法,最基本的方法是 GET 和 POST。事實上 GET 適用于多數(shù)請求,而保留 POST 僅用于更新站點。根據(jù) HTTP 規(guī)范,GET 用于信息獲取,而且應(yīng)該是 安全的和 冪等的。所謂安全的意味著該操作用于獲取信息而非修改信息。換句話說,GET 請求一般不應(yīng)產(chǎn)生副作用。冪等的意味著對同一 URL 的多個請求應(yīng)該返回同樣的結(jié)果。完整的定義并不像看起來那樣嚴(yán)格。從根本上講,其目標(biāo)是當(dāng)用戶打開一個鏈接時,她可以確信從自身的角度來看沒有改變資源。 比如,新聞?wù)军c的頭版不斷更新。雖然第二次請求會返回不同的一批新聞,該操作仍然被認為是安全的和冪等的,因為它總是返回當(dāng)前的新聞。反之亦然。POST 請求就不那么輕松了。POST 表示可能改變服務(wù)器上的資源的請求。仍然以新聞?wù)军c為例,讀者對文章的注解應(yīng)該通過 POST 請求實現(xiàn),因為在注解提交之后站點已經(jīng)不同了(比方說文章下面出現(xiàn)一條注解);
在FORM提交的時候,如果不指定Method,則默認為 GET請求,F(xiàn)orm中提交的數(shù)據(jù)將會附加在url之后,以?分開與url分開。字母數(shù)字字符原樣發(fā)送,但空格轉(zhuǎn)換為“+“號,其它符號轉(zhuǎn)換為%XX,其 中XX為該符號以16進制表示的ASCII(或ISO Latin-1)值。GET請求請?zhí)峤坏臄?shù)據(jù)放置在HTTP請求協(xié)議頭中,而POST提交的數(shù)據(jù)則放在實體數(shù)據(jù)中;
GET方式提交的數(shù)據(jù)最多只能有1024字節(jié),而POST則沒有此限制。
四.URL與URI的區(qū)別
url:同一資源定位符
uri:同一資源標(biāo)志符
url定位客戶端連接到服務(wù)器所需要的信息,如
http://www.csdn.net
http://tcc.com:8080/servlet/logon?name=zhangsan&addr=tttt
完整構(gòu)成
<protocol>://<servername>[:port]/<url-path>[?query-string]
uri是url組成的一部分,沒有域名和查詢字符串,
即域名之后查詢字符串之前所有的信息,用于制定資源。
例如,對于請求地址
http://java.sun.com/products/servlet/index.html?id=09
url--->http://java.sun.com/products/servlet/index.html?id=09
uri--->/products/servlet/index.html