用戶端和伺服器的交流

來源:互聯網
上載者:User
伺服器|用戶端


     上一章介紹了安裝設定的一些基本問題和A S P的使用,以及其所提供的內建對象。本章將進一步研究兩個最常用的對象。在瀏覽器(或其他使用者代理程式)和We b伺服器之間,請求與響應中發生的資訊交流可以通過ASP中的兩個內建對象來進行訪問和管理,這兩個對象稱為Request和Response對象。
    在ASP頁中所要進行的工作幾乎都要訪問這兩個對象,使用這兩個對象的方式將影響頁面的效率及可靠性。當然,它們的主要用途是訪問使用者發回到伺服器的值,即從HTML頁的< FORM >段獲得或附在URL後面作為查詢字串,並建立合適的輸出返回給使用者,且它們可以共用很多相同的因素。例如兩個對象都可以使用儲存在用戶端電腦上的cookie。
    因此,我們把本章分成兩個獨立的部分(每個對象一部分),並且首先從用戶端與伺服器之間的資訊交流入手,然後再研究每一個對象。這將更有助於理解它們之間的關係及其重要性。
    因此,本章研究的內容是:
    用戶端與伺服器如何交流以傳遞Web頁或其他資源。
    Request和Response對象的細節,以及它們之間的共同點。
    如何通過一個表單和查詢字串訪問相應的值。
    如何讀入或建立cookie並存放在用戶端的電腦上。
    伺服器的變數是什嗎?如何訪問和修改HTTP前序。
    說明其他相關條目的變化,如客戶的認證使用。
    首先看一下客戶瀏覽器(或“使用者代理程式”)和ASP 的Web伺服器之間交流的情況。
    當瀏覽器或其他的使用者代理程式訪問Web網站請求頁面時,在客戶服務器和Web伺服器之間就產生了一個對話,我們將仔細研究這個問題,因為理解這個問題有助於掌握使用ASP的Request和Response對象的基本知識,進而才能進一步掌握ASP的更多知識。
    為節省篇幅,在本章及本書後面的內容中使用“瀏覽器”( browser )一詞。但需要記住的是,能夠訪問Web頁面的應用程式絕不僅只有瀏覽器,有許多特殊的應用程式從網站上下載網頁,如為那些視力有缺陷使用者設計的特殊的用戶端程式或者是用通常的瀏覽器有其他困難的人。最顯而易見的例子是搜尋引擎用來訪問Web上的網站的robot。全面考慮這些因素,包括普通的Web瀏覽器,準確的詞彙應該是使用者代理程式(user agent)。
    頁面請求的對話
    當一個瀏覽器向We b網站提出頁面請求時,顯然必須告訴伺服器,其請求的是哪一個頁面。首先要做的是通過網域名稱與伺服器建立串連,然後提供所請求頁面的全路徑和名稱。為什麼要全路徑和名稱?Web是一個無國界的環境,所以必須創造一個會話標識每個客戶(將在下一章介紹ASP如何做到這點)。
    這就意味著每當伺服器完成向客戶發送頁面後,伺服器就徹底忘記了這個客戶。因此,當客戶請求下一個頁面時,與一個新的訪問者是完全相同的。伺服器無法記住這個客戶,相應的,也就無法判斷它們上次請求的頁面是哪一個。因此,不能使用相對路徑來提供一個頁
面,即使頁麵包含一個相對的連結也不行,例如:

    瀏覽器將自動建立完整的新頁面的URL,方法是使用當前頁的域和路徑;或使用頁面< HEAD >段中的< BASE >元素,告訴瀏覽器一個頁面中所有連結的基URL是什麼。例如:

    當把滑鼠指向一個頁面的連結時,可在瀏覽器的狀態列中看到如圖2 - 1所示的情況。當前頁面的路徑和當前網域名稱或基網域名稱已經與請求的頁面名結合在一起了。

    1. 客戶請求的細節
    所請求頁面的全路徑和名稱的組合是瀏覽器請求頁面時發往伺服器的唯一資訊。瀏覽器的請求也能包含瀏覽器宿主的資訊和用戶端啟動並執行作業系統。實際的資訊內容將隨著瀏覽器的不同而有相應的變化,只有很少一部分能夠由其他的應用程式如搜尋引擎robot提供。為了更清楚地瞭解該資訊,下面是從IE 5.0 發出的一個對頁面http://www.wrox.com/Store/Download.asp的請求資訊:

    從中可以看出,這些資訊中有關於使用者代理程式和使用者串連的細節(如預設的語言),也有能夠接受的檔案或應用程式的類型列表,這些都是MIME類型的,在後面將會見到更多。瀏覽器能夠接受幾種影像檔及多種Microsoft Office檔案類型。“標準”的檔案類型,如text/html和text/text沒有列在其中。檔案清單中*/*表示可向瀏覽器發回任何類型的檔案,由瀏覽器解釋或通過一個外掛程式( plug-in )應用程式來進行解釋。
    cookie:條目包含的cookie存放在用戶端的電腦上,並僅對該域有效。假如請求是點選連結的結果,而不是在瀏覽器的地址欄直接輸入URL,則Referer:條目被顯示,它包含了連結頁面的完整的URL。
    Host:條目包含客戶電腦的IP地址或名稱。然而,這還不足以準確辨別客戶機。因為它們通過ISP串連時, IP地址是動態分配的,或者通過一個Proxy 伺服器串連時,IP地址是代理機的而不是實際的客戶機的。
    2. 伺服器響應的細節資訊
    為響應上述的請求,並對匿名的瀏覽器(即使用者不必提供使用者名稱和訪問口令)提供請求的頁面,下面的內容是從伺服器發往客戶機的:

    可以看出伺服器向用戶端說明自己所用的軟體及版本,第一行表明所使用的是HTTP協議,及返回碼的狀態。資訊“ 200 OK”表示請求被接受並得到了滿足。後面的資訊是被返回的頁面的細節,包括MIME類型(Content-Length:)、大小(位元組)、最近更改的時間,和返回用戶端儲存的cookie。響應中的其他資訊是頁面內容的資訊流。
    在某些情況下,伺服器響應一個請求後,不能返回一個頁面,也許因為頁面不存在,或者客戶沒有相應許可權來訪問它。我們將在本書後續章節討論安全問題。現在,對於請求頁面不存在的情況(例如使用者在瀏覽器的地址欄輸入了錯誤的URL),返回的資訊開頭為:

    這裡,狀態代碼和資訊表明客戶請求的頁面無法找到。瀏覽器可使用這個資訊向使用者顯示相應的資訊(這種情況在IE 5.0中不顯示伺服器的響應資訊,而顯示相應“協助性”的錯誤提示頁面),也可顯示伺服器建立的預設頁面(依賴於伺服器的設定)。
    至此,我們已經看到了客戶機與伺服器互動作用中的一些細節,下面介紹ASP對象Request和Response如何把這些轉換成相應的值。




相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。