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